SerialPort(3)

NAME
SerialPort -

SYNOPSIS

#include <SerialPort.h>

  Classes

class AlreadyOpen
class NotOpen
class OpenFailed
class ReadTimeout
class UnsupportedBaudRate

  Public Types

enum BaudRate { BAUD_50 = B50, BAUD_75 = B75, BAUD_110 = B110, BAUD_134 = B134, BAUD_150 = B150, BAUD_200 = B200, BAUD_300 = B300, BAUD_600 = B600, BAUD_1200 = B1200, BAUD_1800 = B1800, BAUD_2400 = B2400, BAUD_4800 = B4800, BAUD_9600 = B9600, BAUD_19200 = B19200, BAUD_38400 = B38400, BAUD_57600 = B57600, BAUD_115200 = B115200, BAUD_230400 = B230400, BAUD_DEFAULT = BAUD_57600 }
The allowed set of baud rates.
enum CharacterSize { CHAR_SIZE_5 = CS5, CHAR_SIZE_6 = CS6, CHAR_SIZE_7 = CS7, CHAR_SIZE_8 = CS8, CHAR_SIZE_DEFAULT = CHAR_SIZE_8 }
enum StopBits { STOP_BITS_1, STOP_BITS_2, STOP_BITS_DEFAULT = STOP_BITS_1 }
enum Parity { PARITY_EVEN, PARITY_ODD, PARITY_NONE, PARITY_DEFAULT = PARITY_NONE }
enum FlowControl { FLOW_CONTROL_HARD, FLOW_CONTROL_SOFT, FLOW_CONTROL_NONE, FLOW_CONTROL_DEFAULT = FLOW_CONTROL_NONE }
typedef std::vector< unsigned
char > DataBuffer"
Read the specified number of bytes from the serial port.

  Public Member Functions

SerialPort (const std::string &serialPortName)
Constructor for a serial port.
virtual ~SerialPort () throw ()
Destructor.
void Open (const BaudRate baudRate=BAUD_DEFAULT, const CharacterSize charSize=CHAR_SIZE_DEFAULT, const Parity parityType=PARITY_DEFAULT, const StopBits stopBits=STOP_BITS_DEFAULT, const FlowControl flowControl=FLOW_CONTROL_DEFAULT) throw ( AlreadyOpen, OpenFailed, UnsupportedBaudRate, std::invalid_argument )
Open the serial port with the specified settings.
bool IsOpen () const
Check if the serial port is open for I/O.
void Close () throw (NotOpen)
Close the serial port.
void SetBaudRate (const BaudRate baudRate) throw ( UnsupportedBaudRate, NotOpen, std::invalid_argument )
Set the baud rate for the serial port to the specified value (baudRate).
BaudRate GetBaudRate () const throw ( NotOpen, std::runtime_error )
Get the current baud rate for the serial port.
void SetCharSize (const CharacterSize charSize) throw ( NotOpen, std::invalid_argument )
Set the character size for the serial port.
CharacterSize GetCharSize () const throw (NotOpen)
Get the current character size for the serial port.
void SetParity (const Parity parityType) throw ( NotOpen, std::invalid_argument )
Set the parity type for the serial port.
Parity GetParity () const throw (NotOpen)
Get the parity type for the serial port.
void SetNumOfStopBits (const StopBits numOfStopBits) throw ( NotOpen, std::invalid_argument )
Set the number of stop bits to be used with the serial port.
StopBits GetNumOfStopBits () const throw (NotOpen)
Get the number of stop bits currently being used by the serial port.
void SetFlowControl (const FlowControl flowControl) throw ( NotOpen, std::invalid_argument )
Set flow control.
FlowControl GetFlowControl () const throw ( NotOpen )
Get the current flow control setting.
bool IsDataAvailable () const throw (NotOpen)
Check if data is available at the input of the serial port.
unsigned char ReadByte (const unsigned int msTimeout=0) throw ( NotOpen, ReadTimeout, std::runtime_error )
Read a single byte from the serial port.
void Read (DataBuffer &dataBuffer, const unsigned int numOfBytes=0, const unsigned int msTimeout=0) throw ( NotOpen, ReadTimeout, std::runtime_error )
const std::string ReadLine (const unsigned int msTimeout=0, const char lineTerminator= '\n') throw ( NotOpen, ReadTimeout, std::runtime_error )
Read a line of characters from the serial port.
void WriteByte (const unsigned char dataByte) throw ( NotOpen, std::runtime_error )
Send a single byte to the serial port.
void Write (const DataBuffer &dataBuffer) throw ( NotOpen, std::runtime_error )
Write the data from the specified vector to the serial port.
void Write (const std::string &dataString) throw ( NotOpen, std::runtime_error )
Write a string to the serial port.
void SetDtr (const bool dtrState=true) throw ( NotOpen, std::runtime_error )
Set the DTR line to the specified value.
bool GetDtr () const throw ( NotOpen, std::runtime_error )
Get the status of the DTR line.
void SetRts (const bool rtsState=true) throw ( NotOpen, std::runtime_error )
Set the RTS line to the specified value.
bool GetRts () const throw ( NotOpen, std::runtime_error )
Get the status of the RTS line.
bool GetCts () const throw ( NotOpen, std::runtime_error )
bool GetDsr () const throw ( NotOpen, std::runtime_error )

  Private Member Functions

