Ticket #10496: main.cpp

File main.cpp, 1.2 KB (added by Christopher Moore <crmoore@…>, 8 years ago)

Simple sample that demonstrates the problem.

Line 
1
2#include <iostream>
3#include <boost/asio/serial_port.hpp>
4
5int main(){
6
7 boost::asio::io_service io_service;
8 boost::asio::serial_port serial(io_service);
9
10 // silab CP210x: /dev/tty.SLAB...
11
12 // prolific pl2303:
13 //serial.open("/dev/tty.NoZAP-PL2303-00005014");
14 //serial.open("/dev/cu.NoZAP-PL2303-00005014");
15
16 // pty: socat - PTY,link=$HOME/ttyv,raw,echo=0
17 serial.open("/Users/cmoore/ttyv");
18
19 serial.set_option(boost::asio::serial_port_base::baud_rate{115200});
20 serial.set_option(boost::asio::serial_port_base::character_size{8});
21 serial.set_option(boost::asio::serial_port_base::stop_bits{boost::asio::serial_port_base::stop_bits::one});
22 serial.set_option(boost::asio::serial_port_base::parity{boost::asio::serial_port_base::parity::none});
23 serial.set_option(boost::asio::serial_port_base::flow_control{boost::asio::serial_port_base::flow_control::none});
24
25 const size_t length = 1024;
26 char data[length];
27 serial.async_read_some(boost::asio::buffer(data, length),
28 [&](const boost::system::error_code& ec, size_t bytes){
29 if(!ec){
30 std::cout << std::string(data,bytes) << "\n";
31 }else{
32 std::cerr<<"read error: " << ec << "\n";
33 }
34 });
35
36 io_service.run();
37}