SuperCom
Windows Server, Windows 11, Windows 10 IoT LTSC, Windows 11, Windows 10, Windows 8, Windows 7, Windows Vista, Windows Server 2008, Windows XP, Windows 2000, Windows NT, Windows ME/98/95, Linux

Com port library in C or C++, C#, VB net, Delphi

Serial port library. Serial communication Library for RS232,rs485. Use with C or C++, C#, VB net, Delphi. NET class library.

Serial Communication Library for Windows

Serial communication Library and serial component Windows, Serial I/O library, Serial Port I/O component,RS232 comm port,rs485 Multidrop,asynchronous,autodownload with Zmodem file transfer Protocol Kermit,xmodem, xmodem/crc,xmodem-1k RK512 Simatic 3964 Protocol LSV2 LSV/2, Serial Protocol Ymodem, Modbus, Delphi Pascal Communication Library builder Visual Basic vba C++,GSM / GPRS Modem and TAPI, Visual Studio net, serial communication component, 64 bit Serial Communication Library, Vista, usb to serial port library toolkit, data available event, lookup strings,modem Sharing,Crossbridge Tunel Serial Communication. Wireless serial data communication. C++ Builder, Delphi incl. Embarcadero RAD XE2 XE3.

Limit usb to serial latency.

SuperCom Serial Library and RS-232 / RS-485 Library.

Serial Communication Library & Components, Serial Port data transfer

SuperCom Serial Communication, TCP/IP Data Communication Library, ActiveX, NET Class Windows, Linux Library, Component, ActiveX, Unit C#, C / C++, Delphi, Java, Pascal, Visual Basic, VB net SuperCom Suite, SuperCom Serial Library incl. MODBUS, SuperCom for TCP/IP incl. MODBUS Serial Communication, TCP/IP Data Communication Library, ActiveX, NET Class, TCP/IP Client Server
ADONTEC Software Development, Serial Data Communication, TCP/IP Client Server
Serial communication Library, file transfer protocols zmodem, xmodem, ymodem YMODEM-G, kermit, modbus, serial data communication file transfer, industrial Protocol 3964, rk512, lsv/2Data Communication Solutions by ADONTEC
SuperCom - Features List
serial communication library, class library, communication libraries, Protocol file transfer protocol zmodem xmodem ymodem kermit ascii,  serial dataSuperCom DLL API - Functions

Software development component library for serial port communication through rs-232, tcp/ip, socket, isdn,capi file transfer protocols, custom protocols. Many ready to run programs, Client, Server.SuperCom DEMO (Serial RS-232/422/485, ISDN, TCP/IP)
SuperCom sample applications

Version 10.60 new !

Serial, TCP, ISDN, data communication for Windows    Serial port & TCP/IP data communication for Linux

Serial Communication Library, RS-232, RS-485 Toolkit. SDK, software development kit. ZMODEM, Kermit, 3964, 3964R, RK512, LSV2, MODBUS, protocol

 

SuperCom - Serial Communication Library

The SuperCom Serial Port Communication Library is a programmer's library used to develop serial communication applications.

Easily read and write data to the serial port. Send data through the serial port without delay.

Using SuperCom you easily write serial communication applications and control serial ports, Modem, Barcode Scanner, Scales, PLC, GPS receiver, POS, serial medical devices, serial printer etc. Develop easily applications to accomplish serial data and file transfer incl. file server applications.

With the SuperCom Serial Communication Library transmitting and receiving serial data takes place in the background enabling the application to perform other tasks while serial data transmission takes place.

An optimized, fast, versatile and non blocking low level data communication engine generates short reaction times, creates and reports events, handles data triggers, data monitoring and many other intelligent data preprocessing functions (see DataPackets collector, Trigger and DataFilter below).

Setup and handle concurrently multiple connections, execute fast with low latency and consume less, run lengthly jobs in background (for example: connect, file transfer, collect data packets (DataPackets collector), trigger events) and other functions assist in order to create flexible solutions.

