|
||
The Serial Comms server provides a virtualisation layer over the
serial device driver RDevComm
. This virtualisation layer means
that serial devices can be shared between different processes. More
importantly, it also allows developers to write software serial
ports. These are generally networking protocol stacks that implement (or
can implement) a serial-like interface. In this context a serial-like interface
means the RComm
API (Read()
, Write()
,
Signal()
etc.).
A prime example of such a software serial port is IrCOMM, the infrared serial protocol module. IrCOMM is a presentation layer ISO model network protocol that is defined in such a way that all programmers access to it is through a serial-like API. IrCOMM includes specifications for sending information about RS-232 signal lines, handshaking and emulating full duplex data transfer over the single ‘wire’ of the infrared link. Another examples of a possible software serial ports would be the Telnet protocol, which generally runs over TCP/IP or GSM Data services which run over the GSM digital network. None of these entities includes a standard serial UART, but they all simulate a serial port to a lesser or greater extent.
To allow developers to implement software serial ports, the Serial Comms server implements a dynamically extensible architecture. Modules that implement a software serial port can be loaded and executed at run time. The server provides a basic framework for the modules to run in, and controls client access to all serial ports (hardware and software).