串行端口
Asio同时也支持串行端口模块。我们用如下代码开启串行端口:
serial_port port(my_io_service, name);
在Windows上它叫“COM1”,在POSIX中叫“/dev/ttyS0”。
一旦打开后,串行端口会以流的形式被使用,这意味着 read(),async_read(),write(),async_write(),read_until()或者async_read_until()等自由函数能够实现读写操作。
串行端口的实现中同时也有具体的类来控制端口的baud rate,flow control type,parity,stop bits和character size。
参见
serial_port, serial_port_base, basic_serial_port, serial_port_service, 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平台上,只有在编译时后台开放了IO端口才行(这是默认配置)。程序中可以使用ASIO_HAS_SERIAL_PORT来测试其是否可用。