SerialPort (const SerialPort &otherSerialPort)
Prevent copying of objects of this class by declaring the copy constructor private.
SerialPort & operator= (const SerialPort &otherSerialPort)
Prevent copying of objects of this class by declaring the assignment operator private.

  Private Attributes

SerialPortImpl * mSerialPortImpl
Pointer to implementation class instance.

Detailed Description

Note:
    This class attaches a handler to the SIGIO signal to detect the data arriving at a serial port. However, this signal handler will also call any signal handler that is already attached to this signal. However, if other parts of the application attach a signal handler to SIGIO after constructing an instance of SIGIO, they must ensure that they call the existing signal handler. Otherwise, it may not be possible to receive any data through the serial port using this class.

:FIXME: Provide examples of the above potential problem.

Todo
    The current implementation does not check if another process has locked the serial port device and does not lock the serial port device after opening it. This has been observed to cause problems while using this library while other programs such as minicom are also accessing the same device. It will be useful to lock the serial port device when it is being used by this class.

Definition at line 50 of file SerialPort.h.

Member Typedef Documentation

  typedef std::vector<unsigned char> SerialPort::DataBuffer

Read the specified number of bytes from the serial port. The method will timeout if no data is received in the specified number of milliseconds (msTimeout). If msTimeout is 0, then this method will block till all requested bytes are received. If numOfBytes is zero, then this method will keep reading data till no more data is available at the serial port. In all cases, all read data is available in dataBuffer on return from this method.

Definition at line 359 of file SerialPort.h.

Member Enumeration Documentation

  enum SerialPort::BaudRate

The allowed set of baud rates.

Enumerator

BAUD_50

BAUD_75

BAUD_110

BAUD_134

BAUD_150

BAUD_200

BAUD_300

BAUD_600

BAUD_1200

BAUD_1800

BAUD_2400

BAUD_4800

BAUD_9600

BAUD_19200

BAUD_38400

BAUD_57600

BAUD_115200

BAUD_230400

BAUD_DEFAULT

Definition at line 56 of file SerialPort.h.

  enum SerialPort::CharacterSize

Enumerator

CHAR_SIZE_5
    5 bit characters.

CHAR_SIZE_6
    6 bit characters.

CHAR_SIZE_7
    7 bit characters.

CHAR_SIZE_8
    8 bit characters.

CHAR_SIZE_DEFAULT

Definition at line 85 of file SerialPort.h.

  enum SerialPort::FlowControl

Enumerator

FLOW_CONTROL_HARD

FLOW_CONTROL_SOFT

FLOW_CONTROL_NONE

FLOW_CONTROL_DEFAULT

Definition at line 106 of file SerialPort.h.

  enum SerialPort::Parity

Enumerator

PARITY_EVEN
    Even parity.

PARITY_ODD
    Odd parity.

PARITY_NONE
    No parity i.e. parity checking disabled.

PARITY_DEFAULT

Definition at line 99 of file SerialPort.h.

  enum SerialPort::StopBits

Enumerator

STOP_BITS_1

STOP_BITS_2
    1 stop bit.

STOP_BITS_DEFAULT
    2 stop bits.

Definition at line 93 of file SerialPort.h.

Constructor & Destructor Documentation

  SerialPort::SerialPort (const std::string &serialPortName) [explicit]

Constructor for a serial port.

  virtual SerialPort::~SerialPort () [virtual]

Destructor.

  SerialPort::SerialPort (const SerialPort &otherSerialPort) [private]

Prevent copying of objects of this class by declaring the copy constructor private. This method is never defined.

Member Function Documentation

  void SerialPort::Close ()NotOpen

Close the serial port. All settings of the serial port will be lost and no more I/O can be performed on the serial port.

Exceptions:
    NotOpen Thrown if this method is called while the serial port is not open.

  BaudRate SerialPort::GetBaudRate () const NotOpen,std::runtime_error

Get the current baud rate for the serial port.

Exceptions:
    NotOpen Thrown if this method is called while the serial port is not open.

  CharacterSize SerialPort::GetCharSize () constNotOpen

Get the current character size for the serial port.

Exceptions:
    NotOpen Thrown if this method is called while the serial port is not open.

  bool SerialPort::GetCts () const NotOpen,std::runtime_error

  bool SerialPort::GetDsr () const NotOpen,std::runtime_error

  bool SerialPort::GetDtr () const NotOpen,std::runtime_error

Get the status of the DTR line.

  FlowControl SerialPort::GetFlowControl () constNotOpen

