Man Linux: Main Page and Category List

NAME

       LibSerial::SerialStreamBuf -

       This is the streambuf subclass used by SerialStream.

SYNOPSIS

       #include <SerialStreamBuf.h>

   Public Types
       Enumerations

           enum BaudRateEnum { BAUD_50 =  SerialPort::BAUD_50, BAUD_75 =
               SerialPort::BAUD_75, BAUD_110 =  SerialPort::BAUD_110, BAUD_134
               =  SerialPort::BAUD_134, BAUD_150 =  SerialPort::BAUD_150,
               BAUD_200 =  SerialPort::BAUD_200, BAUD_300 =
               SerialPort::BAUD_300, BAUD_600 =  SerialPort::BAUD_600,
               BAUD_1200 =  SerialPort::BAUD_1200, BAUD_1800 =
               SerialPort::BAUD_1800, BAUD_2400 =  SerialPort::BAUD_2400,
               BAUD_4800 =  SerialPort::BAUD_4800, BAUD_9600 =
               SerialPort::BAUD_9600, BAUD_19200 =  SerialPort::BAUD_19200,
               BAUD_38400 =  SerialPort::BAUD_38400, BAUD_57600 =
               SerialPort::BAUD_57600, BAUD_115200 =  SerialPort::BAUD_115200,
               BAUD_230400 =  SerialPort::BAUD_230400, BAUD_DEFAULT =
               SerialPort::BAUD_DEFAULT, BAUD_INVALID }
               The baud rates currently supported by the SUS-2 general
               terminal interface specification.
           enum CharSizeEnum { CHAR_SIZE_5 =  SerialPort::CHAR_SIZE_5,
               CHAR_SIZE_6 =  SerialPort::CHAR_SIZE_6, CHAR_SIZE_7 =
               SerialPort::CHAR_SIZE_7, CHAR_SIZE_8 =
               SerialPort::CHAR_SIZE_8, CHAR_SIZE_DEFAULT =
               SerialPort::CHAR_SIZE_DEFAULT, CHAR_SIZE_INVALID }
               The allowed values of character sizes that can be used during
               the serial communication.
           enum ParityEnum { PARITY_EVEN =  SerialPort::PARITY_EVEN,
               PARITY_ODD =  SerialPort::PARITY_ODD, PARITY_NONE =
               SerialPort::PARITY_NONE, PARITY_DEFAULT =
               SerialPort::PARITY_DEFAULT, PARITY_INVALID }
               The allowed values of the parity associated with the serial
               port communications.
           enum FlowControlEnum { FLOW_CONTROL_HARD =
               SerialPort::FLOW_CONTROL_HARD, FLOW_CONTROL_SOFT =
               SerialPort::FLOW_CONTROL_SOFT, FLOW_CONTROL_NONE =
               SerialPort::FLOW_CONTROL_NONE, FLOW_CONTROL_DEFAULT =
               SerialPort::FLOW_CONTROL_DEFAULT, FLOW_CONTROL_INVALID }
               The values of the flow control settings for a serial port.

   Public Member Functions
       Constructors and Destructor

           SerialStreamBuf ()
               The default constructor.
           ~SerialStreamBuf ()
               The destructor.

       Other Public Methods

           bool is_open () const
               Returns true if a previous call to open() succeeded (returned a
               non-null value) and there has been no intervening call to
               close.
           SerialStreamBuf * open (const std::string filename,
               std::ios_base::openmode
               mode=std::ios_base::in|std::ios_base::out)
               If is_open() != false, returns a null pointer.
           SerialStreamBuf * close ()
               If is_open() == false, returns a null pointer.
           int SetParametersToDefault ()
               Initialize the serial communication parameters to their default
               values.
           const BaudRateEnum SetBaudRate (const BaudRateEnum baudRate)
               If is_open() != true, return -1.
           const BaudRateEnum BaudRate () const
               Return the current baud rate of the serial port.
           const CharSizeEnum SetCharSize (const CharSizeEnum charSize)
               Set the character size to be used during serial communication.
           const CharSizeEnum CharSize () const
               Return the character size currently being used for serial
               communication.
           short SetNumOfStopBits (short numOfStopBits)
               Set the number of stop bits used during serial communication.
           short NumOfStopBits () const
               Get the number of stop bits being used during serial
               communication.
           const ParityEnum SetParity (const ParityEnum parityType)
               Set the parity for serial communication.
           const ParityEnum Parity () const
               Get the current parity setting for the serial port.
           const FlowControlEnum SetFlowControl (const FlowControlEnum
               flowControlType)
               Use the specified flow control.
           const FlowControlEnum FlowControl () const
               Return the current flow control setting.
           const short SetVMin (short vtime)
               Set the minimum number of characters for non-canonical reads.
           const short VMin () const
               Get the VMIN value for the device.
           const short SetVTime (short vtime)
               Set character buffer timeout in 10ths of a second.
           const short VTime () const
               Get the current timeout value for non-canonical reads in
               deciseconds.

   Static Public Attributes
       Public static members.

           static const BaudRateEnum DEFAULT_BAUD
               The default value of the baud rate of the serial port.
           static const CharSizeEnum DEFAULT_CHAR_SIZE
               The default value of the character size used during the serial
               communication.
           static const short DEFAULT_NO_OF_STOP_BITS
               The default number of stop bits used.
           static const ParityEnum DEFAULT_PARITY
               The default parity setting.
           static const FlowControlEnum DEFAULT_FLOW_CONTROL
               The default flow control setting.
           static const short DEFAULT_VMIN
               The default character buffer size.
           static const short DEFAULT_VTIME
               The default character buffer timing.

   Protected Member Functions
       virtual std::streambuf * setbuf (char_type *, std::streamsize)
           Performs an operation that is defined separately for each class
           derived from streambuf.
       virtual std::streamsize xsgetn (char_type *s, std::streamsize n)
           Reads upto n characters from the serial port and returns them
           through the character array located at s.
       virtual std::streamsize showmanyc ()
           Check, wether input is available on the port.
       virtual int_type underflow ()
           Reads and returns the next character from the associated serial
           port if one otherwise returns traits::eof().
       virtual int_type uflow ()
           Reads and returns the next character from the associated serial
           port if one otherwise returns traits::eof().
       virtual int_type pbackfail (int_type c=traits_type::eof())
           This function is called when a putback of a character fails.
       virtual std::streamsize xsputn (const char_type *s, std::streamsize n)
           Writes upto n characters from the character sequence at s to the
           serial port associated with the buffer.
       virtual int_type overflow (int_type c)
           Writes the specified character to the associated serial port.

   Static Protected Attributes
       static const char CTRL_Q = 0x11
           Character used to signal that I/O can start while using software
           flow control with the serial port.
       static const char CTRL_S = 0x13
           Character used to signal that I/O should stop while using software
           flow control with the serial port.

   Private Member Functions
       SerialStreamBuf (const SerialStreamBuf &)
       SerialStreamBuf & operator= (const SerialStreamBuf &)
       int InitializeSerialPort ()
           This routine is called by open() in order to initialize some
           parameters of the serial port and setting its parameters to default
           values.

   Private Attributes
       char mPutbackChar
           We use unbuffered I/O for the serial port.
       bool mPutbackAvailable
           True if a putback value is available in mPutbackChar.
       int mFileDescriptor
           The file descriptor associated with the serial port.

