求助: 终端节点收不到任何包
项目已经做了大半了,突然发现终端节点收不到包,之前没这个需求,所以没涉及。
POWER_SAVING选项已关闭,polling time都是default设置,加上了-DRFD_RCVC_ALWAYS_ON=TRUE,且每5s就调一次MAC_PwrOnReq()打开MAC电源,结果还是收不到任何数据,从sniffer可以看到,coordinator向终端节点每秒发一次数据,short address正确。
请问是啥情况,这个问题快把我憋死了,实在没招了,请大家帮忙看一下。
抓包能看到终端节点在网内吗?您试一下让终端节点发送数据,看能否成功?您现在的终端节点大约有多少?都不能收到数据包?
其他通信都正常的:coordinator to router,router to coordinator, end device to coordinator, end device to router,都正常。
router to end device,coordinator to end device都不行。
终端节点在网内。
现在就1个end device。
项目是定位,其他功能基本都做完了,因为突然增加了需求,要给 被定位的节点 发数据,才发现这个问题。
我现在的环境就coordinator + 1个end device,两个距离10厘米,所以也不存在距离问题。
这个问题很奇怪
能发出去发不回来?
楼主做的定位是通过rssi的值吗?
还是什么其他的思路
有没有Debug过,怎么判断没有收到数据呢?
问的也太细了,好吧,我来说一下我是怎么判断没有收到数据的:
1. 单步调试,可以看到case AF_INCOMING_MSG_CMD从来没进过。
2. coordinator发包的时候,调用AF_DataRequest使用了AF_ACK_REQUEST选项,也就是如果end device收到了包,那么我从sniffer上应该能抓到一个ACK frame,现在是抓不到这个ACK。
3. 我代码里,如果end device收到了包,会发送另外一个包出来,这个包也没有发出来。
补充一下,我用的协议栈是2.5.1a版本。
刚又试了一下,coordinator采用广播方式,end device能收到。 但似乎不是每次都收到,似乎是广播三次收到一次,我再仔细分析一下吧。
问题似乎没了,折腾半天广播方式,最后改回原先的,竟然行了!?
断电重启了几次,第一次断电还是不行,后面又试了几次,复现不了了,先这样吧。
谢谢各位的积极帮忙。