在协调器完成网络组建之后,再为一个路由器通电(假设该路由器的ZDAPP_CONFIG_PAN_ID被配置为0x1235),在这种情况下,该路由器只能加入到PAN ID为0x1235的网络中。即使该网络中只存在PAN ID为0x1234的A网络的设备,该路由器也不会加入到A网络中,它将一直处于网络搜寻状态,直到找到PAN ID为0x1235的路由设备并加入到该网络中。
若网络B中有PAN ID为0x1235的一个路由器和一个协调器,它们肯定可以直接通信。如果把协调器关闭再打开(复位),等协调器再次组建好网络之后却发现路由器不能和协调器通信了,这是因为协调器再次上电之后还是要组建网络的,当它搜寻周围网络环境发现了PAN ID为0x1235的路由器,它意识到存在PAN ID为0x1235的网络,它将不会使用0x1235作为PAN ID,很可能它组建了PAN ID为0x1236的新网络C,因此它也就不能和PAN ID为0x1235的路由器通信了。
终端设备情况类似。所以组网时应先让协调器工作起来,再让终端设备运行。
wojiaomt 发表于 2020-4-2 09:41 在协调器完成网络组建之后,再为一个路由器通电(假设该路由器的ZDAPP_CONFIG_PAN_ID ...
你好,首先感谢你的回答。
那想你这样说的话,如果协调器掉电重启后,所有终端节点都必须重启一下么?
我现在网络中加入一个路由设备,同样开启NV功能,协调器掉电重启后,路由节点是不会受到影响的,终端节点也无法入网,这种情况是什么原因?
理论上来说,协调器的主要角色是负责建立和配置网络,而不是加入某个已存在的网络。由于Zigbee网络本身的分布特性,一旦Zigbee网络建立完成后,整个网络的操作就不再依赖协调器是否存在,与普通的路由器没有什么区别。协调器首先负责建立一个新的网络,一旦网络建立后,该设备的作用就是一个路由器,所以协调器有双重功能。
路由器的作用是允许其他设备加入网络、多跳路由、协助子终端设备通信。一般情况,路由器需要一直处于工作状态,必须使用电力电源供电,但是当使用树型网络拓扑结构时,允许路由器间隔一定的周期操作一次。
不用太纠结为什么,不然就要具体分析代码。知道这种现象,规避处理就好。
引用: wojiaomt 发表于 2020-4-3 10:53 理论上来说,协调器的主要角色是负责建立和配置网络,而不是加入某个已存在的网络。由于Zigbee网络本身的分 ...
好的,非常感谢!