Boost.Asio使用Proactor使用单个线程来处理I / O.我用它和套接字,我很喜欢它。我看到有一种方法可以使用Boost.Asio(和底层的Proactor)的io_service和串口(Windows上的COMX设备和Linux上的/ dev / ttyXXX)而不是套接字。事实上,我认为Boost.Asio适用于任何类型的I / O,包括文件句柄等。
我想知道我是否可以直接使用它,开箱即用,适用于SPI或I2C等任何串行设备。这些串行设备在Linux下看起来像/ dev / spi。
例如,我可以像这样使用它:
boost::asio::io_service my_io_service;
boost::asio::serial_port my_spi_serial_port("/dev/spi0", my_io_service);
并且自动化,它就像常规串口(即RS232)一样工作?
或者,如果Boost.Asio不直接支持SPI,那么后者是否提供了一种轻松整合对任何其他设备类型的支持的方法,而无需修改Boost.Asio的核心代码?