The SuperCom Serial Communication Library transfers data in background and offers fully transparent handshaking flow control (e.g. RTS/CTS, DTR/DSR, XON/XOFF) and combinations. Possible errors on the data line (UART/Hardware Errors) are detected and, if required, reported.

You freely use any onboard serial ports, multi serial ports cards, wireless serial adapter (e.g. Bluetooth), USB or Ethernet based serial adapter / converter etc. SuperCom delivers data accurate and fast.

Control serial port interfaces easily using compiler languages as C, C++, C#, Delphi, Pascal, Visual Basic, Java and other Compiler.

Establish reliable connections in background for fast, accurate data communications and file transfers. Establishing dial-up connections is easy and it's featured directly through a Modem or using TAPI (Windows Telephony API).

::: SuperCom breaks the limits in fast and reliable data communication and file transfer. It includes nearly all known standard file transfer protocols used in serial communications. Special Industrial Protocols modules are available to support industrial serial data communications with PLC and automation controllers.

With SuperCom the protocols mentioned above are not restricted to serial communication only but can be used with any connection type supported by the used SuperCom library e.g. ISDN, TCP/IP.

With SuperCom the application can execute faster and smoother.

No matter how the application is transmitting data, SuperCom will always perform data communication on multiple connections concurrently and in background.

No matter if data monitoring, receiving complex data packets, running complex data transmission protocols, establishing connections or doing file transfer. It can run complex tasks optimized and transparently in background enabling the application to execute fast and smooth and perform other tasks too.

Easy Handling

SuperCom is a universal data communication library. Using only a few functions you already get a complete serial communication program within a few lines. The following short program clearly shows this for serial communications:

C/C++

  char *Msg = "Hello World";

  ComInit(COM_2);

  ComSetState(COM_2, 57600, 8, 1, 'N', SIGNAL_CTS);

  RS_TXPacket(COM_2, Msg, strlen(Msg), &Result);

  ComReset(COM_2);

  C/C++    C#    Delphi    Java    Visual Basic

 

Let's explain the above lines a bit:
The function ComInit instructs SuperCom to assign the second data link (e.g. the second serial port on Windows "COM2", on Linux "ttyS1"). ComSetState applies the communication parameters and flow control. Now the connection is ready to transfer data. The function RS_TXPacket transmits the data packet Msg through the data link (e.g. serial interface) and ComReset finaly closes all actions on the data link and releases the used data link and any used hardware and software resources used.

More samples on setting a data connection with SuperCom can be found here.

 

The next small sample shows an elegant solution to a common problem: What serial ports are available in the system (installed and not used).

Available Serial Ports

    WORD wPortCount=0;
    WORD wPortReady=0;
    BYTE i;

    printf("scaning hardware...");

    for (i=COM_1; i<MAX_COM; i++)
    {
        switch (ComPortPresent(i))
        {
        case PORT_AVAILABLE_READY: wPortReady++;
             // port is not used by any application

        case PORT_AVAILABLE_BUSY: wPortCount++;
             // port is used by any application
            break;

        case PORT_UNAVAILABLE:
             // hardware is not installed
             break;
        }
    }
     
Hint: see also ComPortPresentEx

 

The Serial Hardware
 

    

SuperCom's serial communication library supports a multitude of different serial hardware used for serial communications.

The variety of serial interfaces is diverse and SuperCom is flexible enough to control the different variations in a transparent way hidding the details. In fact it's under continous tests with serial devices from major manufacturer (e.g. Axxon, Decision, Digi, Moxa, Quatech, etc.).

In the following we functionally group the serial hardware actually on market as follows:

  • Standard Serial Ports
  • Multiserial Boards
  • Virtual Serial Ports
  • Intelligent Multiserial Boards

Standard Serial Ports

Serial comm ports which do not support interrupt sharing are called Standard Comm Ports (e.g. COM1, COM2).

