TI中文支持网
TI专业的中文技术问题搜集分享网站

zigbee3.0(Z-Stack 3.0.2)入网和退网求助

在z-stack-3.0.2,
终端使用以下函数退网
     NLME_LeaveReq_t leaveReq;
     // Set every field to 0
     osal_memset( &leaveReq, 0, sizeof( NLME_LeaveReq_t ) );
     leaveReq.removeChildren = 1;
     leaveReq.rejoin = 1;
     leaveReq.extAddr=NULL;
     leaveReq.silent = FALSE;        

     // Leave the network, and reset afterwards
     NLME_LeaveReq( &leaveReq );                                  
     if ( NLME_LeaveReq( &leaveReq ) != ZSuccess )
     {
       // Couldn't send out leave; prepare to reset anyway
       ZDApp_LeaveReset( FALSE );
     } 
当                           leaveReq.rejoin = 1;时不能进入其他协调器的网络,                          leaveReq.rejoin = 0时不能进入原来协调器的网络
协调器是用  以下函数进行建网的
bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_FINDING_BINDING);
  NLME_PermitJoiningRequest(0xff);

终端是用以下函数入网
bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING);

有什么方法既可以进入其他协调器的网络,又可以进入原来协调器的网络,应怎么配置?

gaoyang9992006:

leaveReq.rejoin=0;//1表示能再次入网,0需要协调器断电复位后才能重入

gaoyang9992006:

回复 gaoyang9992006:

有网友给出的解释是:
一般情况下,离网后是要重启的,如果不愿意重启,可以改,方法是离网时有个osal_set_event()函数设置了重启事件,把这个事件取消就可以了。

user6216905:

回复 gaoyang9992006:

有没有方法协调器不复位也重新进入

user6216905:

回复 gaoyang9992006:

这个怎么取消,流程大概怎么

Viki Shi:

回复 user6216905:

leaveReq.rejoin 是代表rejoin,如果为1则会rejoin原来的网络,leaveReq.rejoin = 0相当于彻底离网,可以重启作为新设备入网

取消重启请看这边:e2echina.ti.com/…/487006

YiKai Chen:

你應該要取消NV_RESTORE然後要进入其他协调器的网络前需要协调器断电复位后調用 bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING)入网,但是前提是你要入网的协调器permit join在當下是打開的

user6216905:

回复 Viki Shi:

leaveReq.rejoin = 0时,退网重启后,不能进入原来的协调器,但协调器重启,就可以进网,但不想协调器重启。该怎么配置

user6069081:

回复 user6216905:

协调器permit join

赞(0)
未经允许不得转载:TI中文支持网 » zigbee3.0(Z-Stack 3.0.2)入网和退网求助
分享到: 更多 (0)