Boost.Asio 包含用于以可移植的方式创建和操作串口的类。例如,可以使用以下方式打开一个串口:
serial_port port(my_io_context, name);
其中 name 在 Windows 上类似 "COM1"
,而在 POSIX 平台上则类似 "/dev/ttyS0"
。
打开后,串口就可以用作一个 流。这意味着这些对象可以与任何 read()、async_read()、write()、async_write()、read_until() 或 async_read_until() 自由函数一起使用。
串口实现还包括用于配置端口的波特率、流控制类型、奇偶校验、停止位和字符大小的选项类。
serial_port, serial_port_base, serial_port_base::baud_rate, serial_port_base::flow_control, serial_port_base::parity, serial_port_base::stop_bits, serial_port_base::character_size。
在所有 POSIX 平台上都支持串口。对于 Windows,只有在编译时使用 I/O 完成端口后端(这是默认设置)时才支持串口。程序可以通过测试宏 BOOST_ASIO_HAS_SERIAL_PORT
来确定它们是否受支持。