我想知道如何正确启用 boost::asio::serial_port 上的硬件流控制! 现在我尝试在使用打开端口后设置此选项
serial_.set_option(boost::asio::serial_port_base::flow_control(boost::asio::serial_port_base::flow_control::none));
但是,如果我运行该程序,我会收到一条错误消息:
set_option:套接字不支持操作
这对我来说不是一个很有帮助的消息,因为理论上该芯片应该支持硬件流控制。
我可能遗漏或做错了什么吗? 谢谢!
最佳答案
要启用硬件流量控制,必须使用 serial_port_base::flow_control::hardware
flow_control
选项的值:
serial_port.set_option(boost::asio::serial_port::flow_control(
boost::asio::serial_port::flow_control::hardware));
如果引发不支持该操作的异常,则:
- 硬件不支持硬件流控制
- 虚拟串口不支持硬件流控
- Boost.Asio 不知道如何为检测到的系统启用硬件流控制。对于非 Windows/cygwin 配置,此 snippet显示仅支持
_BSD_SOURCE
和__QNXNTO__
配置。
关于c++ - 如何使 boost::asio::serial_port_base::flow_control 使用硬件流控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28274367/