Serial Communication Library RS-232, RS-485 Toolkit. ZMODEM, Kermit, 3964, 3964R, RK512, LSV2, Heidenhain LSV2 TCP, protocol

Multiserial Boards

Multiserial boards are add-on boards for ISA, PCI, PCI-X or PCIe Bus. These boards used in serial communications and offer one or more serial ports. By design some boards allow two or more boards to run in a single PC.

Controlling more than one serial communication link simultaneously is SuperCom's playground and it does it completely in background.

PCMCIA (X=1/2/4)

These are PCMCIA to RS-232 adapters, PCMCIA to RS-422 adapters or PCMCIA to RS-485 adapters used in serial communications.

Intelligent Multiserial Boards

The intelligent boards are serial boards equipped with a CPU (mainly 80186 or RISC) and RAM. Intelligent boards can be equipped with 64KByte to 1MByte of dual-ported RAM mainly used for data storage and buffering. This improves the system speed and reduces the overall load of the host CPU due to the missing interrupt requests.

Virtual Serial Ports

With serial communication the serial port is often not physically present on the local computer but simulated by a driver. The real hardware (if any) is connected externaly e.g. on an Ethernet Network (e.g. PortServer, Comm-Server, Terminal Server or Serial Server), serial ports redirected through the Windows Remote Desktop Protocol (RDP), PCMCIA-to-Serial, USB-to-Serial, Ethernet-to-Serial, Bluetooth-to-Serial, Infrared-to-Serial or any other type of physically not present serial port. SuperCom locates these COMM ports even if non-standard names used (e.g. FASTCOM19).

One or more multi serial boards can be installed in a PC (dependent on manufacturer) to support the amount of serial ports needed.

USB-to-Serial

These are USB Serial Adapters (RS-232, RS-422, RS-485) attached to an USB port. SuperCom for Windows can report event with the port name on serial port insertion/removal.
SuperCom also optimizes data throughput and latency for USB-to-Serial adapters as far as possible. As a SuperCom customer you can also obtain the Data Transfer Optimization Guide (PDF).

Ethernet-to-Serial

These are Ethernet to Serial Adapters (RS-232, RS-422, RS-485) connected to a TCP switch/hub.
SuperCom also optimizes data throughput and latency for this kind of adapters as far as possible. As a SuperCom customer you can also obtain the Data Transfer Optimization Guide (PDF).

Wireless Serial Adapter (RS-232, RS-422, RS-485)

Are used to connect serial devices that are not linked by a physical cable connection. These can be Wireless USB-to-Serial adapters, Wireless Bluetooth to-Serial adapters, Wireless LAN-to-Serial adapter, etc. SuperCom for Windows can report event with the port name on serial port insertion/removal.
SuperCom also optimizes data throughput and latency for this kind of adapters as far as possible. As a SuperCom customer you can also obtain the Data Transfer Optimization Guide (PDF).

FIFO Support (UART 16550/16650/16750/16950)

The 16550 UART has the feature to temporarily store up to 16 incoming characters in a FIFO (First In First Out) buffer. This feature increases the performance of the system since the number of interrupts in the system is reduced. Furthermore the security of the data transmission is considerably improved, above all in a multitasking environment and high transmission speeds are possible.

Modern UARTS like the 16950 are equipped with up to 128 bytes of FIFO buffer.

SuperCom supports the FIFO UART. SuperCom also runs serial data communication in low level buffered mode to avoid buffer overrun and to allow the applcation to perform other tasks as well.

RS-485 Multidrop

Besides supporting RS-232 and RS-422 serial communication, SuperCom also support the RS-485 data communication.

RS-485 connects two or more stations on a two wire half-duplex bus system (network). That is bi-directional, half-duplex, multi-drop serial data communication over a single pair of cable. Each station can only transmit or receive data at a time (half-duplex). The so called "direction" is used to switch from transmit to receiving mode and vice versa. A timed switch of the "direction" is essential to avoid loss in data.

