Rudiments
Public Member Functions | List of all members
serialport Class Reference

Inherits filedescriptor.

Public Member Functions

 serialport ()
 
 serialport (const serialport &s)
 
serialportoperator= (const serialport &s)
 
virtual ~serialport ()
 
bool setProfileNow (serialportprofile *profile)
 
bool setProfileOnDrain (serialportprofile *profile)
 
bool setProfileOnFlush (serialportprofile *profile)
 
bool getProfile (serialportprofile *profile)
 
bool drain ()
 
bool flush ()
 
bool flushInput ()
 
bool flushOutput ()
 
bool suspendOutput ()
 
bool restartOutput ()
 
bool transmitStop ()
 
bool transmitStart ()
 
bool sendBreak (int32_t duration)
 
- Public Member Functions inherited from filedescriptor
 filedescriptor ()
 
 filedescriptor (const filedescriptor &f)
 
filedescriptoroperator= (const filedescriptor &f)
 
virtual ~filedescriptor ()
 
virtual bool close ()
 
int32_t getFileDescriptor () const
 
void setFileDescriptor (int32_t filedesc)
 
int32_t duplicate () const
 
bool duplicate (int32_t newfd) const
 
void setSecurityContext (securitycontext *ctx)
 
securitycontextgetSecurityContext ()
 
virtual bool supportsBlockingNonBlockingModes ()
 
virtual bool useNonBlockingMode () const
 
virtual bool useBlockingMode () const
 
virtual bool isUsingNonBlockingMode () const
 
ssize_t write (uint16_t number)
 
ssize_t write (uint32_t number)
 
ssize_t write (uint64_t number)
 
ssize_t write (int16_t number)
 
ssize_t write (int32_t number)
 
ssize_t write (int64_t number)
 
ssize_t write (float number)
 
ssize_t write (double number)
 
ssize_t write (unsigned char character)
 
ssize_t write (char character)
 
ssize_t write (bool value)
 
ssize_t write (const unsigned char *string)
 
ssize_t write (const char *string)
 
ssize_t write (const unsigned char *string, size_t size)
 
ssize_t write (const char *string, size_t length)
 
ssize_t write (const void *buffer, size_t size)
 
ssize_t write (uint16_t number, int32_t sec, int32_t usec)
 
ssize_t write (uint32_t number, int32_t sec, int32_t usec)
 
ssize_t write (uint64_t number, int32_t sec, int32_t usec)
 
ssize_t write (int16_t number, int32_t sec, int32_t usec)
 
ssize_t write (int32_t number, int32_t sec, int32_t usec)
 
ssize_t write (int64_t number, int32_t sec, int32_t usec)
 
ssize_t write (float number, int32_t sec, int32_t usec)
 
ssize_t write (double number, int32_t sec, int32_t usec)
 
ssize_t write (unsigned char character, int32_t sec, int32_t usec)
 
ssize_t write (char character, int32_t sec, int32_t usec)
 
ssize_t write (bool value, int32_t sec, int32_t usec)
 
ssize_t write (const unsigned char *string, int32_t sec, int32_t usec)
 
ssize_t write (const char *string, int32_t sec, int32_t usec)
 
ssize_t write (const unsigned char *string, size_t size, int32_t sec, int32_t usec)
 
ssize_t write (const char *string, size_t size, int32_t sec, int32_t usec)
 
ssize_t write (const void *buffer, size_t size, int32_t sec, int32_t usec)
 
size_t printf (const char *format,...)
 
size_t printf (const char *format, va_list *argp)
 
void safePrint (unsigned char c)
 
void safePrint (const unsigned char *str)
 
void safePrint (const unsigned char *str, int32_t length)
 
void safePrint (char c)
 
void safePrint (const char *str)
 
void safePrint (const char *str, int32_t length)
 
void printBits (unsigned char value)
 
void printBits (uint16_t value)
 
void printBits (uint32_t value)
 
void printBits (uint64_t value)
 
void printBits (char value)
 
void printBits (int16_t value)
 
void printBits (int32_t value)
 
void printBits (int64_t value)
 
void printBits (const unsigned char *bits, uint64_t size)
 
