如何使用硬件流控制进行提升::ASIO::serial_port_base::flow_control

how to make boost::asio::serial_port_base::flow_control use hardware flow control?

本文关键字:ASIO serial base control flow port 硬件 何使用 流控制      更新时间:2023-10-16

我想知道如何正确启用 boost::asio::serial_port 上的硬件流控制!现在我尝试在打开端口后设置此选项

serial_.set_option(boost::asio::serial_port_base::flow_control(boost::asio::serial_port_base::flow_control::none));

但是,如果我运行该程序,则会收到一个错误,告诉我:

set_option: Operation not supported on socket

这对我来说并不是一个很有帮助的信息,因为芯片理论上应该支持硬件流控制。

我可能遗漏或做错了什么吗?谢谢!

若要启用硬件流控制,必须对flow_control选项使用 serial_port_base::flow_control::hardware 值:

serial_port.set_option(boost::asio::serial_port::flow_control(
  boost::asio::serial_port::flow_control::hardware));

如果引发不支持该操作的异常,则

    硬件
  • 不支持硬件流控制
  • 虚拟串口不支持硬件流控制
  • Boost.Asio不知道如何为检测到的系统启用硬件流控制。 对于非 Windows/cygwin 配置,此代码段显示仅支持 _BSD_SOURCE__QNXNTO__配置。