我有一个以数据包形式发送串行数据的设备。每个数据包由一个串行中断分开(串行线路上的低电平,持续时间超过一个字符)。
如何使用boost::asio::serial_port
检测休息?有一个send_break()
函数,但我找不到有关接收休息的信息。
如果我手动设置PARMRK
标志并使用IGNBRK
清除BRKINT
中的c_iflag
和tcsetattr
标志,则Linux串行驱动程序会将转换为我能检测到的0xff 0x00 0x00
序列。但是,数据也可能包含此序列,因此不太理想。
是否有更好的方法可以使用boost::asio::serial_port
检测串行中断?