打印

ti的cc1100e无线模块,发送大于255字节的数据包

[复制链接]
1584|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hwk612167|  楼主 | 2012-8-31 10:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RT,有没有什么好办法?以前的协议里最大数据包长度不超过255,所以采用的可变数据包长度模式,同步字后面跟着的一字节数据就是数据包长度。
现在因为需要改进,数据包长度可能大于255(大于255,需要采用无限长度模式),为兼容以前的协议的情况下,有什么好的办法处理?

我觉得难点在于,接收方不知道要收的数据包长度是否大于255,又要兼容以前的协议,所以在接收时什么时候采用可变数据包长度模式接收,什么时候该采用无线长度数据包模式??
我想到的办法有:
第一种:拆成多个包,每包数据长度不超过255,包里还有总的包数及当前包数。(这种方式,接收方是每收到一个包应答一下,通知接收方发送下一个包?还是等收到全部的数据包后,再应答呢?
因以前的协议里不含有总包数和当前包数一说,所以通过命令码区别来解码。
(第一种方法就没有采用CC1100E手册里讲到的采用无限长度数据包模式)

第二种:发送方在知道将要发送的数据包长度超过255字节时,先发送一个通知指令数据包,且包里含有将要发送的数据包总长度,接收方收到通知指令后,开启无限长度接收模式。。。。。(接下来按照手册中说的做)

不知道采用哪种方法好,或者大家有什么好的办法来处理呢???

相关帖子

沙发
forgot| | 2012-8-31 13:36 | 只看该作者
不懂  友情帮顶

使用特权

评论回复
板凳
airwill| | 2012-8-31 22:48 | 只看该作者
不管使用哪种方法, 上层的协议是肯定要改的了.
事实上, 还有很多灵活的方式
比如, 假设原来的数据包里没有长度为0 的数据包, 那就可以采用 "0长度" 包类型作扩展. (如果长度为0,那么后面两个字节作为数据长度), 这样就不会影响原来的协议和已经生产的早期产品接入新的网络.(条件是找到原来协议里没有使用的类型来扩展)

使用特权

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

本版积分规则

个人签名:前进 前进 前进

20

主题

511

帖子

3

粉丝