Get the current flow control setting.

Exceptions:
    NotOpen Thrown if this method is called while the serial port is not open.

  StopBits SerialPort::GetNumOfStopBits () constNotOpen

Get the number of stop bits currently being used by the serial port.

Exceptions:
    NotOpen Thrown if this method is called while the serial port is not open.

  Parity SerialPort::GetParity () constNotOpen

Get the parity type for the serial port.

Exceptions:
    NotOpen Thrown if this method is called while the serial port is not open.

  bool SerialPort::GetRts () const NotOpen,std::runtime_error

Get the status of the RTS line.

  bool SerialPort::IsDataAvailable () constNotOpen

Check if data is available at the input of the serial port.

Exceptions:
    NotOpen Thrown if this method is called while the serial port is not open.

  bool SerialPort::IsOpen () const

Check if the serial port is open for I/O.

  void SerialPort::Open (const BaudRatebaudRate = BAUD_DEFAULT, const CharacterSizecharSize = CHAR_SIZE_DEFAULT, const ParityparityType = PARITY_DEFAULT, const StopBitsstopBits = STOP_BITS_DEFAULT, const FlowControlflowControl = FLOW_CONTROL_DEFAULT) AlreadyOpen, OpenFailed, UnsupportedBaudRate,std::invalid_argument

Open the serial port with the specified settings. A serial port cannot be used till it is open.

Exceptions:
    AlreadyOpen This exception is thrown if the serial port is already open.
    OpenFailed This exception is thrown if the serial port could not be opened.
    std::invalid_argument This exception is thrown if an invalid parameter value is specified.

  SerialPort& SerialPort::operator= (const SerialPort &otherSerialPort) [private]

Prevent copying of objects of this class by declaring the assignment operator private. This method is never defined.

  void SerialPort::Read (DataBuffer &dataBuffer, const unsigned intnumOfBytes = 0, const unsigned intmsTimeout = 0) NotOpen, ReadTimeout,std::runtime_error

  unsigned char SerialPort::ReadByte (const unsigned intmsTimeout = 0) NotOpen, ReadTimeout,std::runtime_error

Read a single byte from the serial port. If no data is available in the specified number of milliseconds (msTimeout), then this method will throw ReadTimeout exception. If msTimeout is 0, then this method will block till data is available.

  const std::string SerialPort::ReadLine (const unsigned intmsTimeout = 0, const charlineTerminator = '\n') NotOpen, ReadTimeout,std::runtime_error

Read a line of characters from the serial port.

  void SerialPort::SetBaudRate (const BaudRatebaudRate) UnsupportedBaudRate, NotOpen,std::invalid_argument

Set the baud rate for the serial port to the specified value (baudRate).

Exceptions:
    NotOpen Thrown if this method is called while the serial port is not open.
    std::invalid_argument Thrown if an invalid baud rate is specified.

  void SerialPort::SetCharSize (const CharacterSizecharSize) NotOpen,std::invalid_argument

Set the character size for the serial port.

Exceptions:
    NotOpen Thrown if this method is called while the serial port is not open.
    std::invalid_argument Thrown if an invalid character size is specified.

  void SerialPort::SetDtr (const booldtrState = true) NotOpen,std::runtime_error

Set the DTR line to the specified value.

  void SerialPort::SetFlowControl (const FlowControlflowControl) NotOpen,std::invalid_argument

Set flow control.

Exceptions:
    NotOpen Thrown if this method is called while the serial port is not open.
    std::invalid_argument Thrown if an invalid flow control is specified.

  void SerialPort::SetNumOfStopBits (const StopBitsnumOfStopBits) NotOpen,std::invalid_argument

Set the number of stop bits to be used with the serial port.

Exceptions:
    NotOpen Thrown if this method is called while the serial port is not open.
    std::invalid_argument Thrown if an invalid number of stop bits is specified.

  void SerialPort::SetParity (const ParityparityType) NotOpen,std::invalid_argument

Set the parity type for the serial port.

Exceptions:
    NotOpen Thrown if this method is called while the serial port is not open.
    std::invalid_argument Thrown if an invalid parity is specified.

  void SerialPort::SetRts (const boolrtsState = true) NotOpen,std::runtime_error

Set the RTS line to the specified value.

  void SerialPort::Write (const DataBuffer &dataBuffer) NotOpen,std::runtime_error

Write the data from the specified vector to the serial port.

  void SerialPort::Write (const std::string &dataString) NotOpen,std::runtime_error

Write a string to the serial port.

  void SerialPort::WriteByte (const unsigned chardataByte) NotOpen,std::runtime_error

Send a single byte to the serial port.

Exceptions:
    NotOpen Thrown if this method is called while the serial port is not open.

Member Data Documentation

  SerialPortImpl* SerialPort::mSerialPortImpl [private]

Pointer to implementation class instance.

Definition at line 474 of file SerialPort.h.

Author

Generated automatically by Doxygen for libserial from the source code.