Detailed Description

       This is the streambuf subclass used by SerialStream.

       This subclass takes care of opening the serial port file in the
       required modes and providing the corresponding file descriptor to
       SerialStream so that various parameters associated with the serial port
       can be set. Several features of this streambuf class resemble those of
       std::filebuf, however this class it not made a subclass of filebuf
       because we need access to the file descriptor associated with the
       serial port and the standard filebuf does not provide access to it.

       At present, this class uses unbuffered I/O and all calls to setbuf()
       will be ignored.

       Author:

       Author.RS 4 crayzeewulf

       Manish P. Pagey

       Version:

       Id.RS 4 SerialStreamBuf.h,v 1.9 2005-10-17 00:19:12 crayzeewulf Exp

       Definition at line 38 of file SerialStreamBuf.h.

Member Enumeration Documentation

   enum LibSerial::SerialStreamBuf::BaudRateEnum
       The baud rates currently supported by the SUS-2 general terminal
       interface specification. Note that B0 is not supported because it is
       not really a baud rate (it causes the modem to hang up i.e. drop DTR).
       Use the close() method instead.

       Deprecated
           This enumeration will be removed in revision 0.7.x of libserial. It
           is here for backward compatibility with 0.5.x releases. Please use
           the corresponding enumeration from SerialPort class instead.

       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

       BAUD_INVALID

       Definition at line 62 of file SerialStreamBuf.h.

   enum LibSerial::SerialStreamBuf::CharSizeEnum
       The allowed values of character sizes that can be used during the
       serial communication. Deprecated
           This enumeration is deprecated. It will be removed in version
           0.7.0. It is here for backward compatibility with version 0.5.x.
           Please use SerialPort::CharacterSize instead.

       Enumerator:

       CHAR_SIZE_5

       CHAR_SIZE_6

       CHAR_SIZE_7

       CHAR_SIZE_8

       CHAR_SIZE_DEFAULT

       CHAR_SIZE_INVALID

       Definition at line 97 of file SerialStreamBuf.h.

   enum LibSerial::SerialStreamBuf::FlowControlEnum
       The values of the flow control settings for a serial port. Deprecated
           This enumeration has been deprecated and will be removed in version
           0.7.0. Please use SerialPort::FlowControl instead.

       Enumerator:

       FLOW_CONTROL_HARD

       FLOW_CONTROL_SOFT

       FLOW_CONTROL_NONE

       FLOW_CONTROL_DEFAULT

       FLOW_CONTROL_INVALID
              Invalid flow control setting.

       Definition at line 130 of file SerialStreamBuf.h.

   enum LibSerial::SerialStreamBuf::ParityEnum
       The allowed values of the parity associated with the serial port
       communications. Deprecated
           This enumeration is deprecated and will be removed in version
           0.7.0. Please use SerialPort::Parity instead.

       Enumerator:

       PARITY_EVEN

       PARITY_ODD

       PARITY_NONE

       PARITY_DEFAULT

       PARITY_INVALID
              Invalid parity value.

       Definition at line 114 of file SerialStreamBuf.h.

