Main Page | Namespace List | Class List | Directories | File List | Class Members | File Members | Related Pages

SerialPort Class Reference

#include <SerialPort.h>

List of all members.

Public Types

typedef std::vector< unsigned
char > 
DataBuffer
 Read the specified number of bytes from the serial port.
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_460800 = B460800, BAUD_DEFAULT = BAUD_57600
}
 The allowed set of baud rates. More...
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_NONE, FLOW_CONTROL_DEFAULT = FLOW_CONTROL_NONE }

Public Member Functions

 SerialPort (const std::string &serialPortName)
 Constructor for a serial port.
 ~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.

Private Member Functions

 SerialPort (const SerialPort &otherSerialPort)
SerialPortoperator= (const SerialPort &otherSerialPort)

Private Attributes

SerialPortImpl * mSerialPortImpl

Classes

class  AlreadyOpen
class  NotOpen
class  OpenFailed
class  ReadTimeout
class  UnsupportedBaudRate


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.

Definition at line 43 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 346 of file SerialPort.h.


Member Enumeration Documentation

enum SerialPort::BaudRate
 

The allowed set of baud rates.

Enumeration values:
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_460800 
BAUD_DEFAULT 

Definition at line 49 of file SerialPort.h.

enum SerialPort::CharacterSize
 

Enumeration values:
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 72 of file SerialPort.h.

enum SerialPort::FlowControl
 

Enumeration values:
FLOW_CONTROL_HARD 
FLOW_CONTROL_NONE 
FLOW_CONTROL_DEFAULT 

Definition at line 93 of file SerialPort.h.

enum SerialPort::Parity
 

Enumeration values:
PARITY_EVEN  Even parity.
PARITY_ODD  Odd parity.
PARITY_NONE  No parity i.e. parity checking disabled.
PARITY_DEFAULT 

Definition at line 86 of file SerialPort.h.

enum SerialPort::StopBits
 

Enumeration values:
STOP_BITS_1 
STOP_BITS_2  1 stop bit.
STOP_BITS_DEFAULT  2 stop bits.

Definition at line 80 of file SerialPort.h.


Constructor & Destructor Documentation

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

Constructor for a serial port.

SerialPort::~SerialPort  )  throw ()
 

Destructor.

SerialPort::SerialPort const SerialPort otherSerialPort  )  [private]
 


Member Function Documentation

void SerialPort::Close  )  throw (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 throw ( 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  )  const throw (NotOpen)
 

Get the current character size for the serial port.

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

FlowControl SerialPort::GetFlowControl  )  const throw ( NotOpen )
 

Get the current flow control setting.

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

StopBits SerialPort::GetNumOfStopBits  )  const throw (NotOpen)
 

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  )  const throw (NotOpen)
 

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::IsDataAvailable  )  const throw (NotOpen)
 

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 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.

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]
 

void SerialPort::Read DataBuffer dataBuffer,
const unsigned int  numOfBytes = 0,
const unsigned int  msTimeout = 0
throw ( NotOpen, ReadTimeout, std::runtime_error )
 

unsigned char SerialPort::ReadByte const unsigned int  msTimeout = 0  )  throw ( 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 int  msTimeout = 0,
const char  lineTerminator = '\n'
throw ( NotOpen, ReadTimeout, std::runtime_error )
 

Read a line of characters from the serial port.

void SerialPort::SetBaudRate const BaudRate  baudRate  )  throw ( 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 CharacterSize  charSize  )  throw ( 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::SetFlowControl const FlowControl  flowControl  )  throw ( 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 StopBits  numOfStopBits  )  throw ( 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 Parity  parityType  )  throw ( 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::Write const std::string &  dataString  )  throw ( NotOpen, std::runtime_error )
 

Write a string to the serial port.

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

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

void SerialPort::WriteByte const unsigned char  dataByte  )  throw ( 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]
 

Definition at line 395 of file SerialPort.h.


The documentation for this class was generated from the following file:
Generated on Sat Oct 1 14:15:51 2005 for libserial by  doxygen 1.4.2