通过串口来修改协调器的信道,从而去修改网络中所有设备的信道,包括路由和终端。 现在问题是:协调器修改信道成功后,所有终端都能随之切换信道并加入网络。 1。但网络中有路由时候,协调器切换信道后,路由和终端就不能随其切换信道,还在原来的信道中。是不是路由器维持了原来的网络导致终端不能切换信道了? 2。没有路由时候,协调器切换信道后,终端能随之切换并加入网络,是不是终端重新寻找网络的结果,而不是协调器吧修改的信道值通知了终端?
若要是想通过协调器修改信道后,其网络中的所有设备都随之修改信道并加入网络,该怎么弄呢?
修改信道是下面代码吗?好像没有通知其他设备啊
// Components\stack\zdo\ZDNwkMgr.c
if ( events & ZDNWKMGR_CHANNEL_CHANGE_EVT )
{
// Switch channel
_NIB.nwkLogicalChannel = ZDNwkMgr_NewChannel;
ZMacSetReq( ZMacChannel, &ZDNwkMgr_NewChannel );
// Our Channel has been changed -- notify to save info into NV
ZDApp_NwkStateUpdateCB();
// Reset the total transmit count and the transmit failure counters
_NIB.nwkTotalTransmissions = 0;
nwkTransmissionFailures( TRUE );
return ( events ^ ZDNWKMGR_CHANNEL_CHANGE_EVT );
}
|