Constructor & Destructor Documentation

   LibSerial::SerialStreamBuf::SerialStreamBuf () [inline]
       The default constructor.

       Definition at line 562 of file SerialStreamBuf.h.

   LibSerial::SerialStreamBuf::~SerialStreamBuf () [inline]
       The destructor.

       Definition at line 572 of file SerialStreamBuf.h.

   LibSerial::SerialStreamBuf::SerialStreamBuf (const SerialStreamBuf &)
       [private]

Member Function Documentation

   const BaudRateEnum LibSerial::SerialStreamBuf::BaudRate () const
       Return the current baud rate of the serial port. If the baud rate is
       not set to a valid value then it returns BAUD_INVALID.

   const CharSizeEnum LibSerial::SerialStreamBuf::CharSize () const
       Return the character size currently being used for serial
       communication.

   SerialStreamBuf * LibSerial::SerialStreamBuf::close () [inline]
       If is_open() == false, returns a null pointer. If a put area exists,
       calls overflow(EOF) to flush characters. Finally it closes the file by
       calling std::close(mFileDescriptor) where mFileDescriptor is the value
       returned by the last call to open().

       For the implementation of the corresponding function in class filebuf,
       if the last virtual member function called on *this (between underflow,
       overflow, seekoff, and seekpos) was overflow then it calls
       a_codecvt.unshift (possible several times) to determine a termination
       sequence, inserts those characters and calls overflow(EOF) again.
       However, this is not implemented here yet.

       Postcondition: is_open() == false

       Returns:
           this on success, a null pointer otherwise.

       Definition at line 597 of file SerialStreamBuf.h.

   const FlowControlEnum LibSerial::SerialStreamBuf::FlowControl () const
       Return the current flow control setting.

   int LibSerial::SerialStreamBuf::InitializeSerialPort () [private]
       This routine is called by open() in order to initialize some parameters
       of the serial port and setting its parameters to default values.
       Returns:
           -1 on failure and some other value on success.

   bool LibSerial::SerialStreamBuf::is_open () const [inline]
       Returns true if a previous call to open() succeeded (returned a non-
       null value) and there has been no intervening call to close.

       Definition at line 583 of file SerialStreamBuf.h.

   short LibSerial::SerialStreamBuf::NumOfStopBits () const
       Get the number of stop bits being used during serial communication.
       Returns:
           The number of stop bits.

   SerialStreamBuf* LibSerial::SerialStreamBuf::open (const std::string
       filename, std::ios_base::openmode mode =
       std::ios_base::in|std::ios_base::out)
       If is_open() != false, returns a null pointer. Otherwise, initializes
       the streambuf as required. It then opens a file, if possible, whose
       name is given as the string filename using the system call
       std::open(filename.c_str(), flags). The value of parameter flags is
       obtained from the value of the parameter mode. At present, only
       ios_base::in, ios_base::out, and (ios_base::in|ios_baseout) make sense
       for a serial port and hence all other settings result in the call to
       fail. The value of flags is obtained as:

       flags = u_flags | O_NOCTTY

       where u_flags is obtained from the following table depending on the
       value of the parameter mode:

       in  out  u_flags   +  O_RDONLY   +  O_WRONLY   +  +  O_RDWR

       Returns:
           If the open() system call succeeds the method returns this. If the
           call fails, then it returns a null pointer.

   SerialStreamBuf& LibSerial::SerialStreamBuf::operator= (const
       SerialStreamBuf &) [private]
   virtual int_type LibSerial::SerialStreamBuf::overflow (int_type c)
       [protected, virtual]
       Writes the specified character to the associated serial port. Returns:
           The character c.

   const ParityEnum LibSerial::SerialStreamBuf::Parity () const
       Get the current parity setting for the serial port. Returns:
           The parity setting for the serial port.

   virtual int_type LibSerial::SerialStreamBuf::pbackfail (int_type c =
       traits_type::eof()) [protected, virtual]
       This function is called when a putback of a character fails. This must
       be implemented for unbuffered I/O as all streambuf subclasses are
       required to provide putback of at least on character.

   const BaudRateEnum LibSerial::SerialStreamBuf::SetBaudRate (const
       BaudRateEnum baudRate)
       If is_open() != true, return -1. Otherwise, set the baud rate of the
       associated serial port. Return the baud rate on success and
       BAUD_INVALID on failure.

   std::streambuf * LibSerial::SerialStreamBuf::setbuf (char_type *,
       std::streamsize) [inline, protected, virtual]
       Performs an operation that is defined separately for each class derived
       from streambuf. The default behavior is to do nothing if gptr() is non-
       null and gptr()!=egptr(). Also, setbuf(0, 0) usually means unbuffered
       I/O and setbuf(p, n) means use p[0]...p[n-1] to hold the buffered
       characters. In general, this method implements the subclass’s notion of
       getting memory for the buffered characters.

       In the case of SerialStreamBuf, we want to keep using unbuffered I/O.
       Hence, using this method has no effect at present.

       Definition at line 590 of file SerialStreamBuf.h.

   const CharSizeEnum LibSerial::SerialStreamBuf::SetCharSize (const
       CharSizeEnum charSize)
       Set the character size to be used during serial communication. It
       returns the character size on success and CHAR_SIZE_INVALID on failure.

   const FlowControlEnum LibSerial::SerialStreamBuf::SetFlowControl (const
       FlowControlEnum flowControlType)
       Use the specified flow control.

   short LibSerial::SerialStreamBuf::SetNumOfStopBits (short numOfStopBits)
       Set the number of stop bits used during serial communication. The only
       valid values are 1 and 2.

       Parameters:
           stop_bits The number of stop bits. (1 or 2).

       Returns:
           The number of stop bits or -1 on failure.

   int LibSerial::SerialStreamBuf::SetParametersToDefault ()
       Initialize the serial communication parameters to their default values.

   const ParityEnum LibSerial::SerialStreamBuf::SetParity (const ParityEnum
       parityType)
       Set the parity for serial communication. Parameters:
           parity The parity value.

   const short LibSerial::SerialStreamBuf::SetVMin (short vtime)
       Set the minimum number of characters for non-canonical reads. See VMIN
       in man termios(3).

   const short LibSerial::SerialStreamBuf::SetVTime (short vtime)
       Set character buffer timeout in 10ths of a second. This applies to non-
       canonical reads.

   virtual std::streamsize LibSerial::SerialStreamBuf::showmanyc ()
       [protected, virtual]
       Check, wether input is available on the port. If you call
       SerialStream::in_avail, this method will be called to check for
       available input.

                while( serial_port.rdbuf()->in_avail() > 0  ) {
                         serial_port.get(ch);
                         ...
                       }

   std::streambuf::int_type LibSerial::SerialStreamBuf::uflow () [inline,
       protected, virtual]
       Reads and returns the next character from the associated serial port if
       one otherwise returns traits::eof(). This method is used for unbuffered
       I/O while underflow() is called for unbuffered I/O.

       Returns:
           The next character from the serial port.

       Definition at line 628 of file SerialStreamBuf.h.

   virtual int_type LibSerial::SerialStreamBuf::underflow () [protected,
       virtual]
       Reads and returns the next character from the associated serial port if
       one otherwise returns traits::eof(). This method is used for buffered
       I/O while uflow() is called for unbuffered I/O.

       Returns:
           The next character from the serial port.

   const short LibSerial::SerialStreamBuf::VMin () const
       Get the VMIN value for the device. This represents the minimum number
       of characters for non-canonical reads.

   const short LibSerial::SerialStreamBuf::VTime () const
       Get the current timeout value for non-canonical reads in deciseconds.

   virtual std::streamsize LibSerial::SerialStreamBuf::xsgetn (char_type * s,
       std::streamsize n) [protected, virtual]
       Reads upto n characters from the serial port and returns them through
       the character array located at s. Returns:
           The number of characters actually read from the serial port.

   virtual std::streamsize LibSerial::SerialStreamBuf::xsputn (const char_type
       * s, std::streamsize n) [protected, virtual]
       Writes upto n characters from the character sequence at s to the serial
       port associated with the buffer. Returns:
           The number of characters that were successfully written to the
           serial port.

