Asynchronous serial class w/ buffer Asynchronous serial class that sends data to buffer after reading it from the port.
More...
#include <BufferedAsyncSerial.h>
|
| BufferedAsyncSerial () |
|
| BufferedAsyncSerial (const std::string &devname, unsigned int baud_rate, boost::asio::serial_port_base::parity opt_parity=boost::asio::serial_port_base::parity(boost::asio::serial_port_base::parity::none), boost::asio::serial_port_base::character_size opt_csize=boost::asio::serial_port_base::character_size(8), boost::asio::serial_port_base::flow_control opt_flow=boost::asio::serial_port_base::flow_control(boost::asio::serial_port_base::flow_control::none), boost::asio::serial_port_base::stop_bits opt_stop=boost::asio::serial_port_base::stop_bits(boost::asio::serial_port_base::stop_bits::one)) |
|
size_t | read (char *data, size_t size) |
|
std::vector< char > | read () |
|
std::string | readString () |
|
std::string | readStringUntil (const std::string delim="\n") |
|
virtual | ~BufferedAsyncSerial () |
|
| AsyncSerial () |
|
| AsyncSerial (const std::string &devname, unsigned int baud_rate, boost::asio::serial_port_base::parity opt_parity=boost::asio::serial_port_base::parity(boost::asio::serial_port_base::parity::none), boost::asio::serial_port_base::character_size opt_csize=boost::asio::serial_port_base::character_size(8), boost::asio::serial_port_base::flow_control opt_flow=boost::asio::serial_port_base::flow_control(boost::asio::serial_port_base::flow_control::none), boost::asio::serial_port_base::stop_bits opt_stop=boost::asio::serial_port_base::stop_bits(boost::asio::serial_port_base::stop_bits::one)) |
|
void | close () |
|
bool | errorStatus () const |
|
bool | isOpen () const |
|
void | open (const std::string &devname, unsigned int baud_rate, boost::asio::serial_port_base::parity opt_parity=boost::asio::serial_port_base::parity(boost::asio::serial_port_base::parity::none), boost::asio::serial_port_base::character_size opt_csize=boost::asio::serial_port_base::character_size(8), boost::asio::serial_port_base::flow_control opt_flow=boost::asio::serial_port_base::flow_control(boost::asio::serial_port_base::flow_control::none), boost::asio::serial_port_base::stop_bits opt_stop=boost::asio::serial_port_base::stop_bits(boost::asio::serial_port_base::stop_bits::one)) |
|
void | write (const char *data, size_t size) |
|
void | write (const std::vector< char > &data) |
|
void | writeString (const std::string &s) |
|
virtual | ~AsyncSerial () |
|
|
static std::vector< char >
::iterator | findStringInVector (std::vector< char > &v, const std::string &s) |
|
Asynchronous serial class w/ buffer Asynchronous serial class that sends data to buffer after reading it from the port.
Definition at line 53 of file BufferedAsyncSerial.h.
BufferedAsyncSerial::BufferedAsyncSerial |
( |
| ) |
|
|
inline |
BufferedAsyncSerial::BufferedAsyncSerial |
( |
const std::string & |
devname, |
|
|
unsigned int |
baud_rate, |
|
|
boost::asio::serial_port_base::parity |
opt_parity = boost::asio::serial_port_base::parity ( boost::asio::serial_port_base::parity:: none ) , |
|
|
boost::asio::serial_port_base::character_size |
opt_csize = boost::asio::serial_port_base::character_size ( 8 ) , |
|
|
boost::asio::serial_port_base::flow_control |
opt_flow = boost::asio::serial_port_base::flow_control ( boost::asio::serial_port_base::flow_control:: none ) , |
|
|
boost::asio::serial_port_base::stop_bits |
opt_stop = boost::asio::serial_port_base::stop_bits ( boost::asio::serial_port_base::stop_bits:: one ) |
|
) |
| |
|
inline |
Opens a serial device.
- Parameters
-
devname | serial device name, example "/dev/ttyS0" or "COM1" |
baud_rate | serial baud rate |
opt_parity | serial parity, default none |
opt_csize | serial character size, default 8bit |
opt_flow | serial flow control, default none |
opt_stop | serial stop bits, default 1 |
- Exceptions
-
boost::system::system_error | if cannot open the serial device |
Definition at line 73 of file BufferedAsyncSerial.h.
virtual BufferedAsyncSerial::~BufferedAsyncSerial |
( |
| ) |
|
|
inlinevirtual |
static std::vector< char >::iterator BufferedAsyncSerial::findStringInVector |
( |
std::vector< char > & |
v, |
|
|
const std::string & |
s |
|
) |
| |
|
inlinestaticprivate |
Finds a substring in a vector of char. Used to look for the delimiter.
- Parameters
-
v | vector where to find the string |
s | string to find |
- Returns
- the beginning of the place in the vector where the first occurrence of the string is, or v.end() if the string was not found
Definition at line 183 of file BufferedAsyncSerial.h.
size_t BufferedAsyncSerial::read |
( |
char * |
data, |
|
|
size_t |
size |
|
) |
| |
|
inline |
Read some data asynchronously. Returns immediately.
- Parameters
-
data | array of char to be read through the serial device |
size | array size |
- Returns
- numbr of character actually read 0<=return<=size
Definition at line 96 of file BufferedAsyncSerial.h.
std::vector< char > BufferedAsyncSerial::read |
( |
| ) |
|
|
inline |
Read all available data asynchronously. Returns immediately.
- Returns
- the receive buffer. It iempty if no data is available
Definition at line 112 of file BufferedAsyncSerial.h.
void BufferedAsyncSerial::readCallback |
( |
const char * |
data, |
|
|
size_t |
len |
|
) |
| |
|
inlineprivate |
std::string BufferedAsyncSerial::readString |
( |
| ) |
|
|
inline |
Read a string asynchronously. Returns immediately. Can only be used if the user is sure that the serial device will not send binary data. For binary data read, use read() The returned string is empty if no data has arrived
- Returns
- a string with the received data.
Definition at line 128 of file BufferedAsyncSerial.h.
std::string BufferedAsyncSerial::readStringUntil |
( |
const std::string |
delim = "\n" | ) |
|
|
inline |
Read a line asynchronously. Returns immediately. Can only be used if the user is sure that the serial device will not send binary data. For binary data read, use read() The returned string is empty if the line delimiter has not yet arrived.
- Parameters
-
delimiter | line delimiter, default='
' |
- Returns
- a string with the received data. The delimiter is removed from the string.
Definition at line 146 of file BufferedAsyncSerial.h.
std::vector< char > BufferedAsyncSerial::readQueue |
|
private |
boost::mutex BufferedAsyncSerial::readQueueMutex |
|
private |
The documentation for this class was generated from the following file: