TI中文支持网
TI专业的中文技术问题咨询交流网站

cc2530协调器怎么过滤由终端发送过来的校验错误的包

终端节点发送过来的消息,抓包软件显示校验错误,

可是协调器仍然接收到了消息然后进入了AF_INCOMING_MSG_CMD,这样前后两条消息相当于重复了,

怎么才能过滤这条错误消息不让它进入应用层,或者应用层手动去掉它

case AF_INCOMING_MSG_CMD: 
        SampleApp_MessageMSGCB(MSGpkt); 
        break;

Viki Shi:

因为协议栈内部源码无法更改,因此只能在应用层处理。可以在里面加个case,判断CRC,如果无效就丢弃

更正:协议栈中已经实现,只有完整正确的数据包才会进入 AF_INCOMING_MSG_CMD,CRC校验不过不会上报

user6539205:

回复 Viki Shi:

你好,请问我怎么取到这个CRC的值

Viki Shi:

回复 user6539205:

见如上更新。请问你怎么判断AF_INCOMING_MSG_CMD中处理的包是那个CRC错误的包?seq一致吗?

user6539205:

回复 Viki Shi:

消息的载荷消息里面有一个字段是我自定义的seqNum,我把所有接收到的消息通过串口发送到电脑上,电脑上看到了前后两条相同的seqNum的消息

Viki Shi:

回复 user6539205:

修改了APS payload?据我所知TI这部分代码是封装的,恐怕无法提供对修改协议栈,以及因此而造成的问题的支持

user6539205:

回复 Viki Shi:

没有啊,我就是做了应用层的东西。底下的东西我也不会改呀

YiKai Chen:

回复 user6539205:

可以把抓包檔附上來看看嗎?

Viki Shi:

回复 user6539205:

懂了,之前是我理解错了。

从抓包截图看,第一个FCS错误的数据包,并没有收到ACK。你能提供一下完整的抓包数据吗

user6539205:

回复 YiKai Chen:

我重新做了一次,还是出现了向终端发送一次请求,终端重复回复的情况,但是这两次校验没显示错误,我使用的是packet sniffer ,发生异常的位置在 rx2013、rx2014 以及 rx2082、rx2083,怎么让终端不要重复发呢?

问题抓包.psd

user6539205:

回复 Viki Shi:

我重新做了一次,还是出现了向终端发送一次请求,终端重复回复的情况,但是这两次校验没显示错误,我使用的是packet sniffer ,发生异常的位置在 rx2013、rx2014 以及 rx2082、rx2083,怎么让终端不要重复发呢?

4807.问题抓包.psd

赞(0)
未经允许不得转载:TI中文支持网 » cc2530协调器怎么过滤由终端发送过来的校验错误的包
分享到: 更多 (0)