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

标签 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:套接字不支持操作

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

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

最佳答案

要启用硬件流量控制,必须使用 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/

相关文章:

c++ - log4cplus:在 Logger::shutdown on Windows 上崩溃

c++ - 根据重复次数对输入文本中的单词进行排序?

c++ - boost karma - 从一个属性生成多个字符串

c++ - 在 C/++ 上的只读共享内存中具有输入图的图算法 (lib)

serial-port - Windows UWP Windows.Devices.SerialCommunication.SerialDevice 不工作

c++ - 重载虚拟方法与非虚拟方法有何不同?

c++ - CMAKE错误项目文件无效;不包含 cmakelists.txt

c++ - 简单的 Zlib C++ 字符串压缩和解压缩

java api通过串口发送文件

qt - Qt中串口连接或断开时如何发出信号?