ssize_t read (uint16_t *buffer)
 
ssize_t read (uint32_t *buffer)
 
ssize_t read (uint64_t *buffer)
 
ssize_t read (int16_t *buffer)
 
ssize_t read (int32_t *buffer)
 
ssize_t read (int64_t *buffer)
 
ssize_t read (float *buffer)
 
ssize_t read (double *buffer)
 
ssize_t read (unsigned char *buffer)
 
ssize_t read (char *buffer)
 
ssize_t read (bool *buffer)
 
ssize_t read (unsigned char *buffer, size_t size)
 
ssize_t read (char *buffer, size_t length)
 
ssize_t read (void *buf, size_t size)
 
ssize_t read (char **buffer, const char *terminator)
 
ssize_t read (char **buffer, const char *terminator, size_t maxbytes)
 
ssize_t read (uint16_t *buffer, int32_t sec, int32_t usec)
 
ssize_t read (uint32_t *buffer, int32_t sec, int32_t usec)
 
ssize_t read (uint64_t *buffer, int32_t sec, int32_t usec)
 
ssize_t read (int16_t *buffer, int32_t sec, int32_t usec)
 
ssize_t read (int32_t *buffer, int32_t sec, int32_t usec)
 
ssize_t read (int64_t *buffer, int32_t sec, int32_t usec)
 
ssize_t read (float *buffer, int32_t sec, int32_t usec)
 
ssize_t read (double *buffer, int32_t sec, int32_t usec)
 
ssize_t read (unsigned char *buffer, int32_t sec, int32_t usec)
 
ssize_t read (char *buffer, int32_t sec, int32_t usec)
 
ssize_t read (bool *buffer, int32_t sec, int32_t usec)
 
ssize_t read (unsigned char *buffer, size_t size, int32_t sec, int32_t usec)
 
ssize_t read (char *buffer, size_t size, int32_t sec, int32_t usec)
 
ssize_t read (void *buf, size_t size, int32_t sec, int32_t usec)
 
ssize_t read (char **buffer, const char *terminator, int32_t sec, int32_t usec)
 
ssize_t read (char **buffer, const char *terminator, size_t maxbytes, int32_t sec, int32_t usec)
 
ssize_t read (char **buffer, const char *terminator, size_t maxbytes, char escapechar, int32_t sec, int32_t usec)
 
int32_t waitForNonBlockingRead (int32_t sec, int32_t usec) const
 
int32_t waitForNonBlockingWrite (int32_t sec, int32_t usec) const
 
void retryInterruptedReads ()
 
void dontRetryInterruptedReads ()
 
bool getRetryInterruptedReads () const
 
void retryInterruptedWrites ()
 
void dontRetryInterruptedWrites ()
 
bool getRetryInterruptedWrites () const
 
void retryInterruptedWaits ()
 
void dontRetryInterruptedWaits ()
 
bool getRetryInterruptedWaits () const
 
void retryInterruptedFcntl ()
 
void dontRetryInterruptedFcntl ()
 
bool getRetryInterruptedFcntl () const
 
void retryInterruptedIoctl ()
 
void dontRetryInterruptedIoctl ()
 
bool getRetryInterruptedIoctl () const
 
void allowShortReads ()
 
void dontAllowShortReads ()
 
void allowShortWrites ()
 
void dontAllowShortWrites ()
 
virtual bool passFileDescriptor (int32_t fd)
 
virtual bool receiveFileDescriptor (int32_t *fd)
 
virtual bool passSocket (int32_t sock)
 
virtual bool receiveSocket (int32_t *sock)
 
void translateByteOrder ()
 
void dontTranslateByteOrder ()
 
virtual int32_t fCntl (int32_t command, long arg) const
 
virtual int32_t ioCtl (int32_t command, void *arg) const
 
bool useNaglesAlgorithm ()
 
bool dontUseNaglesAlgorithm ()
 
bool setSocketWriteBufferSize (int32_t size)
 
bool getSocketWriteBufferSize (int32_t *size)
 
bool setSocketReadBufferSize (int32_t size)
 
