简介
默认情况下,能力 BatteryCam 值为 "Yes" 之外的设备在sdk内部空闲时会在 TciCB::on_status() 收到 STATUS_IDLE 状态通知。
应用程序可以手动控制这一行为以适应特殊场景,例如:
- 非电池设备也可以进入休眠状态从而实现节能
- 让网络模块进入休眠状态以降低功耗但仅能够远程唤醒
- 临时禁止电池设备休眠
固件实现
- 设置
BatteryCam 能力.
- 调用 TciSetPowerMode(mode) 来切换电源(管理)状态
电源状态
SDK支持以下几种电源状态:
- PM_ALLON
主控正常工作,网络在线,p2p工作
- PM_NETDOWN
网络模块休眠,主控正常工作执行其它事务。进入此状态后sdk会停止p2p, 忽略网络错误, 不会发送 STATUS_IDLE 通知。
网络模块可远程或由设备本地唤醒。唤醒后应用要手动切换到 PM_ALLON 状态。
- PM_SLEEPABLE
sdk空闲时,应用会收到 STATUS_IDLE 通知。然后系统可以进入休眠状态(网络模块休眠,主控下电)。本地或远程唤醒网络和主控后进入默认状态
安全进入PM_NETDOWN模式
固件在关闭或休眠网络前要确认sdk内部的网络操作已经完成。需要按以下步骤:
- 设置
PM_SLEEPABLE 模式.
- 等待
STATUS_IDLE 回调,并返回 -1.
- 设置
PM_NETDOWN 模式.
- 网络模块进入休眠.