找回密码
 立即注册

微信扫码登录

查看: 340|回复: 2

关于休眠后的定时唤醒

[复制链接]

5

主题

1

回帖

27

积分

新手上路

积分
27
发表于 2024-9-4 14:22:52 | 显示全部楼层 |阅读模式
想问一下,SDK里的ota_queryStart()和zb_setPollRate()启用之后能主动取消吗,因为想降低待机功耗,当终端设备检测到父节点丢失,然后重连一定次数仍然未成功就直接进入深度休眠,等待手动按键唤醒再恢复网络,但是调试的时候发现设备已经不在网络中了但还有定时任务一直在跑,打印了一下定时唤醒时间,好像就是ota_queryStart()和zb_setPollRate(),所以一直没法进入深度休眠。

27

主题

91

回帖

373

积分

版主

积分
373
发表于 2024-9-4 18:19:12 | 显示全部楼层
你可以在ev_timer_executeCB()函数中,将timerEvt->cb的函数指针打印出来,对照固件所在目录下的.lst文件找到对应的函数名,以此可以确定是哪个定时任务触发的唤醒。

关于zb_setPollRate(),
当丢失父节点,产生BDB_COMMISSION_STA_PARENT_LOST事件的时候,底层会停止这个定时任务,只要不主动调用并传参非0的值,就不会启动。

关于ota_queryStart(),
可以关闭主动OTA查询的功能(把zb_appCb.c中的所有ota_queryStart调用都注释掉),由网关推送触发OTA升级。

另外,如果数据量不大的话,可以将AUTO_QUICK_DATA_POLL_ENABLE设置为FALSE,减少数据通讯时的主动poll次数,来降低功耗。

5

主题

1

回帖

27

积分

新手上路

积分
27
 楼主| 发表于 2024-9-4 18:33:00 | 显示全部楼层
TL_YB 发表于 2024-9-4 18:19
你可以在ev_timer_executeCB()函数中,将timerEvt->cb的函数指针打印出来,对照固件所在目录下的.lst文件找 ...

好的,感谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 )

GMT+8, 2024-10-30 11:19 , Processed in 0.103114 second(s), 19 queries .

Powered by Telink 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

快速回复 返回顶部 返回列表