帧数据解析问题

[复制链接]
801|2
手机看帖
扫描二维码
随时随地手机跟帖
dukedz| | 2018-9-30 16:06 | 显示全部楼层
本帖最后由 dukedz 于 2018-9-30 16:15 编辑

判斷接收到的數據最開頭是否爲幀頭,是的話,按照長度字段去接收整個幀,判斷校驗是否正確。如果接收的數據長度不夠,超時後丟棄。

只要有一個步驟出錯,就清空整個接收緩衝。(譬如 DMA 環形接收,當前已經接收 40 字節,首個幀只占 20 字節,首幀出錯把 40 字節全丟掉)

所以,幾乎不存在誤把數據當作幀頭的情況,就算有,校驗不過當作普通錯誤丟掉即可。

再次強調:出錯清空所有接收緩衝數據。不要逐字節掃描幀頭。

使用特权

评论回复
chunyang| | 2018-9-30 17:17 | 显示全部楼层
那需要从协议的整体去考虑,比如帧头后面数据的定义是否合理,帧长度是否正确,校验有没有通过等。一个编制良好的协议是不会受到“巧合”影响的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

29

帖子

0

粉丝