Skip to main content

电源管理

概述

将基于 PSDK 开发的负载设备安装在无人机的云台上后,负载设备通过功率申请能获得较高的功率。因此,使用高功率的负载设备必须同时支持使用低功率;为防止负载设备未执行关机准备而丢失数据或意外损毁,PSDK 还提供了下发关机通知的功能。

使用电源管理功能

1. 引脚控制高功率

若负载设备使用 P-Port 接入无人机,并需要高功率供电才可正常工作,可以在负载完成注册后,控制 A8(SBU2) 脚为低电平,使无人机输出高功率。详见无人机硬件接口

2. 申请高功率

若负载设备使用 P-Port Lite 接口接入无人机,并需要高功率供电才可正常工作,可以在负载完成注册后,调用 UAV_PowerManagement_ApplyHighPowerSync() 接口申请高功率。详见电源管理接口

注意:

  • 当前版本使用网络通信方式时无法申请高功率模式。

使用关机通知功能

无人机下发关机通知的流程如下所示:

  1. 当无人机获取到用户发送的关机通知时,无人机将向使用 PSDK 开发的负载设备发送关机通知。
  2. 当负载设备接收到无人机发送的关机通知后,负载设备将完成关机前需执行的操作,并更改关机准备状态。
  3. 当无人机获取到所有负载设备关机准备的状态后,将会立即关机。

    注意:

    • 无人机在接收到关机通知的一段时间后,将会强制关机,具体强制关机的时间请参见对应型号的产品规格说明书。

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;
}