zigbee 路由表的疑问
协调器0x0000 路由器1(0x72C4) 路由器2(0xBC7B) 终端(0x8EB9)
终端(0x8EB9)的老父节点 路由器1(0x72C4) 和新父节点 路由器2(0xBC7B)
协调器发送数据 给终端(0x8EB9) 发送Route Request 路由器1 (0x175E)和路由器2(0xAECE)都回复了Route Reply
协调器0x0000重启 发送数据给终端
如果是老父节点 路由器1(0x72C4)先回复 Route Reply 导致协调器路径更新为 0x0000->0x175e->0xBEB9 但实际路径是0x0000->0xBEB9->0xBEB9
如果是新父节点 路由器2(0x8EB9)先回复 Route Reply 则发送成功
附上抓包数据
请问出现这种情况我该怎么解决
上面写错一个地方:如果是老父节点 路由器1(0x72C4)先回复 Route Reply 导致协调器路径更新为 0x0000->0x175e->0xBEB9 但实际路径是0x0000->0xAECE->0xBEB9
原因是不是老父设备还认为子设备还在。
你可以看下老父设备中AssociateList里面还有没有这个父设备。
另外子设备在切换新父设备的时候,发出来的device Announce 老的父设备是有收到,你试用哪个版本的协议栈?
原因: 老父设备应为断电原因没有收的device announce ,故仍然认为该子设备存在与自己列表中。
故我协调器重启 发送数据给 终端设备,发现路径route request时,老父节点和新父节点都回复route rely,
如果协调器首先收到老父节点回复route rely 则路径错误。
重点:老父节点 发现这条路径错误 发送Network Status至Coord ,但是Coord没有任何反应 ,也不会更新路径
请问这是什么原因?
抓包数据:第1238包 路由器发送Network Status数据包
协调器使用的是TI cc2530 zha1.2.2.a协议栈 路由器采用marvell芯片具体使用哪个协议栈未知但是 遵循zha1.2标准
顶贴