z-stack终端节点成为孤儿节点后,如何实现定时休眠和唤醒?
时间:10-02
整理:3721RD
点击:
在做低功耗时,发现z-stack终端节点成为孤儿节点后,不断地发送beacon请求,无法进行定时休眠与唤醒
协议栈使用的这段代码好像时定时进行网络扫描,根本无法使终端节点在没有网络的状态下进入休眠,有木有什么办法让节点脱离网络并且找不到网络之后进入休眠?
if( events & ZDO_REJOIN_BACKOFF )
{
if( devState == DEV_NWK_BACKOFF )
{
ZDApp_ChangeState(DEV_NWK_DISC);
// Restart scan for rejoin
ZDApp_StartJoiningCycle();
osal_start_timerEx( ZDAppTaskID, ZDO_REJOIN_BACKOFF, zgDefaultRejoinScan );
}
else
{
// Rejoin backoff, silent period
ZDApp_ChangeState(DEV_NWK_BACKOFF);
ZDApp_StopJoiningCycle();
osal_start_timerEx( ZDAppTaskID, ZDO_REJOIN_BACKOFF, zgDefaultRejoinBackoff );
}
为什么没法进入休眠?节点在backoff阶段如果不发送beacon request的话,就会进入休眠的。