PIDUINO
Loading...
Searching...
No Matches
Piduino::SerialPort

Provides functions to access serial ports. More...

#include <serialport.h>

Inheritance diagram for Piduino::SerialPort:
Collaboration diagram for Piduino::SerialPort:

Classes

class  Info
 Provides information about existing serial ports. More...
 
class  Settings
 Provides settings information about serial ports. More...
 

Public Types

enum  BaudRate {
  Baud1200 = 1200 , Baud2400 = 2400 , Baud4800 = 4800 , Baud9600 = 9600 ,
  Baud19200 = 19200 , Baud38400 = 38400 , Baud57600 = 57600 , Baud115200 = 115200 ,
  UnknownBaud = -1
}
 
enum  DataBits {
  Data5 = 5 , Data6 = 6 , Data7 = 7 , Data8 = 8 ,
  UnknownDataBits = -1
}
 
enum  StopBits { OneStop = 1 , TwoStop = 2 , UnknownStopBits = -1 }
 
enum  Parity {
  NoParity = 'N' , EvenParity = 'E' , OddParity = 'O' , SpaceParity = 'S' ,
  MarkParity = 'M' , UnknownParity = -1
}
 
enum  FlowControl {
  NoFlowControl = ' ' , HardwareControl = 'H' , SoftwareControl = 'S' , Rs485AfterSendControl = 'R' ,
  Rs485OnSendControl = 'r' , Rs485RtsUpControl = Rs485AfterSendControl , Rs485RtsDownControl = Rs485OnSendControl , UnknownFlowControl = -1
}
 
enum  Direction { NoDirection = 0 , Input = 1 , Output = 2 , AllDirections = Input | Output }
 
enum  PinoutSignal {
  NoSignal = 0x00 , TransmittedDataSignal = 0x01 , ReceivedDataSignal = 0x02 , DataTerminalReadySignal = 0x04 ,
  DataCarrierDetectSignal = 0x08 , DataSetReadySignal = 0x10 , RingIndicatorSignal = 0x20 , RequestToSendSignal = 0x40 ,
  ClearToSendSignal = 0x80 , SecondaryTransmittedDataSignal = 0x100 , SecondaryReceivedDataSignal = 0x200
}
 
typedef Flags< DirectionDirections
 
typedef Flags< PinoutSignalPinoutSignals
 
enum  OpenModeFlag {
  NotOpen = 0x0000 , Append = std::ios_base::app , AtEnd = std::ios_base::ate , Binary = std::ios_base::binary ,
  ReadOnly = std::ios_base::in , WriteOnly = std::ios_base::out , ReadWrite = ReadOnly | WriteOnly , Truncate = std::ios_base::trunc ,
  IosModes = Append | AtEnd | Binary | ReadOnly | WriteOnly | Truncate , Unbuffered = (Truncate << 1)
}
 Flags that specify how the device is to be opened. More...
 
typedef Flags< OpenModeFlagOpenMode
 Type representing a combination of OpenModeFlag values.
 

Public Member Functions

 SerialPort ()
 
 SerialPort (const Info &serialPortInfo)
 
 SerialPort (const std::string &path)
 
virtual ~SerialPort ()
 Closes the serial port, if necessary, and then destroys object.
 
void discard (Directions directions=AllDirections)
 
void setPort (const Info &info)
 
void setPortName (const std::string &name)
 
std::string portName () const
 
bool setSettings (const Settings &settings)
 
Settings settings () const
 settings information
 
bool setBaudRate (int32_t baudRate, Directions directions=AllDirections)
 
int32_t baudRate (Directions directions=AllDirections) const
 the data baud rate for the desired direction
 
bool setDataBits (DataBits dataBits)
 
DataBits dataBits () const
 the data bits in a frame
 
bool setParity (Parity parity)
 
Parity parity () const
 the parity checking mode
 
bool setStopBits (StopBits stopBits)
 
StopBits stopBits () const
 the number of stop bits in a frame
 
bool setFlowControl (FlowControl flowControl)
 
FlowControl flowControl () const
 the desired flow control mode
 
bool setDataTerminalReady (bool set)
 
bool isDataTerminalReady ()
 
bool setRequestToSend (bool set)
 
bool isRequestToSend ()
 
PinoutSignals pinoutSignals ()
 
bool sendBreak (int duration=0)
 
bool setBreakEnabled (bool set=true)
 
bool isBreakEnabled () const
 
virtual ssize_t write (const char *data, size_t maxSize)
 
