FoxPro offers a versatile RS232/RS422/RS485 serial communication software that operates multiple ports at a go. The software includes modem control, line status and control, and ANSI emulation functions. It also supports software and hardware flow control as well as virtual ports like Bluetooth and USB serial.

The library comes packed with features designed to make working with serial devices a breeze. For starters, it supports 256 ports, which allows you to control multiple ports simultaneously. It is fully thread safe, port re-entrant, offers modem control, serial line status and control, and ANSI emulation. It also uses the standard Windows API to communicate with any device connected to an RS232 serial port.
I was thrilled to learn that WSC4FP supports virtual serial ports like USB to serial converters and Bluetooth serial. It also offers state-driven Xmodem and Ymodem on multiple ports simultaneously (up to 256 connections) simplifying data transfer.
WSC4FP can send Windows messages upon completion of events such as an incoming character. Besides, it includes over 52 functions plus modem control capabilities. With the ability to specify the parity, word size, and the number of stop bits, you can customize the solution to fit your needs.
One of the most significant advantages of WSC4FP is that you get royalty-free distribution with your compiled application. Additionally, the library has C source code readily available. You are also entitled to free technical support and updates for one year.
Finally, the library is compatible with 32-bit FoxPro through VFP 9.0 and 32-bit and 64-bit Windows. I highly recommend this library to anyone looking to simplify serial device communication.
Version 7.0: Fixed SioGets() - would never timeouts when overlapped I/O was enabled. Added SioOpen and SioClose. Added SioGetsQ - reads port until no incoming data for specified "quiet" time. Added example program Scale.prg that reads from a (serial) scale.
Version 6.0.1: Added additional error codes. Added SioErrorText() that returns text associated with specified error codes. Added SioPortInfo() that returns baud in BPS and the theoretical port CPS. Added SioGetsC() that receives an entire line through the stop (EOL) character. Added ReadGPS example program.
Version 5.4.1: Added SioCRC16 and SioCRC32 functions to compute 16-bit CCITT CRC or 32-bit CCITT CRC; Added SioCountWait function that waits for a specified number of incoming bytes before returning.
Version 5.41: Added SioCRC16 and SioCRC32 functions to compute 16-bit CCITT CRC or 32-bit CCITT CRC; Added SioCountWait function that waits for a specified number of incoming bytes before returning.
Version 5.4: Added SioLRC function that computes the "longitudinal redundancy check"; added additional error checks to SioQuiet, and SioWaitFor; SioSetInteger no longer requires an open port for global (all ports) parameters; Modified SioReset to make it more tolerant opening slow virtual ports.
Version 5.3: Added SioLRC function that computes the "longitudinal redundancy check"; added additional error checks to SioQuiet, and SioWaitFor; SioSetInteger no longer requires an open port for global (all ports) parameters; Modified SioReset to make it more tolerant opening slow virtual ports.
Version 5.0: Added support for 64-bits (WSC64.DLL) Windows; Added SioHexView() function;
Version 4.3: N/A
Version 4.2: N/A