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

ZigBee协调器设备网络断开后,终端设备如何设置休眠一段时间再尝试联网

我使用2.5.1版本的Zstack进行低功耗实验。正常联网时,使用halSleep函数能够进入PM2模式。当协调器断电后,为了减少功耗,在SampleApp_ProcessEvent函数中对网络状态进行了10次判断,仍不能联网时则使用halSleep函数进入休眠。可是从软件调试和测试工作电流中发现完全没有进入休眠模式。请教一下应该怎么配置以达到这种效果:协调器断电后终端设备无法联入网络,在休眠半小时重新尝试连入网络。

YiKai Chen:

可以參考Z-Stack Home 1.2.2a的ZDApp.c中REJOIN_BACKOFF/REJOIN_SCAN的作法

Alvin Chen:

建议你更新SDK到1.22a或者更高的3.0.2上,在新的SDK里面包含了REJOIN_BACKOFF的rejoin事件,你可以通过计算进入几次该时间进行判读添加自己的逻辑。

user5301222:

回复 Alvin Chen:

好的谢谢

user5301222:

回复 YiKai Chen:

好的我学习一下

user5301222:

回复 Alvin Chen:

你好,尝试后发现问题出在能够检测到rejoin事件,但是使用halSleep还是未进休眠状态,请问一下halsleep这个函数的使用需要什么特定条件吗,在应用层中,我收到一条指令是可以正常进入休眠状态的谢谢!

Alvin Chen:

回复 user5301222:

你要关掉REJOIN_BACKOFF的定时器任务才能进入休眠。

YiKai Chen:

回复 user5301222:

如果你使能POWER_SAVING,osal task queue里沒有工作需要執行,設備應該會自動進入休眠,並不需要另外呼叫halsleep这个函数

user5301222:

回复 Alvin Chen:

突然想起来,会不会是因为我设置了一个每隔5秒发送一次数据的timer导致的呢

user5301222:

回复 YiKai Chen:

突然想起来,会不会是因为我设置了一个每隔5秒发送一次数据的timer导致的呢

YiKai Chen:

回复 user5301222:

如果是這樣至少也要休眠5秒

赞(0)
未经允许不得转载:TI中文支持网 » ZigBee协调器设备网络断开后,终端设备如何设置休眠一段时间再尝试联网
分享到: 更多 (0)