通过修改协调器的信道,来修改路由和终端信道

通过修改协调器的信道,来修改路由和终端信道

首先你要知道路由和终端设备在ZigBee网络里面的通信方式是不同的。

1)路由一旦入网以后,可以不依赖于父设备,自己完全可以维持正常的工作,即便协调器切换信道,还是父设备掉电

2)终端设备在入网以后,所有的通信都是依赖于父设备的。终端设备以一定的周期Poll Rate向父设备询问是否有数据需要接收

第一种场景,网络里面只有协调器和终端设备

协调在切换信道以后,终端还是以一定的周期Poll Rate去询问父设备,但是这个时候父设备(协调器)已经在其他信道了,当然收不到数据,所以终端设备会认为自己失去了父设备,而去找新的父设备,在找了若干次以后,会去其他信道找,这个时候就会找到,对应协议栈里面的代码实现如下,这个也是为什么你会看到终端设备也到新的信道上去了。

#if defined ( ZIGBEE_COMMISSIONING ) if (startMode == MODE_REJOIN && scanCnt++ >= 5 ) { // When ApsUseExtendedPanID is commissioned to a non zero value via // application specific means, the device shall conduct an active scan // on the Default Channel list and join the PAN with the same // ExtendedPanID. If the PAN is not found, an scan should be completed // on all channels. // When devices rejoin the network and the PAN is not found from zgDefaultChannelList = MAX_CHANNELS_24GHZ; } #endif // ZIGBEE_COMMISSIONING

第二种场景,网络里面有协调器,路由器,终端设备

按照第一种场景的解释,终端设备在失去父设备以后,会去找新的父设备,那么协调器在切换信道的情况下,但是路由器并没有切过去,因为路由器不知道,他完全可以自己维持工作,那么终端设备如果原先是协调器的子设备,这个时候就可以重新到网络里面的路由作为父设备,这个也是为什么你会看到第二种情况下,终端设备切换信道也不成功了。

所以最后的办法是,你需要通过发命令的方式让路由和终端切换到新的信道上去。

ZDP_MgmtNwkUpdateReq( zAddrType_t *dstAddr, uint32 ChannelMask, uint8 ScanDuration, uint8 ScanCount, uint8 NwkUpdateId, uint16 NwkManagerAddr )

相关推荐

播送的意思
365bet品牌中文网

播送的意思

📅 12-10 👁️ 5686
Win10文件夹图标怎么改回来-Win10文件夹图标恢复默认图标的方法
beat365官方app安卓版下载

Win10文件夹图标怎么改回来-Win10文件夹图标恢复默认图标的方法

📅 10-15 👁️ 1388
正在阅读:超级机器人大战V全SR流程 机战V全52话流程攻略超级机器人大战V全SR流程 机战V全52话流程攻略