virtual ssize_t write (const char *data, size_t maxSize, bool endl)
 
ssize_t available () const
 
virtual ssize_t read (char *data, size_t maxSize)
 
ssize_t read (char *buf, size_t maxSize, long msTimeout)
 
ssize_t read (std::string &str, long msTimeout=0)
 
ssize_t read (char &c, long msTimeout=0)
 
ssize_t peek (char *buf, size_t len, long msTimeout=0)
 
ssize_t peek (std::string &str, long msTimeout=0)
 
ssize_t peek (char &c, long msTimeout=0)
 
Piduino::TerminalNotifiernotifier ()
 
const Piduino::TerminalNotifiernotifier () const
 
ssize_t write (const char *str)
 
ssize_t write (const std::string &str)
 
ssize_t write (char c)
 
virtual bool open (OpenMode mode=ReadWrite)
 
virtual void close ()
 
virtual void setPath (const std::string &path)
 
virtual std::string path () const
 
bool setFd (int fd)
 
int fd () const
 
bool isOurFile () const
 
OpenMode openMode () const
 Returns the current open mode of the device.
 
virtual bool isOpen () const
 Returns true if the device is currently open.
 
bool isReadable () const
 Returns true if the device is readable.
 
bool isWritable () const
 Returns true if the device is writable.
 
bool isBuffered () const
 Returns true if the device is buffered.
 
virtual bool isSequential () const
 Returns true if this device is sequential; otherwise returns false.
 
void setTextModeEnabled (bool enabled)
 Enables or disables text mode for the device.
 
bool isTextModeEnabled () const
 Returns true if text mode is enabled.
 
void setDebug (bool enabled)
 Enables or disables debug mode for the device.
 
bool isDebug () const
 Returns true if debug mode is enabled.
 
virtual std::string errorString () const
 Returns a human-readable description of the last error.
 
virtual int error () const
 Returns the code of the last error.
 

Protected Member Functions

 SerialPort (Private &dd)
 

Protected Attributes

std::unique_ptr< Privated_ptr
 Pointer to the private implementation.
 

Detailed Description

Provides functions to access serial ports.

You can get information about the available serial ports using the SerialPort::Info helper class, which allows an enumeration of all the serial ports in the system. This is useful to obtain the correct name of the serial port you want to use. You can pass an object of the helper class as an argument to the setPort() or setPortName() methods to assign the desired serial device.

After setting the port, you can open it in read-only (r/o), write-only (w/o), or read-write (r/w) mode using the open() method.

Note
The serial port is always opened with exclusive access (that is, no other process or thread can access an already opened serial port).

Use the close() method to close the port and cancel the I/O operations.

Having successfully opened, SerialPort tries to determine the current configuration of the port and initializes itself. You can reconfigure the port to the desired setting using the setBaudRate(), setDataBits(), setParity(), setStopBits(), and setFlowControl() methods.

There are a couple of properties to work with the pinout signals namely: SerialPort::dataTerminalReady, SerialPort::requestToSend. It is also possible to use the pinoutSignals() method to query the current pinout signals set.

Once you know that the ports are ready to read or write, you can use the read() or write() methods.

SerialPort provides a set of functions that suspend the calling thread until certain signals are emitted. These functions can be used to implement blocking serial ports:

@list

  • waitForReadyRead() blocks calls until new data is available for reading.
  • waitForBytesWritten() blocks calls until one payload of data has been written to the serial port.

@endlist

Definition at line 77 of file serialport.h.

Member Typedef Documentation

◆ Directions

Definition at line 243 of file serialport.h.

◆ OpenMode

Type representing a combination of OpenModeFlag values.

Definition at line 70 of file iodevice.h.

◆ PinoutSignals

Member Enumeration Documentation

◆ BaudRate

This enum describes the baud rate which the communication device operates with.

Note
Only the most common standard baud rates are listed in this enum.

@value Baud1200 1200 baud. @value Baud2400 2400 baud. @value Baud4800 4800 baud. @value Baud9600 9600 baud. @value Baud19200 19200 baud. @value Baud38400 38400 baud. @value Baud57600 57600 baud. @value Baud115200 115200 baud. @value UnknownBaud Unknown baud. This value is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.

See also
SerialPort::baudRate
Enumerator
Baud1200 
Baud2400 
Baud4800 
Baud9600 
Baud19200 
Baud38400 
Baud57600 
Baud115200 
UnknownBaud 

Definition at line 101 of file serialport.h.

◆ DataBits

