请问大家有个紧急按钮,低功耗的。
原本 zstack 最新版本提供了
断网后===》寻网一段时间 rejoin scan ===》 休眠 一段时间 rejoin backoff===》再次寻网一段时间 这样的循环机制
但是我在进入rejoin backoff 时候 屏蔽了定时器
// ZDApp_StartJoiningCycle();
// osal_start_timerEx( ZDAppTaskID, ZDO_REJOIN_BACKOFF, zgDefaultRejoinScan );
将这个机制打破。不让它 继续循环 。取而替之 后面 用 按一下按钮 ,调用一次
NLME_NetworkDiscoveryRequest()
发一个beacon request 去尝试入网。
经多次测试,百分百复现:
紧急按钮入网, 接着第一次断网后,会按着rejoin scan 的时候寻网,时间到了进入 rejoin backoff ,然后进入rejoin backoff 后 因屏蔽了定时器 不再寻网。
这前面一段 都是正常的。
接着,我通过按一下按键 发一个 beacon request的方法 入网。
入网后,将协调器断电, 让紧急按钮再次 断网。
断网后,紧急按钮发了一个orphan 之后 接着发一个beacon request, 然后就没再发 beacon request了,
但是它却仍处于寻网的状态。 等到rejoin scan 时间一到再次进入rejoin back 的休眠
为什么在rejoin scan 阶段它只发一个beacon request 之后就不再发了呢???? 不知道哪里出错了~~~~