bool getSocketReadBufferSize (int32_t *size)
 
bool disableIPv4 ()
 
bool enableIPv4 ()
 
const char * getType () const
 
char * getPeerAddress () const
 
bool setWriteBufferSize (ssize_t size) const
 
bool flushWriteBuffer (int32_t sec, int32_t usec)
 
bool setReadBufferSize (ssize_t size) const
 
bool closeOnExec ()
 
bool dontCloseOnExec ()
 
bool getCloseOnExec ()
 

Additional Inherited Members

- Static Public Member Functions inherited from filedescriptor
static bool createPipe (filedescriptor *readfd, filedescriptor *writefd)
 
static uint16_t hostToNet (uint16_t value)
 
static uint32_t hostToNet (uint32_t value)
 
static uint64_t hostToNet (uint64_t value)
 
static uint16_t netToHost (uint16_t value)
 
static uint32_t netToHost (uint32_t value)
 
static uint64_t netToHost (uint64_t value)
 
static uint16_t hostToLittleEndian (uint16_t value)
 
static uint32_t hostToLittleEndian (uint32_t value)
 
static uint64_t hostToLittleEndian (uint64_t value)
 
static uint16_t littleEndianToHost (uint16_t value)
 
static uint32_t littleEndianToHost (uint32_t value)
 
static uint64_t littleEndianToHost (uint64_t value)
 

Detailed Description

The serialport class is similar to the filedescriptor class, but read() returns EOF when a timeout has occurred. This class should be used when communicating over a serial port.

Also, this class wraps some functions from termios.h

Constructor & Destructor Documentation

◆ serialport() [1/2]

serialport::serialport ( )

Creates an instance of the serialport class.

◆ serialport() [2/2]

serialport::serialport ( const serialport s)

Creates an instance of the serialport class that is identical to "s".

◆ ~serialport()

virtual serialport::~serialport ( )
virtual

Deletes this instance of the serialport class.

Member Function Documentation

◆ drain()

bool serialport::drain ( )

Waits until all output written to the serial port has been transmitted.

◆ flush()

bool serialport::flush ( )

Discards all output written to the serial port but not yet transmitted and all buffered input.

◆ flushInput()

bool serialport::flushInput ( )

Discards all buffered input.

◆ flushOutput()

bool serialport::flushOutput ( )

Discards all output written to the serial port but not yet transmitted.

◆ getProfile()

bool serialport::getProfile ( serialportprofile profile)

Sets "profile" to the current profile of the serial port.

◆ operator=()

serialport& serialport::operator= ( const serialport s)

Makes this instance of the serialport class identical to "s".

◆ restartOutput()

bool serialport::restartOutput ( )

Restores output operations suspended by a call to suspendOutput().

◆ sendBreak()

bool serialport::sendBreak ( int32_t  duration)

If the DTE is communicating asynchronously, then a continuous stream of 0-valued bytes are sent to the DTE. If "duration" is 0 then the stream will be sent for between 0.25 and 0.5 seconds. If "duration" is non-zero then the stream will be sent for an implementation-specific period of time.

If the DTE is communicating synchronously, then this method does nothing and returns true immediately.

◆ setProfileNow()

bool serialport::setProfileNow ( serialportprofile profile)

Sets the profile of the serial port to "profile" immediately.

◆ setProfileOnDrain()

bool serialport::setProfileOnDrain ( serialportprofile profile)

Sets the profile of the serial port to "profile" after all output written to the serial port has been transmitted.

◆ setProfileOnFlush()

bool serialport::setProfileOnFlush ( serialportprofile profile)

Sets the profile of the serial port to "profile" after all output written to the serial port has been transmitted. Also discards all buffered input.

◆ suspendOutput()

bool serialport::suspendOutput ( )

Causes data not yet written not to be written until restartOutput() is called. New writes will block when the output buffer is full.

◆ transmitStart()

bool serialport::transmitStart ( )

Sends a START character out the serial port, hopefully causing the DTE to resume transmission.

◆ transmitStop()

bool serialport::transmitStop ( )

Sends a STOP character out the serial port, hopefully causing the DTE cease transmitting data until a START character is sent.