SuperCom handles the RS-485 serial port transparently and offers a very low-latency switch of "direction" (more ...). A four wire full-duplex connection may also be used. The testing samples showed that SuperCom can switch several times within 1 ms.

9-Bit serial data

9-Bit serial communication (9-Bit framing) is mainly used to identify address byte within messages running on a RS-485 multidrop network but also on standard RS-232 connections. 9-bit data frames are usually not supported by the standard PC UART but simulated by the SuperCom software. Very fast response timing (low latency) by the software is essential to accomplish reliable 9-bit data communication. SuperCom does provide a very realiable solution here to be used with high level languages.
Many Samples (e.g. C/C++, C#, Delphi, Pascal, VB net) also included that demonstrate this operating mode.

For example, transmitting a data packet using 9-bit addressing e.g.:

        TXPacket9BitCond(Com, cData, nDataCount, SEC0_1); 

9-bit data communication is used today, among other things, to control small embedded controllers using 9-bit specific protocols (e.g. the SAS protocol and other).

9-Bit Samples, client and server, are available (C, C++, C#, Delphi, VB net). Mehr

Q: Serial data, transmitted asynchronous, are made up (among others) of data bits and start/stop bits. Does SuperCom ensure that all bits are received as expected?

A: SuperCom receives and transmits all bits of the serial data according to the rules and does it completely transparently in backround without blocking the application. SuperCom achieves by that very high data throughput and avoids loss of data. The same goes for the other possible data links i.e. TCP/IP, ISDN, Modem etc.

 


Below a more detail description of the portable SuperCom API. Near all features are true for communications over serial lines, ISDN and TCP/IP. Please also consult the common feature list common feature list, the product content description and the chart of Software and Features to make sure the feature you want is supported by the selected SuperCom software.

The SuperCom API

SuperCom offers an easy to use, flexible and portable API. The same API is used among different operating systems and hardware (RS-232, RS-485, ISDN, TCP/IP). Under Windows it's also referred as the SuperCom DLL API.

The software developer uses one single API.

Transmitting and receiving takes place in the background secured through buffered data communication with adjustable buffers for both directions. The application can safely perform other tasks while data transmission takes place.

SuperCom is fast, even in a multitasking operating system - it often solves issues where others are using system drivers.

SuperCom integrates the most modern communication technology like: event reporting, thread driven data transmission, high speed byte and paket functions, intelligent data filter, data trigger and data packet collectors. Furthermore it offers the highest security and speed with little burden on the computer, particularly important in a multitasking operating system.

Modularity in Data Communications

SuperCom consists of several modules which can be used according to your needs.

The core module contains the "low level functions" operating on top of the hardware and the "high level functions" offering a "portable layer". This "portable layer" provides most wanted functions like: transmit and receive data (even time dependent), determine the status of a link, funtions that transmit and receive data packets (even time dependent), functions for calculating check sums and CRC, functions for setting up connections etc.

::: The standard protocol module contain the so called Standard File Transfer Protocols, that are widely known and used. These protocols enable fast and secure file transmission. Special Industrial Protocols mainly used in industrial data communication applications are also available  (see also Software and Features).

The Terminal emulations module offers ANSI, VT100, VT52, TTY.

Portable

The part of your application which takes care the data communication with SuperCom can already be considered as completed when moving from Serial Communication to TCP/IP or ISDN and especially when moving between DOS, Linux, OS/2, Windows.

Event Driven

An application using SuperCom can be event driven. Events are reported for: received or transmitted data, modem status, line errors, modem dialup status, file transmission status, plugging or unplugging serial PnP devices (serial comm port insertion/removal), TCP/IP network failures.

The enhanced event reporting mechanism in SuperCom also enables you to receive events on any defined character (e.g. STX, ACK, NAK, EOF).

Type and amount of the events is also related to the used SuperCom software e.g. a SuperCom supporting only serial communications will not report TCP/IP network events.

Event function receiving communications events
C/C++
       // optional event function
   DWORD COMMAPI OnComm (Com, SComEvent)
   {
       if (SComEvent & EV_TXCACHE_EMPTY)
          // ...

       if (SComEvent & EV_RXCHAR)
          // ...

       if (SComEvent & EV_RI)
          // ...

       if (SComEvent & EV_TRIGGER)
          // ...

         :
         :
      return 0;
   }
      :
      :
     // init  ...
   ComInit(Com);

     // activate event reporting ...
   ComGetSetEventProc(Com, OnComm);
  C/C++    C#    Delphi    Java    Visual Basic

Connecting

Establishing connections through a Modem, TAPI, TCP/IP or ISDN is taken care by the common connect functions. The SuperCom functions can establish a connection (dialup) or waiting on an incoming call (server) and execute (on request) completely in background.

The SuperCom functions can trigger events during a connection attempt and provide the application with status information. So, even it executes in background the application stays in touch with the happening.

DLL API
In order to receive events the application has to provide an OnConnect* function. The OnConnect function is optional but very handy in many situations. Using OnConnect the application can receive progress information, information about the time left to complete a call or even cancel the connection attempt before it completes.

Modem Connection, OnConnect - InfoProc
C/C++
       // optional event function
   int OnConnect(Com, Action, TimeLeft, Data)
   {
      if (Action==acCONNECT_INFO)
      {
         // Received periodically, while in progress
      }
      if (Action==acCONNECT_OK)
      {
         // Connected !
      }
      if (Action==acCONNECT_FAILED)
      {
         // A connection attempt failed
      }
      if (Action==acCONNECT_USERBREAK)
      {
         // User interrupted
      }

      return infContinue;
   }

      :
      :
     // init  ...
   ComInit(Com);

     // now connect ...
   Res = RS_ConnectEx(Com, SEC_60, , DialStr, OnConnect);
  C/C++    C#    Delphi    Java    Visual Basic

Establishing a connection can run completely in background. The application receives events about the progress.

Comparing this sample made for a serial Modem with the one for TCP/IP or ISDN shows how effective it is to have a portable API!

More samples on setting a data connection with SuperCom can be found here.

 

File Transfer Protocols

SuperCom provides reliable and high speed file transfer protocols. These protocols are widely used and supported by many third party applications (e.g. ZMODEM, YMODEM/BATCH, YMODEM, YMODEM-G, XMODEM-1K, XMODEM, XMODEM/CRC, KERMIT, Extended XMODEM and ASCII).

With the SuperCom library any of the above protocol can run on any established connection (i.e. serial port, Modem, TCP/IP, ISDN, GSM) concurrently and in background. Queues of files to transfer are also possible to create and monitor (file-server etc.).

One of the most powerful among these protocols is ZMODEM that includes important features like "crash recovery", 32bit CRC, "batch file transfer", File Options, ZMODEM/8k block option and the powerful ADONTEC extension ZMODEM/32k (ZMODEM/64k shipped on request). The SuperCom ZMODEM implementation also includes support for slow communication channels and high latency connections (e.g. Satellite lines).

The KERMIT protocol and the Extended XMODEM are also offering a lot of interesting options.

Autodownload
is a file transfer protocol feature that enables automated receiving of file(s) transmitted from a remote host machine. SuperCom offers Autodownloading with the ZMODEM, KERMIT and Extended XMODEM protocol.

A file transfer is very easy started by one function. The protocol then triggers events to inform about status and other usefull protocol information. Events are received by a so called OnFile function. The OnFile function is optional but very handy in many situation e.g. to receive progress information, to cancel a file transfer. When SuperCom uses a protocol like ZMODEM or YMODEM/BATCH it can receive many files within on session. The OnFile will provide such information.

File Transfer, OnFile - InfoProc
C/C++ Sample
       // optional event function
   int COMMAPI OnFile(Com, Action, DataCount, FileData)
   {
      int Res=infCONTINUE;

      if (Action==acSYN)
      {
        // Synchronization
      }
      if (Action==acRXING)
      {
        // A block of data received
      }
      if (Action==acTXING)
      {
       // A block of data transmitted
      }
      if (Action==acTXFIN)
      {
       // File successfully transmitted
      }
      :
      return Res;
   }
      :
    // Transmit a file ...
   RS_TXFile_ZMODEM(Com, Filename, , OnFile);
  C/C++    C#    Delphi    Java    Visual Basic

A file transfer is very easy started by one function. The protocol triggers events to inform about status and other usefull protocol information. Events are received by a so called OnFile*. In order to receive events the application must provide an OnFile*. The OnFile is optional but enables to receive status information, if required and a better control over the happening (e.g. break a file transfer untimely).

*The OnFile-InfoProc enables a continuous exchange of information between the protocol and the application.

Industrial Protocols

Additional modules supporting the industry protocols 3964, 3964R, RK512, AS511, LSV2, Heidenhain TNC Protocol and MODBUS are also available (see also Software and Features).

3964 Protocol, RK512 Protocol, AS511 Protoocl, LSV2 Protocol, MODBUS Protocol

Custom Protocol Development

SuperCom provides a big pool of functions to easy develop custom protocols. Functions to transmit data packages event driven, time driven, functions to calculate checksums, CRC and many more.

MS Office

SuperCom supports MS-Office applications through direct function calls to the SuperCom DLL API or using the VBA (Visual Basic for Applications) calling interface.

Office applications like Access, Excel, Word may also prefer to use the ActiveX API. Another way is to call functions from the SuperCom DLL API using the available VBA (Visual Basic for Applications) calling interface.

Samples for Word and Excel are available.

The SuperCom ActiveX

SuperCom DLL API - Features List DLL API

Fast gets even Faster! SuperCom contains a fast data communication engine! Short response times enable to develop fast and stable data communication protocols.

A more detailed list of features and common properties of the SuperCom libraries can be found hereSerial, TCP and ISDN Data Communication library for Windows and Linux

A short list of DLL API functions can be found here

A short summary of the ActiveX API can be found here

Bonus Software: Serial to TCP/IP GateWay sample applications (PortServer, COMM Server, Terminal Server or Serial Server) were developed with the SuperCom Suite and therein included with source code (for example C#, Visual Basic).

Versatility

SuperCom is still the number one toolkit that supports different development environments providing extensive API support and samples. You're free to switch your compiler anytime and your are not bound to one and only. This saves a huge amount of time and costs of development.

Available Product Range - Price List

License Terms

Compiler, Operating System

Fabulous! And as always, thanks for the prompt and thorough support. You have a fan in California. Thanks!
Bob... from California

Amazing, CPU usage dropped from 100% to 15% and it runs faster! Excelent work guys, thanks!
Paul.., UK.

Is time valuable?
Don't end up spending lots of work on data transfer again and again! SuperCom will ease this work, reduce development costs and let your software work like a charm.

 

ZMCS File Server & Client
Are you looking for unattended file transfer with ZMODEM protocol as external client / server solution to be used instantly ? Read more...
ServiceLib
Are you looking for a complete library to accomplish a Windows Service Application ? Read more...
RuntimePacker
Are you looking for a way to securely distribute your files and application ? Read more...

Serial Library | Serial Data Communication Library | Serial Library C++ Windows | Delphi serial communication class library | RS-485 multi drop data transfer | 9-Bit | C# serial library | read COM port in C++ | Serial Data Communication example C, C++, C#, Pascal, Delphi, Java, Visual Basic, VBA | TCP Data Communication Library | MSComm compatible ActiveX | Serial Communication NET Class Library | TCP Communication NET Class Library | control many serial ports concurrently | control many connections concurrently | Background data transfer | Background file transfer | Non blocking I/O | Serial port communication using Visual C++


Home   Back

Data communication Software and data communication libraries and components. Read serial port data. TCP/IP connection.
It Simply Works!

Updated on: 2024-03-22 17:04:56