ZigBee终端设备如何加入不同的协调器
在多个协调器(ZC1/ ZC2)网络中,若一个ZigBee终端设备成功加入一个协调器(ZC1)组建的网络后,不重启Zigbee终端设备,如何让终端从(ZC1)脱离,然后加入(ZC2)中?
请问能否实现?
如果能,怎么利用协议栈实现?
谢谢了!
我用的是cc2530 , 协议栈是ZStack-CC2530-2.5.1a
没见过这种例程,不过可以试着通过软件复位系统的方式进行切换。
您可以尝试以下步骤:
1 使用ZDP_MgmtLeaveReq()函数来让已知短地址的终端退网
2 使用NLME_PermitJoiningRequest(0)禁止节点再次加入该网络
这样节点会搜索其他的协调器入网
这是在协调器上做修改吗? 这样节点是不是就永远不能加入刚刚退出的网络了?
我是想实现下面一个功能:
有两个房间A和B,房间A中有协调器 ZC1 建立的网络 NW1 ,房间B中有协调器 ZC2 建立的网络 NW2 ,终端节点进入房间A时能自动加入 NW1 ,进入房间B时能自动加入 NW2 。
能不能在终端节点上做代码修改来实现?
节点主动离开网络的话,可以使用以下代码
void Meter_Leave(void)
{
NLME_LeaveReq_t leaveReq;
osal_memset((uint8 *)&leaveReq,0,sizeof(NLME_LeaveReq_t));
osal_memcpy(leaveReq.extAddr,NLME_GetExtAddr(),Z_EXTADDR_LEN);
leaveReq.removeChildren = 1;
leaveReq.rejoin = 0;
leaveReq.silent = 0;
NLME_LeaveReq( &leaveReq );
}
使用这个代码,节点主动离开网络后,节点是不是通过协议栈自动搜网加网? 还是要再写代码搜网加网?