This enum describes the number of data bits used.

@value Data5 The number of data bits in each character is 5. It is used for Baudot code. It generally only makes sense with older equipment such as teleprinters. @value Data6 The number of data bits in each character is 6. It is rarely used. @value Data7 The number of data bits in each character is 7. It is used for true ASCII. It generally only makes sense with older equipment such as teleprinters. @value Data8 The number of data bits in each character is 8. It is used for most kinds of data, as this size matches the size of a byte. It is almost universally used in newer applications. @value UnknownDataBits Unknown number of bits. This value is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.

See also
SerialPort::dataBits
Enumerator
Data5 
Data6 
Data7 
Data8 
UnknownDataBits 

Definition at line 136 of file serialport.h.

◆ Direction

This enum describes the possible directions of the data transmission.

Note
This enumeration is used for setting the baud rate of the device separately for each direction on some operating systems (for example, POSIX-like).

@value Input Input direction. @value Output Output direction. @value AllDirections Simultaneously in two directions.

Enumerator
NoDirection 
Input 
Output 
AllDirections 

Definition at line 237 of file serialport.h.

◆ FlowControl

Enumerator
NoFlowControl 
HardwareControl 
SoftwareControl 
Rs485AfterSendControl 
Rs485OnSendControl 
Rs485RtsUpControl 
Rs485RtsDownControl 
UnknownFlowControl 

Definition at line 213 of file serialport.h.

◆ OpenModeFlag

Flags that specify how the device is to be opened.

These flags control the behavior of the device when it is opened. They can be combined using bitwise OR.

Enumerator
NotOpen 

Device is not open.

Append 

Set the stream's position indicator to the end of the stream before each output operation.

AtEnd 

Set the stream's position indicator to the end of the stream on opening.

Binary 

Open the device in binary mode (no text translation).

ReadOnly 

Open the device for input operations only.

Text mode: When reading, end-of-line terminators are translated to '
'. When writing, end-of-line terminators are translated to the local encoding (e.g., '\r
' for Win32).

WriteOnly 

Open the device for output operations only.

ReadWrite 

Open the device for both input and output operations.

Truncate 

Discard any existing content when opening the device.

IosModes 

Combination of all standard I/O modes.

Unbuffered 

Open the device in unbuffered mode (implementation-defined).

Definition at line 48 of file iodevice.h.

◆ Parity

This enum describes the parity scheme used.

@value NoParity No parity bit it sent. This is the most common parity setting. Error detection is handled by the communication protocol. @value EvenParity The number of 1 bits in each character, including the parity bit, is always even. @value OddParity The number of 1 bits in each character, including the parity bit, is always odd. It ensures that at least one state transition occurs in each character. @value SpaceParity Space parity. The parity bit is sent in the space signal condition. It does not provide error detection information. @value MarkParity Mark parity. The parity bit is always set to the mark signal condition (logical 1). It does not provide error detection information. @value UnknownParity Unknown parity. This value is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.

See also
SerialPort::parity
Enumerator
NoParity 
EvenParity 
OddParity 
SpaceParity 
MarkParity 
UnknownParity 

Definition at line 188 of file serialport.h.

◆ PinoutSignal

Enumerator
NoSignal 
TransmittedDataSignal 
ReceivedDataSignal 
DataTerminalReadySignal 
DataCarrierDetectSignal 
DataSetReadySignal 
RingIndicatorSignal 
RequestToSendSignal 
ClearToSendSignal 
SecondaryTransmittedDataSignal 
SecondaryReceivedDataSignal 

Definition at line 271 of file serialport.h.

◆ StopBits

Enumerator
OneStop 
TwoStop 
UnknownStopBits 

Definition at line 157 of file serialport.h.

Constructor & Destructor Documentation

◆ SerialPort() [1/4]

Piduino::SerialPort::SerialPort ( )

Constructs a new serial port object

◆ SerialPort() [2/4]

Piduino::SerialPort::SerialPort ( const Info serialPortInfo)

Constructs a new serial port object to represent the serial port with the specified helper class serialPortInfo.

◆ SerialPort() [3/4]

Piduino::SerialPort::SerialPort ( const std::string &  path)

Constructs a new serial port object to represent the serial port with the specified path.

The path should have a specific format; see the FileDevice::setPath() method

◆ ~SerialPort()

virtual Piduino::SerialPort::~SerialPort ( )
virtual

Closes the serial port, if necessary, and then destroys object.

◆ SerialPort() [4/4]