Member Data Documentation

   const char LibSerial::SerialStreamBuf::CTRL_Q = 0x11 [static, protected]
       Character used to signal that I/O can start while using software flow
       control with the serial port.

       Definition at line 426 of file SerialStreamBuf.h.

   const char LibSerial::SerialStreamBuf::CTRL_S = 0x13 [static, protected]
       Character used to signal that I/O should stop while using software flow
       control with the serial port.

       Definition at line 432 of file SerialStreamBuf.h.

   const BaudRateEnum LibSerial::SerialStreamBuf::DEFAULT_BAUD [static]
       The default value of the baud rate of the serial port. Deprecated
           Please use SerialPort::BAUD_DEFAULT instead.

       Definition at line 153 of file SerialStreamBuf.h.

   const CharSizeEnum LibSerial::SerialStreamBuf::DEFAULT_CHAR_SIZE [static]
       The default value of the character size used during the serial
       communication. Deprecated
           Please use SerialPort::CHAR_SIZE_DEFAULT instead.

       Definition at line 162 of file SerialStreamBuf.h.

   const FlowControlEnum LibSerial::SerialStreamBuf::DEFAULT_FLOW_CONTROL
       [static]
       The default flow control setting. Deprecated
           Please use SerialPort::FLOW_CONTROL_DEFAULT instead.

       Definition at line 186 of file SerialStreamBuf.h.

   const short LibSerial::SerialStreamBuf::DEFAULT_NO_OF_STOP_BITS [static]
       The default number of stop bits used. Deprecated
           Please use SerialPort::STOP_BITS_DEFAULT instead.

       Definition at line 170 of file SerialStreamBuf.h.

   const ParityEnum LibSerial::SerialStreamBuf::DEFAULT_PARITY [static]
       The default parity setting. Deprecated
           Please use SerialPort::PARITY_DEFAULT instead.

       Definition at line 178 of file SerialStreamBuf.h.

   const short LibSerial::SerialStreamBuf::DEFAULT_VMIN [static]
       The default character buffer size. Deprecated
           VMIN and VTIME will not be supported starting from version 0.7.0.
           Methods of SerialPort class provide better mechanisms for
           implementing read and write timeouts.

       Definition at line 196 of file SerialStreamBuf.h.

   const short LibSerial::SerialStreamBuf::DEFAULT_VTIME [static]
       The default character buffer timing. Deprecated
           VMIN and VTIME will not be supported starting from version 0.7.0.
           Methods of SerialPort class provide better mechanisms for
           implementing read and write timeouts.

       Definition at line 206 of file SerialStreamBuf.h.

   int LibSerial::SerialStreamBuf::mFileDescriptor [private]
       The file descriptor associated with the serial port.

       Definition at line 546 of file SerialStreamBuf.h.

   bool LibSerial::SerialStreamBuf::mPutbackAvailable [private]
       True if a putback value is available in mPutbackChar.

       Definition at line 541 of file SerialStreamBuf.h.

   char LibSerial::SerialStreamBuf::mPutbackChar [private]
       We use unbuffered I/O for the serial port. However, we need to provide
       the putback of atleast one character. This character contains the
       putback character.

       Definition at line 536 of file SerialStreamBuf.h.

Author

       Generated automatically by Doxygen for libserial from the source code.