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

NLME_LeaveReq在Assoc Cnf fail状态调用,无法重启

我的终端是用电池且可移动的,由于移动范围较大,我想只设置两个协调器A和B,不设置路由节点,想让节点从协调器A掉线后,主动离开网络,并尝试重新加入协调器A/B

现在我的终端在网内调用NLME_LeaveReq(rejoin=1)可以成功离开网络并进入重启流程

1、如果设备已经和父节点失去连接,在Assoc  Cnf fail(DEV_INIT或者DEV_NWK_DISC)状态调用NLME_LeaveReq,设备好像无法进入重启流程,这是什么原因啊

2、如果我在掉线后主动离开网络成功,再加入网络,协调器是否能感知我已退出网络

Alvin Chen:

首先如果你想加入B ,你要擦除NV。重新加入A是自动的,如果你想加入B,就要在直接Leave rejoin=0,也就是直接擦除NV作为一个新设备去扫描A和B。

如果你的节点lost parent 会在zclSampleSw_ProcessCommissioningStatus里面处理: 

case BDB_COMMISSIONING_PARENT_LOST: if(bdbCommissioningModeMsg->bdbCommissioningStatus == BDB_COMMISSIONING_NETWORK_RESTORED) { //We did recover from losing parent } else { //Parent not found, attempt to rejoin again after a fixed delay Timer_setTimeout( EndDeviceRejoinClkHandle, SAMPLEAPP_END_DEVICE_REJOIN_DELAY ); Timer_start(&EndDeviceRejoinClkStruct); } break;

YiKai Chen:

想让节点从协调器A掉线后,主动离开网络,并尝试重新加入协调器A/B

這樣的話协调器A和B就必須一直處於使能permit join的狀態,理當协调器不該一直處於使能permit join的狀態

赞(0)
未经允许不得转载:TI中文支持网 » NLME_LeaveReq在Assoc Cnf fail状态调用,无法重启
分享到: 更多 (0)