Unit Serial
Return to Unit Reference
Description
Serial devices represent a communication device that can be both read and written and has a set of common properties and capabilities. The underlying device may be an actual UART or it may be some other form of device such as a USB to Serial converter. As long as the device can implement the common capabilities then it can be accessed as a serial device without regard to the actual implementation.
Each serial device returns a set of properties that describe the capabilities of the device and includes a set of flags that indicate what features are supported.
Reads from and writes to serial devices are buffered so that varying data transfer rates can be accomodated and both reads and writes allow for non blocking so that a caller can avoid waiting for received data to be available or the device to be ready to transmit.
This unit also implements the serial logging device which can be configured via parameters in the GlobalConfig unit or from the command line.
Constants
To be documented
Type definitions
To be documented
Public variables
To be documented
Function declarations
Initialization functions
procedure SerialInit;
Note | To be documented |
---|
Serial functions
function SerialDeviceOpen(Serial:PSerialDevice; BaudRate,DataBits,StopBits,Parity,FlowControl,ReceiveDepth,TransmitDepth:LongWord):LongWord;
Note | To be documented |
---|
function SerialDeviceClose(Serial:PSerialDevice):LongWord;
Note | To be documented |
---|
function SerialDeviceRead(Serial:PSerialDevice; Buffer:Pointer; Size,Flags:LongWord; var Count:LongWord):LongWord;
Note | To be documented |
---|
function SerialDeviceWrite(Serial:PSerialDevice; Buffer:Pointer; Size,Flags:LongWord; var Count:LongWord):LongWord;
Note | To be documented |
---|
function SerialDeviceStatus(Serial:PSerialDevice):LongWord;
Note | To be documented |
---|
function SerialDeviceProperties(Serial:PSerialDevice; Properties:PSerialProperties):LongWord;
Note | To be documented |
---|
function SerialDeviceCreate:PSerialDevice;
Return | Pointer to new Serial entry or nil if Serial could not be created |
---|
function SerialDeviceCreateEx(Size:LongWord):PSerialDevice;
Size | Size in bytes to allocate for new Serial (Including the Serial entry) |
---|---|
Return | Pointer to new Serial entry or nil if Serial could not be created |
function SerialDeviceDestroy(Serial:PSerialDevice):LongWord;
Note | To be documented |
---|
function SerialDeviceRegister(Serial:PSerialDevice):LongWord;
Note | To be documented |
---|
function SerialDeviceFind(SerialId:LongWord):PSerialDevice;
Note | To be documented |
---|
function SerialDeviceFindByName(const Name:String):PSerialDevice; inline;
Note | To be documented |
---|
function SerialDeviceFindByDescription(const Description:String):PSerialDevice; inline;
Note | To be documented |
---|
function SerialDeviceEnumerate(Callback:TSerialEnumerate; Data:Pointer):LongWord;
Note | To be documented |
---|
function SerialDeviceNotification(Serial:PSerialDevice; Callback:TSerialNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Note | To be documented |
---|
Serial logging functions
function SerialLoggingStart(Logging:PLoggingDevice):LongWord;
Note | To be documented |
---|
function SerialLoggingStop(Logging:PLoggingDevice):LongWord;
Note | To be documented |
---|
function SerialLoggingOutput(Logging:PLoggingDevice; const Data:String):LongWord;
Note | To be documented |
---|
RTL serial functions
function SysSerialAvailable:Boolean;
Note | To be documented |
---|
function SysSerialOpen(BaudRate,DataBits,StopBits,Parity,FlowControl,ReceiveDepth,TransmitDepth:LongWord):LongWord;
BaudRate | Baud rate for the connection (eg 9600, 57600, 115200 etc |
---|---|
DataBits | Size of the data (eg SERIAL_DATA_8BIT) |
StopBits | Number of stop bits (eg SERIAL_STOP_1BIT) |
Parity | Parity type for the data (eg SERIAL_PARITY_NONE) |
FlowControl | Flow control for the connection (eg SERIAL_FLOW_NONE) |
ReceiveDepth | Size of the receive buffer (0 = Default size) |
TransmitDepth | Size of the transmit buffer (0 = Default size) |
function SysSerialClose:LongWord;
Note | To be documented |
---|
function SysSerialWrite(Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord;
Buffer | Pointer to a buffer of data to transmit |
---|---|
Size | The size of the buffer |
Count | The number of bytes written on return |
Serial helper functions
function SerialGetCount:LongWord; inline;
Note | To be documented |
---|
function SerialDeviceGetDefault:PSerialDevice; inline;
Note | To be documented |
---|
function SerialDeviceSetDefault(Serial:PSerialDevice):LongWord;
Note | To be documented |
---|
function SerialDeviceCheck(Serial:PSerialDevice):PSerialDevice;
Note | To be documented |
---|
function SerialBufferReadComplete(Buffer:PSerialBuffer; Removed:LongWord):Boolean;
Note | Caller must hold the lock on the serial device which owns the buffer |
---|
Return to Unit Reference