This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于ZigBee网络中协调器替换的问题

Other Parts Discussed in Thread: CC2530, Z-STACK

最近遇到一个比较疑惑的问题:

一个ZigBee网络中,里面包含协调器,路由节点,终端节点。如果这个协调器损坏了,现在想要更换一个新的协调器。我在网上看到很多帖子,都是说要将信道,panid,扩展panid这三个进行设置,就可以 用新的协调器替换旧的。下面是我的部分代码:

zb_WriteConfiguration(ZCD_NV_PANID, sizeof(uint16), &panid);

zb_WriteConfiguration(ZCD_NV_EXTENDED_PAN_ID,8,exten_panid); 

_NIB.nwkPanId = u16temp; 

 osal_memcpy(_NIB.extendedPANID,extern_panid,8); 

 _NIB.nwkLogicalChannel = channel;

NLME_UpdateNV(0x01);

 SystemReset();

panid,extern_panid[8],channel这三个分别表示旧的协调器的panid,扩展panid和信道,使用的芯片是CC2530,协议栈版本ZStack-2.5.1a

这样设置之后,协调器自动重启,重启完成后发现,panid并不是我设置的那个panid(旧的协调器已经断电),新的协调器并不能替代旧的。加上打印信息发现,

在协调器重启之前,这三个地方确实被修改成功了,但是重启之后,就发生了变化,这是第一个比较疑惑的地方。

 在发现这样没有办法实现目的之后,我又做了另外一种测试:只设置panid和信道,不再设置扩展panid。这样发现,新的协调器可以替换旧的协调器,但是有时候会出现这样的现象,网络中的其他路由节点,回到网络中的速度比较慢,有时候可能需要几分钟才能回去,这期间都无法通信。这种情况出现的几率不算太高。这是第二个问题。

想请教一下各位,先行感谢!!