Piduino::SerialPort::SerialPort ( Private dd)
protected

Member Function Documentation

◆ available()

ssize_t Piduino::Terminal::available ( ) const
inherited

Returns the number of incoming bytes that are waiting to be read.

◆ baudRate()

Piduino::SerialPort::baudRate ( Directions  directions = AllDirections) const

the data baud rate for the desired direction

If the setting is successful or set before opening the port, returns true; otherwise returns false and sets an error code which can be obtained by accessing the value of the SerialPort::error property. To set the baud rate, use the enumeration SerialPort::BaudRate or any positive int32_t value.

Note
If the setting is set before opening the port, the actual serial port setting is done automatically in the @l{FileDevice::open()} method right after that the opening of the port succeeds.

The default value is Baud9600, i.e. 9600 bits per second.

◆ close()

virtual void Piduino::FileDevice::close ( )
virtualinherited

Closes the device and sets its OpenMode to NotOpen

Reimplemented from Piduino::IoDevice.

◆ dataBits()

Piduino::SerialPort::dataBits ( ) const

the data bits in a frame

If the setting is successful or set before opening the port, returns true; otherwise returns false and sets an error code which can be obtained by accessing the value of the SerialPort::error property.

Note
If the setting is set before opening the port, the actual serial port setting is done automatically in the @l{FileDevice::open()} method right after that the opening of the port succeeds.

The default value is Data8, i.e. 8 data bits.

◆ discard()

void Piduino::SerialPort::discard ( Directions  directions = AllDirections)

Discards all characters from the output or input buffer, depending on given directions directions. This includes clearing the internal class buffers and the UART (driver) buffers. Also terminate pending read or write operations. If successful, returns true; otherwise returns false.

Note
The serial port has to be open before trying to clear any buffered data; otherwise returns false and sets the NotOpenError error code.

◆ error()

virtual int Piduino::IoDevice::error ( ) const
virtualinherited

Returns the code of the last error.

Returns
The error code.

◆ errorString()

virtual std::string Piduino::IoDevice::errorString ( ) const
virtualinherited

Returns a human-readable description of the last error.

Returns
The error string.

◆ fd()

int Piduino::FileDevice::fd ( ) const
inherited

Returns the file descriptor of the file, if it is open, else returns -1.

Do not use the close() function with this descriptor !

◆ flowControl()

Piduino::SerialPort::flowControl ( ) const

the desired flow control mode

If the setting is successful or set before opening the port, returns true; otherwise returns false and sets an error code which can be obtained by accessing the value of the SerialPort::error property.

Note
If the setting is set before opening the port, the actual serial port setting is done automatically in the @l{FileDevice::open()} method right after that the opening of the port succeeds.

The default value is NoFlowControl, i.e. no flow control.

◆ isBreakEnabled()

bool Piduino::SerialPort::isBreakEnabled ( ) const

◆ isBuffered()

bool Piduino::IoDevice::isBuffered ( ) const
inherited

Returns true if the device is buffered.

Returns
True if buffered, false otherwise.

◆ isDataTerminalReady()

bool Piduino::SerialPort::isDataTerminalReady ( )

◆ isDebug()

bool Piduino::IoDevice::isDebug ( ) const
inherited

Returns true if debug mode is enabled.

Returns
True if debug mode is enabled, false otherwise.

◆ isOpen()

virtual bool Piduino::IoDevice::isOpen ( ) const
virtualinherited

Returns true if the device is currently open.

Returns
True if open, false otherwise.

◆ isOurFile()

bool Piduino::FileDevice::isOurFile ( ) const
inherited

◆ isReadable()

bool Piduino::IoDevice::isReadable ( ) const
inherited

Returns true if the device is readable.

Returns
True if readable, false otherwise.

◆ isRequestToSend()

bool Piduino::SerialPort::isRequestToSend ( )

◆ isSequential()

virtual bool Piduino::IoDevice::isSequential ( ) const
virtualinherited

Returns true if this device is sequential; otherwise returns false.

Sequential devices, as opposed to random-access devices, have no concept of a start, an end, a size, or a current position, and do not support seeking. You can only read from the device when it reports that data is available. The most common example of a sequential device is a network socket. On Unix, special files such as /dev/zero and fifo pipes are sequential. Regular files, on the other hand, do support random access. They have both a size and a current position, and they also support seeking backwards and forwards in the data stream. Regular files are non-sequential.

The IoDevice implementation returns false.

Returns
True if the device is sequential, false otherwise.

