芯片:2530
协议栈:mesh1.0.0
问题:低功耗的设备在原父节点掉电之后,更换了另一个父节点,此时该终端设备上发数据至协调器正常,而协调器下发数据仍然使用了原父节点的路径,导致不能下达,请问这该如何解决?请问开启协调器的Many-to-one功能是否能解决?谢谢!
Susan Yang:
Many-to-one:多个节点->Coordinator 的目的是为了让节点能够存储到Coordinator的Routing ( next hop )path,这个path会定期更新,many-to-one router discovery实际上是协调器连续广播三次Router Request,并且Coordiantor定期发送many-to-one router discovery维护路由关系,也就是广播路由方式,其他路由节点收到后也会广播这个Router Request。
广播路由是发送给网络中其他所有设备(可选择只发给路由设备或者发给路由和终端设备)的消息,但是广播对于睡眠终端设备来说是不可靠的,会降低网络性能。 您现在设备的父节点是路由节点还是协调器?
Viki Shi:
协调器发送 Route Discovery更新一下路径
user6069081:
回复 Susan Yang:
原父节点和新父节点都是路由设备的
user6069081:
回复 Viki Shi:
请问这个 Route Discovery是刷新协调器内的节点路径吗?如果开启了这个功能是否可以解决我描述的问题呢?谢谢
Susan Yang:
回复 user6069081:
协调器通过发起many-to-one路由请求(也就是广播路由发现请求),来创建普通节点到集中节点的路径。路径损耗的计算及转播与普通路由请求一样,但是many-to-one路由请求没有路由应答(Router reply),每个收到多对一路由的节点,都将收到的最优路径存储到路由表中并标记为many-to-one路径,目标地址为协调器,下一跳为路径最优的发送者。
您可以参考一下 blog.csdn.net/…/92075638
YiKai Chen:
這個問題Zigbee 3.0透過Child aging來解決,建議你使用Z-Stack 3.0.2
user6069081:
回复 YiKai Chen:
我们仍然需要维护使用了mesh协议栈的设备。
user6069081:
回复 YiKai Chen:
你好,我按照所给的文档开启了协调器的 many-to-one 功能,但结果并没有达到预期,仍然有上述所说的情况出现。如抓包文件,终端地址为0xFF23的现父节点为0x9E9D,上报信息能正常到达(见676以及678),但由协调器下发的消息不能正常到达0xFF23(见861的nwk header),请问这是什么原因?谢谢!2020年1月17日16_03_15.rar
user6069081:
回复 Susan Yang:
你好,我开启了many-to-one功能后,有一个节点的父设备路径出现了错误,addr为0xFF23,在96行以及277,请问有什么办法可以修改此现象,谢谢!
user6069081:
回复 user6069081:
2020年1月17日18_02_02.rar