Serial Communications Class
Topics
:OverviewOverview
Conditional Directives
Enumerations
Functions
The gxSerialComm class is a base class used to open a serial port for bi-directional communication. It includes several low-level functions needed by derived classes to initialize a serial port, transmit, and receive data.
__UNIX__ - Conditional directive required for all UNIX variants.
__WIN32__ - Conditional directive required for all WIN32 platforms
enum { // Internal error codes used to report the serial port last error gxSerialComm::scomm_NO_ERROR = 0, // No errors reported gxSerialComm::scomm_INVALID_ERROR_CODE, // Invalid error code gxSerialComm::scomm_BAUDRATE_ERROR, // Invalid baud rate gxSerialComm::scomm_CS_ERROR, // Invalid character size gxSerialComm::scomm_FLOWCONTROL_ERROR, // Invalid flow control gxSerialComm::scomm_INIT_ERROR, // Initialization error gxSerialComm::scomm_INVALIDPARM, // Invalid parameter gxSerialComm::scomm_OPEN_ERROR, // Cannot open serial device gxSerialComm::scomm_PARITY_ERROR, // Invalid parity gxSerialComm::scomm_RECEIVE_ERROR, // Serial device receive error gxSerialComm::scomm_STOPBIT_ERROR, // Invalid stop bit gxSerialComm::scomm_TRANSMIT_ERROR, // Transmit error // Exception codes added to handle variable block errors gxSerialComm::scomm_BLOCKACK_ERROR, // Acknowledgment error gxSerialComm::scomm_BLOCKHEADER_ERROR, // Bad variable block header gxSerialComm::scomm_BLOCKSIZE_ERROR, // Bad variable block size gxSerialComm::scomm_BLOCKSYNC_ERROR // Synchronization error }; enum { // Flow control constants gxSerialComm::scommHARD_FLOW, gxSerialComm::scommSOFT_FLOW, gxSerialComm::scommXON_XOFF, gxSerialComm::scommNO_FLOW_CONTROL, // Device access constants gxSerialComm::scommREAD_ONLY, gxSerialComm::scommWRITE_ONLY, gxSerialComm::scommREAD_WRITE };
gxSerialComm::gxSerialComm()
gxSerialComm::~gxSerialComm()
gxSerialComm::BinaryMode()
gxSerialComm::BytesMoved()
gxSerialComm::BytesRead()
gxSerialComm::CharacterMode()
gxSerialComm::Close()
gxSerialComm::DeviceHandle()
gxSerialComm::GetSerialCommError()
gxSerialComm::InitSerialPort()
gxSerialComm::OpenSerialPort()
gxSerialComm::RawRead()
gxSerialComm::RawWrite()
gxSerialComm::Recv()
gxSerialComm::ResetError()
gxSerialComm::ResetSerialCommError()
gxSerialComm::Send()
gxSerialComm::SerialCommExceptionMessage()
gxSerialComm::SetBaudRate()
gxSerialComm::SetCharacterSize()
gxSerialComm::SetFlowControl()
gxSerialComm::SetParity()
gxSerialComm::SetSerialCommError()
gxSerialComm::SetStopBits()
gxSerialComm::Send()
virtual gxSerialComm::~gxSerialComm()
- Class destructor used to automatically close an open serial device when a gxSerialComm object is deleted.void gxSerialComm::BinaryMode()
- Public member function used to toggle from character mode to binary mode. NOTE: This function has no effect under WIN32. The Win32 API does not support non-binary mode transfers.int gxSerialComm::BytesMoved()
- Public member function that returns the number of bytes moved following a write operation. - Public member function that returns the number of bytes read following a read operation.void gxSerialComm::CharacterMode()
- Public member function used to toggle from binary mode to character mode. NOTE: This function has no effect under WIN32. The Win32 API does not support non-binary mode transfers. - Public member function used to close a previously opened serial device.scommDeviceHandle gxSerialComm::DeviceHandle()
- Public member function that returns the device handle for the currently opened serial device.int gxSerialComm::GetSerialCommError()
- Public member function used to retrieve the last reported serial port error. The return value will correspond to one of the integer constants defined in the error code enumeration.int gxSerialComm::GetSerialCommError()
- Public member function used to retrieve the last reported serial port error. The return value will correspond to one of the integer constants defined in the error code enumeration.int gxSerialComm::InitSerialPort()
- Public member function used to initialize a serial device. Returns zero to indicate success or -1 to indicate a serial port error. - Public member function used to initialize a serial device. Returns zero to indicate success or -1 to indicate a serial port error.int gxSerialComm::OpenSerialPort(char *device_name)
- Public member function to open a serial port for read/write operations depending on the device file permissions. This function will try to open the device for read/write, read, and then write access. Returns -1 if the device cannot be opened. This function will return a non-zero value corresponding to one of the integer constants defined in the device access enumeration if the serial device is opened successfully.int gxSerialComm::RawRead(void *buf, int bytes)
- Public member function used read a specified number of bytes from the serial port and return whether or not the read was completed. Returns the number of bytes received or -1 if an error occurred.int gxSerialComm::RawWrite(const void *buf, int bytes)
- Public member function used to write a specified number of bytes to a serial port and return whether or not the write was complete. Returns the total number of bytes moved or -1 if an error occurred.int gxSerialComm::Recv(void *buf, int bytes)
- Public member function used to receive a specified number of bytes from a serial port and does not return until all the byte have been read. Returns the total number of bytes read or -1 if an error occurred.void gxSerialComm::ResetError()
- Public member function used to clear the last reported serial device error.void gxSerialComm::ResetSerialCommError()
- Public member function used to clear the last reported serial device error.int gxSerialComm::Send(const void *buf, int bytes)
- Public member function used to write a specified number of bytes to a serial port and does not return until all the bytes have been written. Returns the total number of bytes written or -1 if an error occurred.const char *gxSerialComm::SerialCommExceptionMessage()
- Public member function that returns a null-terminated string that can be use to log or print a serial port exception.void gxSerialComm::SetBaudRate(int br)
- Public member function used to set the baud rate prior to initialization.void gxSerialComm::SetCharacterSize(int cs)
- Public member function used to set the character size prior to initialization.void gxSerialComm::SetFlowControl(int f)
- Public member function used to set the flow control prior to initialization. The "f" variable must equal one of the integer constants defined in the flow control enumeration.void gxSerialComm::SetParity(char p)
- Public member function used to set the parity prior to initialization.void gxSerialComm::SetSerialCommError(int err)
- Public member function used to set the serial device error code. The "err" variable must equal one of the integer constants defined in the error code enumeration.void gxSerialComm::SetStopBits(int sb)
- Public member function used to set the stop bits prior to initialization.int gxSerialComm::Send(const void *buf, int bytes)
- Public member function used to write a specified number of bytes to a serial port and does not return until all the bytes have been written. Returns the total number of bytes written or -1 if an error occurred.
End Of Document |