◆ isTextModeEnabled()

bool Piduino::IoDevice::isTextModeEnabled ( ) const
inherited

Returns true if text mode is enabled.

Returns
True if text mode is enabled, false otherwise.

◆ isWritable()

bool Piduino::IoDevice::isWritable ( ) const
inherited

Returns true if the device is writable.

Returns
True if writable, false otherwise.

◆ notifier() [1/2]

Piduino::TerminalNotifier & Piduino::Terminal::notifier ( )
inherited

◆ notifier() [2/2]

const Piduino::TerminalNotifier & Piduino::Terminal::notifier ( ) const
inherited

◆ open()

virtual bool Piduino::FileDevice::open ( OpenMode  mode = ReadWrite)
virtualinherited

Opens the file device using OpenMode mode, and then returns true if successful; otherwise returns false and sets an error code which can be obtained by calling the error() method. The error string is also reset.

Reimplemented from Piduino::IoDevice.

◆ openMode()

OpenMode Piduino::IoDevice::openMode ( ) const
inherited

Returns the current open mode of the device.

Returns
The open mode flags.

◆ parity()

Piduino::SerialPort::parity ( ) const

the parity checking mode

If the setting is successful or set before opening the port, returns true; otherwise returns false and sets an error code which can be obtained by accessing the value of the SerialPort::error property.

Note
If the setting is set before opening the port, the actual serial port setting is done automatically in the @l{FileDevice::open()} method right after that the opening of the port succeeds.

The default value is NoParity, i.e. no parity.

◆ path()

virtual std::string Piduino::FileDevice::path ( ) const
virtualinherited

Returns the path set by setPath() or to the FileDevice constructors.

See also
setPath()

◆ peek() [1/3]

ssize_t Piduino::Terminal::peek ( char &  c,
long  msTimeout = 0 
)
inherited

◆ peek() [2/3]

ssize_t Piduino::Terminal::peek ( char *  buf,
size_t  len,
long  msTimeout = 0 
)
inherited

◆ peek() [3/3]

ssize_t Piduino::Terminal::peek ( std::string &  str,
long  msTimeout = 0 
)
inherited

◆ pinoutSignals()

PinoutSignals Piduino::SerialPort::pinoutSignals ( )

Returns the state of the line signals in a bitmap format.

From this result, it is possible to allocate the state of the desired signal by applying a mask "AND", where the mask is the desired enumeration value from SerialPort::PinoutSignals.

Note
This method performs a system call, thus ensuring that the line signal states are returned properly. This is necessary when the underlying operating systems cannot provide proper notifications about the changes.
The serial port has to be open before trying to get the pinout signals; otherwise returns NoSignal.
See also
SerialPort::dataTerminalReady, SerialPort::requestToSend

◆ portName()

std::string Piduino::SerialPort::portName ( ) const

Returns the name set by setPort() or passed to the SerialPort constructor. This name is short, i.e. it is extracted and converted from the internal variable system location of the device.

See also
setPort(), SerialPort::Info::portName()

◆ read() [1/4]

ssize_t Piduino::Terminal::read ( char &  c,
long  msTimeout = 0 
)
inherited

◆ read() [2/4]

ssize_t Piduino::Terminal::read ( char *  buf,
size_t  maxSize,
long  msTimeout 
)
inherited

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Reads at most maxSize bytes from the terminal into data, and returns the number of bytes read. If an error occurs, such as when attempting to read from a terminal opened in WriteOnly mode, this function returns -1.

0 is returned when no more data is available for reading. However, reading past the end of the stream is considered an error, so this function returns -1 in those cases.

◆ read() [3/4]

virtual ssize_t Piduino::Terminal::read ( char *  data,
size_t  maxSize 
)
virtualinherited

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Reads at most maxSize bytes from the terminal into data, and returns the number of bytes read. If an error occurs, such as when attempting to read from a terminal opened in WriteOnly mode, this function returns -1.

0 is returned when no more data is available for reading. However, reading past the end of the stream is considered an error, so this function returns -1 in those cases.

Reimplemented from Piduino::FileStream.

◆ read() [4/4]

ssize_t Piduino::Terminal::read ( std::string &  str,
long  msTimeout = 0 
)
inherited

◆ sendBreak()

bool Piduino::SerialPort::sendBreak ( int  duration = 0)

Sends a continuous stream of zero bits during a specified period of time duration in msec if the terminal is using asynchronous serial data. If successful, returns true; otherwise returns false.

