如何使boost :: asio :: serial_port_base :: flow_control使用硬件流控制?

时间:2015-02-02 09:18:27

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

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

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

我可能会遗漏或做错吗? 谢谢!

1 个答案:

答案 0 :(得分:2)

要启用硬件流控制,必须使用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配置,此snippet表示仅支持_BSD_SOURCE__QNXNTO__配置。
相关问题