数据包长度可能大于255

2019-07-27 16:58发布

RT,有没有什么好的办法?以前的协议里最大数据包长度不超过255,所以采用的是可变数据包长度模式,同步字后面跟着的一字节数据就是数据包长度。
现在因为需要改进,数据包长度可能大于255(大于255,需要采用无限长度模式),为兼容以前的协议的情况下,有什么好的办法处理?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
houcs
1楼-- · 2019-07-27 19:09
这个片子自动加长度和CRC保证接收到的正确性
liuzaiy
2楼-- · 2019-07-27 22:54
是的,按照楼主说法,你可以自己另加包头包尾和校验了,保证数据包长度大于255时正确接收,自己加个CRC16
栩栩如生
3楼-- · 2019-07-28 01:58
我觉得难点在于,接收方不知道要收的数据包长度是否大于255,又要兼容以前的协议,所以在接收时什么时候采用可变数据包长度模式接收,什么时候该采用无线长度数据包模式??
栩栩如生
4楼-- · 2019-07-28 04:02

我想到的办法有:
第一种:分包,拆成多个包,每包数据长度不超过255,包里还有总的包数及当前包数,接收所有包后处理。
因以前的协议里不含有总包数和当前包数一说,所以通过命令码区别来解码。
(第一种方法就没有采用CC1100E手册里讲到的采用无限长度数据包模式)
栩栩如生
5楼-- · 2019-07-28 07:34
 精彩回答 2  元偷偷看……
yinxiangh
6楼-- · 2019-07-28 10:54
可以搞一个字来标记,区别数据包长度的不同,然后接收程序里校验处理数据

一周热门 更多>