#include <SerialReaderWriter.h>
|
| | SerialReaderWriter (BaseLib::SharedObjects *baseLib, std::string device, int32_t baudrate, int32_t flags, bool createLockFile, int32_t readThreadPriority, bool writeOnly=false) |
| | Constructor. More...
|
| |
| virtual | ~SerialReaderWriter () |
| | Destructor. More...
|
| |
| bool | isOpen () |
| |
| std::shared_ptr< FileDescriptor > | fileDescriptor () |
| |
| void | openDevice (bool parity, bool oddParity, bool events=true, CharacterSize characterSize=CharacterSize::Eight, bool twoStopBits=false) |
| | Opens the serial device. More...
|
| |
| void | closeDevice () |
| | Closes the serial device. More...
|
| |
| int32_t | readLine (std::string &data, uint32_t timeout=500000, char splitChar='\n') |
| | SerialReaderWriter can either be used through events (by implementing ISerialReaderWriterEventSink and usage of addEventHandler) or by polling using this method. More...
|
| |
| int32_t | readChar (char &data, uint32_t timeout=500000) |
| | SerialReaderWriter can either be used through events (by implementing ISerialReaderWriterEventSink and usage of addEventHandler) or by polling using this method. More...
|
| |
| void | writeLine (std::string &data) |
| | Writes one line of data. More...
|
| |
| void | writeData (const std::vector< char > &data) |
| | Writes binary data to the serial device. More...
|
| |
| void | writeData (const std::vector< uint8_t > &data) |
| | Writes binary data to the serial device. More...
|
| |
| void | writeChar (char data) |
| | Writes one character to the serial device. More...
|
| |
| | IEventsEx () |
| |
| virtual | ~IEventsEx () |
| |
| virtual PEventHandler | addEventHandler (IEventSinkBase *eventHandler) |
| |
| virtual std::vector< PEventHandler > | addEventHandlers (EventHandlers eventHandlers) |
| |
| virtual void | removeEventHandler (PEventHandler eventHandler) |
| |
| virtual EventHandlers | getEventHandlers () |
| |
§ CharacterSize
| Enumerator |
|---|
| Five | |
| Six | |
| Seven | |
| Eight | |
§ SerialReaderWriter()
| BaseLib::SerialReaderWriter::SerialReaderWriter |
( |
BaseLib::SharedObjects * |
baseLib, |
|
|
std::string |
device, |
|
|
int32_t |
baudrate, |
|
|
int32_t |
flags, |
|
|
bool |
createLockFile, |
|
|
int32_t |
readThreadPriority, |
|
|
bool |
writeOnly = false |
|
) |
| |
Constructor.
- Parameters
-
| baseLib | The base library object. |
| device | The device to use (e. g. "/dev/ttyUSB0") |
| baudrate | The baudrate (e. g. 115200) |
| flags | Flags passed to the C function "open". 0 should be fine for most cases. "O_NDELAY" is always added by the constructor. By default "O_RDWR | O_NOCTTY | O_NDELAY" is used. |
| createLockFile | Dummy parameter for compatibility. |
| readThreadPriority | The priority of the read thread between 0 and 99. Set to -1 to not prioritize the thread. Only relevent when "events" are enabled in "openDevice()". |
| writeOnly | Open the device for writing only. |
§ ~SerialReaderWriter()
| BaseLib::SerialReaderWriter::~SerialReaderWriter |
( |
| ) |
|
|
virtual |
§ closeDevice()
| void BaseLib::SerialReaderWriter::closeDevice |
( |
| ) |
|
Closes the serial device.
§ fileDescriptor()
| std::shared_ptr<FileDescriptor> BaseLib::SerialReaderWriter::fileDescriptor |
( |
| ) |
|
|
inline |
§ isOpen()
| bool BaseLib::SerialReaderWriter::isOpen |
( |
| ) |
|
|
inline |
§ openDevice()
| void BaseLib::SerialReaderWriter::openDevice |
( |
bool |
parity, |
|
|
bool |
oddParity, |
|
|
bool |
events = true, |
|
|
CharacterSize |
characterSize = CharacterSize::Eight, |
|
|
bool |
twoStopBits = false |
|
) |
| |
Opens the serial device.
- Parameters
-
| evenParity | Enable parity checking using an even parity bit. |
| oddParity | Enable parity checking using an odd parity bit. "evenParity" and "oddParity" are mutually exclusive. |
| events | Enable events. This starts a thread which calls "lineReceived()" in a derived class for each received packet. |
| characterSize | Set the character Size. |
| twoStopBits | Enable two stop bits instead of one. |
§ readChar()
| int32_t BaseLib::SerialReaderWriter::readChar |
( |
char & |
data, |
|
|
uint32_t |
timeout = 500000 |
|
) |
| |
SerialReaderWriter can either be used through events (by implementing ISerialReaderWriterEventSink and usage of addEventHandler) or by polling using this method.
- Parameters
-
| data | The variable to write the returned character into. |
| timeout | The maximum amount of time to wait in microseconds before the function returns (default: 500000). |
- Returns
- Returns "0" on success, "1" on timeout or "-1" on error.
§ readLine()
| int32_t BaseLib::SerialReaderWriter::readLine |
( |
std::string & |
data, |
|
|
uint32_t |
timeout = 500000, |
|
|
char |
splitChar = '\n' |
|
) |
| |
SerialReaderWriter can either be used through events (by implementing ISerialReaderWriterEventSink and usage of addEventHandler) or by polling using this method.
- Parameters
-
| data | The variable to write the returned line into. |
| timeout | The maximum amount of time to wait in microseconds before the function returns (default: 500000). |
| splitChar | The character to split at (default: '
') |
- Returns
- Returns "0" on success, "1" on timeout or "-1" on error.
§ readThread()
| void BaseLib::SerialReaderWriter::readThread |
( |
bool |
parity, |
|
|
bool |
oddParity, |
|
|
CharacterSize |
characterSize, |
|
|
bool |
twoStopBits |
|
) |
| |
|
protected |
§ writeChar()
| void BaseLib::SerialReaderWriter::writeChar |
( |
char |
data | ) |
|
Writes one character to the serial device.
- Parameters
-
| data | The (binary) character to write. |
§ writeData() [1/2]
| void BaseLib::SerialReaderWriter::writeData |
( |
const std::vector< char > & |
data | ) |
|
Writes binary data to the serial device.
- Parameters
-
| data | The data to write. It is written as is without any modification. |
§ writeData() [2/2]
| void BaseLib::SerialReaderWriter::writeData |
( |
const std::vector< uint8_t > & |
data | ) |
|
Writes binary data to the serial device.
- Parameters
-
| data | The data to write. It is written as is without any modification. |
§ writeLine()
| void BaseLib::SerialReaderWriter::writeLine |
( |
std::string & |
data | ) |
|
Writes one line of data.
- Parameters
-
| data | The data to write. If data is not terminated by a new line character, it is appended. |
§ _baudrate
| int32_t BaseLib::SerialReaderWriter::_baudrate = 0 |
|
protected |
§ _bl
§ _device
| std::string BaseLib::SerialReaderWriter::_device |
|
protected |
§ _fileDescriptor
| std::shared_ptr<FileDescriptor> BaseLib::SerialReaderWriter::_fileDescriptor |
|
protected |
§ _flags
| int32_t BaseLib::SerialReaderWriter::_flags = 0 |
|
protected |
§ _handles
| int32_t BaseLib::SerialReaderWriter::_handles = 0 |
|
protected |
§ _openDeviceThread
| std::thread BaseLib::SerialReaderWriter::_openDeviceThread |
|
protected |
§ _openDeviceThreadMutex
| std::mutex BaseLib::SerialReaderWriter::_openDeviceThreadMutex |
|
protected |
§ _readThread
| std::thread BaseLib::SerialReaderWriter::_readThread |
|
protected |
§ _readThreadMutex
| std::mutex BaseLib::SerialReaderWriter::_readThreadMutex |
|
protected |
§ _readThreadPriority
| int32_t BaseLib::SerialReaderWriter::_readThreadPriority = 0 |
|
protected |
§ _sendMutex
| std::mutex BaseLib::SerialReaderWriter::_sendMutex |
|
protected |
§ _stopReadThread
| std::atomic_bool BaseLib::SerialReaderWriter::_stopReadThread |
|
protected |
§ _termios
| struct termios BaseLib::SerialReaderWriter::_termios |
|
protected |
§ _writeOnly
| bool BaseLib::SerialReaderWriter::_writeOnly = false |
|
protected |
The documentation for this class was generated from the following files: