The following example shows how to initialize a boost::asio serial_port
, set its baud rate, parity & stop bits and then read data from it in a loop, printing the data to stdout as-is.
#include <boost/asio.hpp> #include <iostream> #define BUFSIZE 256 int main() { boost::asio::io_service io; // Open serial port boost::asio::serial_port serial(io, "/dev/ttyUSB0"); // Configure basic serial port parameters: 115.2kBaud, 8N1 serial.set_option(boost::asio::serial_port_base::baud_rate(115200)); serial.set_option(boost::asio::serial_port_base::character_size(8 /* data bits */)); serial.set_option(boost::asio::serial_port_base::parity(boost::asio::serial_port_base::parity::none)); serial.set_option(boost::asio::serial_port_base::stop_bits(boost::asio::serial_port_base::stop_bits::one)); // Read data in a loop and copy to stdout while(true) { char data[BUFSIZE]; size_t n = serial.read_some(boost::asio::buffer(data, BUFSIZE)); // Write data to stdout std::cout.write(data, n); } }
For a more complete example that also shows how to open the serial port, see How to open & initialize boost::asio::serial_port