首页| 论坛| 消息
主题:QSerialPort超时接收一包数据失败
fxliuqq发表于 2024-04-01 10:12
现在做一上位机与设备通信,由于数据包不是定长的,设备的协议做的也不是很完善,存在错判的问题。现在就想通过超时判断来获取一包数据,数据包长100多,数据包频率50Hz。在子线程中接收数据。发现分三次接收。看接收时间存在当前包最后一次接收与下一包最前接收黏在一起的情况,导致waitForReadyRead(10)失败,setReadBufferSize(1),也不行。有什么办法吗?
回帖(2):
2楼:readyread收数据存自己的缓存,收一次尝试解全部。解不出就丢一个字节继续解,尽可能解。只能帮 ..
1楼:定期高频多次收数据,数据全部缓存,定期低频处理数据,按协议拆包,黏的现象是一定存在的,程序 ..

全部回帖(2)»
最新回帖
收藏本帖
发新帖