电源管理
概述
将基于 PSDK 开发的负载设备安装在无人机的云台上后,负载设备通过功率申请能获得较高的功率。因此,使用高功率的负载设备必须同时支持使用低功率;为防止负载设备未执行关机准备而丢失数据或意外损毁,PSDK 还提供了下发关机通知的功能。
使用电源管理功能
1. 引脚控制高功率
若负载设备使用 P-Port 接入无人机,并需要高功率供电才可正常工作,可以在负载完成注册后,控制 A8(SBU2) 脚为低电平,使无人机输出高功率。详见无人机硬件接口。
2. 申请高功率
若负载设备使用 P-Port Lite 接口接入无人机,并需要高功率供电才可正常工作,可以在负载完成注册后,调用 UAV_PowerManagement_ApplyHighPowerSync()
接口申请高功率。详见电源管理接口。
注意:
- 当前版本使用网络通信方式时无法申请高功率模式。
使用关机通知功能
无人机下发关机通知的流程如下所示:
- 当无人机获取到用户发送的关机通知时,无人机将向使用 PSDK 开发的负载设备发送关机通知。
- 当负载设备接收到无人机发送的关机通知后,负载设备将完成关机前需执行的操作,并更改关机准备状态。
- 当无人机获取到所有负载设备关机准备的状态后,将会立即关机。
注意:
- 无人机在接收到关机通知的一段时间后,将会强制关机,具体强制关机的时间请参见对应型号的产品规格说明书。
1. 构造关机状态回调函数
开发者开发出负载设备执行关机准备的功能后,需要将负载设备执行关机准备功能的函数注册到指定的接口中。
static T_UAVReturnCode UAV_PowerManagement_PowerOffNotificationCallback(bool *powerOffPreparationFlag)
{
// 负载设备执行关机准备的功能
// ...
// 设置关机准备状态
*powerOffPreparationFlag = true;
return UAV_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
2. 注册关机回调函数
注册负载设备关机准备功能的函数后,负载设备在接收到关机通知后,将执行关机准备动作,并更改负载设备的关机准备状态:
returnCode = UAV_PowerManagement_PowerOffNotificationCallback(UAVPowerManagement_PowerOffNotificationCallback cb);
if(UAV_ERROR_SYSTEM_MODULE_CODE_SUCCESS != returnCode) {
LOG_INFO("register power off notification callback failed");
return returnCode;
}
3. 订阅关机通知
负载也可以主动订阅无人机的关机动作与关机通知,以便在无人机关机时,负载设备能够及时执行关机准备操作。详见数据订阅。
static void UAV_PowerManagement_SubscribePowerOffHandler(void *data)
{
// 处理无人机关机的消息
}
if(UAV_ERROR_SYSTEM_MODULE_CODE_SUCCESS != UAV_Subscribe_Topic(UAV_SUBSCRIPTION_TOPIC_UAV_POWER_OFF, UAV_DATA_SUBSCRIPTION_TOPIC_20_HZ, UAV_PowerManagement_SubscribePowerOffHandler))
{
LOG_ERROR("UAV_Subscribe_Topic UAV_SUBSCRIPTION_TOPIC_UAV_POWER_OFF failed");
return;
}