终端低功耗状态下,成功入网后,通过Packet Sniffer发现终端没有发送DataRequest,导致无法接收数据,但是终端可以发送数据给协调器。为什么?
Susan Yang:
您现在终端节点的父节点是路由器?
当节点开启了Power Saving功能以后,当终端节点发送完数据以后就会立刻进入休眠状态。所以当你的路由或协调器发数据的也是一样的,在应用层看来数据已经往下发了,但是还是保存在底层的buffer里面。直到终端节点发送data request的时候,再把数据发出去。
建议你可以通过抓包看下,路由有没有把这个数据发出去?
haohan ye:
回复 Susan Yang:
首先,父节点是协调器,就是简单的C+D。
其次,终端是通过devStartMode = MODE_RESUME的方式入网的,即在协调器那里调用了NLME_DirectJoinRequest。
然后,开启了Power Saving功能以后,当终端退出睡眠时并不会发送DataRequest,故无法接收数据。
最后,只有手动发送数据请求才能收到数据。
VV:
回复 haohan ye:
POLL_RATE是不是设置成0了?