首先说一下编译选项
协调器打开了NV_RESTORE RFD_RCVC_ALWAYS_ON=FALSE
路由器没有打开NV_RESTORE RFD_RCVC_ALWAYS_ON=FALSE
终端节点没有打开NV_RESTORE RFD_RCVC_ALWAYS_ON=FALSE POWER_SAVIING=TRUE NWK_AUTO_POLL=TRUE
RESPONSE_POLL_RATE=100 QUEUED_POLL_RATE=100 POLL_RATE=1000
网络内,有3个设备,分别为协调器,路由器和终端,上电之后路由器和终端间隔一定时间向协调器发送数据,此时协调器能分别收到路由器和终端发来的数据包,路由器和终端也能收到协调器返回的响应包。整个网络内看起来数据正常,此时的通过获得设备的父节点短地址发现路由器和终端都直接连在协调器上。
此时,让协调器断电,这个时候,通过观察发现,终端的父节点变成了路由器,而不是之前的协调器,给协调器上电,因为有NV_RESTORE,协调器能顺利加入网络中,路由器和终端也都能给协调器发送信息,但是此时只有路由器能收到协调器返回的响应包,终端节点不能收到协调器发送的响应包。即使设置了NLME_SetPollRate(1000) 也不行,因为此时的网络状态为终端通过路由器连到协调器,所以看起来就像是路由器没有转发数据一样,
请问大家有遇到过这种情况吗?
peng zhao2:
急 请问有谁能解惑一下吗
zhongwei xu1:
回复 peng zhao2:
当然发数据发不到节点中,因为协调器还以为那个离线的节点是它的子节点,所以嘛,通过协调器发数据给那个节点,协调器还等那个节点通过
data request来取数据,但是那个离线的节点现在父节点是路由器,所以嘛,肯定收不到!
peng zhao2:
回复 zhongwei xu1:
您说的有道理 我通过抓包软件发现 协调器 根本就没有发出给端点的响应包出来 那么 端点应该怎样让协调器知道这个端点的父节点已经不是自己而是路由器了呢 望请赐教
peng zhao2:
回复 zhongwei xu1:
看您之前也遇到了这个 问题 请问您是怎么解决的呢