If the duration is zero then zero bits are transmitted by at least 0.25 seconds, but no more than 0.5 seconds.

If the duration is non zero then zero bits are transmitted within a certain period of time depending on the implementation.

Note
The serial port has to be open before trying to send a break duration; otherwise returns false and sets the NotOpenError error code.
See also
setBreakEnabled()

◆ setBaudRate()

bool Piduino::SerialPort::setBaudRate ( int32_t  baudRate,
Directions  directions = AllDirections 
)

◆ setBreakEnabled()

bool Piduino::SerialPort::setBreakEnabled ( bool  set = true)

◆ setDataBits()

bool Piduino::SerialPort::setDataBits ( DataBits  dataBits)

◆ setDataTerminalReady()

bool Piduino::SerialPort::setDataTerminalReady ( bool  set)

◆ setDebug()

void Piduino::IoDevice::setDebug ( bool  enabled)
inherited

Enables or disables debug mode for the device.

Parameters
enabledTrue to enable debug mode, false to disable.

◆ setFd()

bool Piduino::FileDevice::setFd ( int  fd)
inherited

◆ setFlowControl()

bool Piduino::SerialPort::setFlowControl ( FlowControl  flowControl)

◆ setParity()

bool Piduino::SerialPort::setParity ( Parity  parity)

◆ setPath()

virtual void Piduino::FileDevice::setPath ( const std::string &  path)
virtualinherited

Sets the path of the file. The path can have no prefix, a relative path, or an absolute path.

Do not call this function if the file has already been opened, if so, the file is closed before the path is modified.

If the file name has no path or a relative path, the path used will be the application's current directory path at the time of the open() call.

Note that the directory separator is "/".

See also
path()

◆ setPort()

void Piduino::SerialPort::setPort ( const Info info)

Sets the port stored in the serial port info instance serialPortInfo.

See also
portName(), SerialPort::Info

◆ setPortName()

void Piduino::SerialPort::setPortName ( const std::string &  name)

Sets the name of the serial port.

The name of the serial port.

See also
portName(), SerialPort::Info

◆ setRequestToSend()

bool Piduino::SerialPort::setRequestToSend ( bool  set)

◆ setSettings()

bool Piduino::SerialPort::setSettings ( const Settings settings)

◆ setStopBits()

bool Piduino::SerialPort::setStopBits ( StopBits  stopBits)

◆ setTextModeEnabled()

void Piduino::IoDevice::setTextModeEnabled ( bool  enabled)
inherited

Enables or disables text mode for the device.

Parameters
enabledTrue to enable text mode, false to disable.

◆ settings()

Piduino::SerialPort::settings ( ) const

settings information

See also
SerialPort::Settings

◆ stopBits()

Piduino::SerialPort::stopBits ( ) const

the number of stop bits in a frame

If the setting is successful or set before opening the port, returns true; otherwise returns false and sets an error code which can be obtained by accessing the value of the SerialPort::error property.

Note
If the setting is set before opening the port, the actual serial port setting is done automatically in the @l{FileDevice::open()} method right after that the opening of the port succeeds.

The default value is OneStop, i.e. 1 stop bit.

◆ write() [1/5]

ssize_t Piduino::FileStream::write ( char  c)
inherited

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Writes the character c to the stream. Returns the number of bytes that were actually written, or -1 if an error occurred.

See also
read()

◆ write() [2/5]

virtual ssize_t Piduino::SerialPort::write ( const char *  data,
size_t  maxSize 
)
virtual

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Writes at most maxSize bytes of data from data to the stream. Returns the number of bytes that were actually written, or -1 if an error occurred.

See also
read()

Reimplemented from Piduino::FileStream.

◆ write() [3/5]

virtual ssize_t Piduino::SerialPort::write ( const char *  data,
size_t  maxSize,
bool  endl 
)
virtual

◆ write() [4/5]

ssize_t Piduino::FileStream::write ( const char *  str)
inherited

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Writes data from a zero-terminated string of 8-bit characters to the stream. Returns the number of bytes that were actually written, or -1 if an error occurred.

See also
read()

◆ write() [5/5]

ssize_t Piduino::FileStream::write ( const std::string &  str)
inherited

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Writes the content of string to the stream. Returns the number of bytes that were actually written, or -1 if an error occurred.

See also
read()

Member Data Documentation

◆ d_ptr

std::unique_ptr<Private> Piduino::IoDevice::d_ptr
protectedinherited

Pointer to the private implementation.

Definition at line 190 of file iodevice.h.