【发布时间】:2014-06-26 05:20:34
【问题描述】:
我正在使用 ASIO 通过串行端口读取/写入设备。当我启动我的程序时,我首先需要确保设备配置正确。这是通过initialize_device() 函数中的一系列写入来完成的。在这些调用之后,设备会发回一些不感兴趣的数据。
当initialize_device() 完成后,我调用我的start_receive() 函数,该函数又调用asio::async_read_until(),我的处理程序再次调用start_receive()
然而,问题是在initialize_device() 期间发送给我的不相关数据被我的处理程序“接收”,即使这是在我第一次读取之前接收到的数据。这出乎我的意料。
因此我想知道在initialize_device() 完成后是否有正确的方法来“刷新” asio::serial_port 使用的内部缓冲区?在我明确开始读取端口之前,我对收到的任何数据都不感兴趣。
【问题讨论】:
标签: c++ serial-port boost-asio