如题。我的应用中在发送或接收数据包的的时候是提前不知道长度的,使用一个队列指针(dataQueue)来作为数据缓冲区,如例程rfEasyLinkNp中所示。
例程中的数据长度就是根据数据内容中的第一个字节来制定的,这是因为发送的格式就是这样的,但在我的应用中数据内容是不包含数据长度的,那我如何确定RF core到底接收了多少字节的数据呢?
有没有人能指点下?谢谢
Albin Zhang:
长度是定值还是变化的啊?
Summery:
回复 Albin Zhang:
谢谢!终于等到有人回复,泪目……>_-………
1.长度是变化的, 并且未知, 数据包中是不包括长度这一项的(貌似所有例程设置都是将长度作为数据包内容中的第一个字节),针对这种情况怎么办?
2. 目前所有例程的接收数据包 一包数据最大255字节, 如果是大于255的咋整啊? 不是有个RX_ADV(0x3804)命令么,根据文档据说用队列,以及将maxPktLen设置为0就可以实现无限长度接收啊, 但是我使用这条命令并且将最大长度设置为0, 就会接收不到任何数据,这是什么情况?
急需解决接收未知长度且长度大于255的数据包的方法! 请不吝赐教,感谢
Delta:
回复 Summery:
是否可以换个角度看这个问题:
你的数据是哪种类型的数据?是字符串还是HEX或者ASCII?
你的设计中是否必要知道包的长度?有具体用途吗?
设计中使用变长数据包但是又没有规范,说明数据完整性不重要,只要做到不停的处理数据,清缓冲就可以。