【问题标题】:how to make boost::asio::serial_port_base::flow_control use hardware flow control?如何使 boost::asio::serial_port_base::flow_control 使用硬件流控制?
【发布时间】:2015-02-02 09:18:26
【问题描述】:

我想知道如何正确启用 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

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

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

【问题讨论】:

    标签: c++ boost serial-port boost-asio


    【解决方案1】:

    要启用硬件流控制,必须将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__ 配置。

    【讨论】:

      猜你喜欢
      • 2012-12-05
      • 2012-10-12
      • 2017-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      相关资源
      最近更新 更多