跳到主要内容

Power API

#include <latentos/sdk/power/power_client.h>
find_package(latentos_sdk_power CONFIG REQUIRED)
target_link_libraries(my_app PRIVATE latentos::sdk_power)

类:latentos::sdk::power::PowerClient

explicit PowerClient(core::Session& session);

void SubscribeSummary(SummaryCallback callback);
std::optional<PowerSummary> GetLatestSummary() const;
void SubscribeStatus(StatusCallback callback);
std::optional<PowerStatus> GetLatestStatus() const;
void SubscribeBattery(BatteryCallback callback);
std::optional<BatteryStatus> GetLatestBattery() const;
void SubscribeEvent(EventCallback callback);
std::optional<PowerEvent> GetLatestEvent() const;

PowerControlResult SetPowerRail(PowerRail rail, bool on,
PowerControlOptions options = {});
PowerControlResult SetPowerLight(PowerLight light, bool on,
PowerControlOptions options = {});
PowerControlResult SetPowerFanSpeed(PowerFan fan, int percent,
PowerControlOptions options = {});
PowerControlResult ClearPowerFaults(PowerControlOptions options = {});
PowerControlResult QueryPowerVersion(PowerControlOptions options = {});

只读状态

BatteryStatus

SDK 从接入的电池包中选择当前活动包,并提供统一状态。

字段类型说明
okbool数据是否有效
stalebool数据是否过期
presentbool电池包是否接入
pack_indexstd::int32_t电池包编号
soc_percentdouble剩余电量百分比
remaining_capacity_mahdoubleBMS 容量估计,仅供诊断
voltage_v / current_adouble电压 V、电流 A
sample_time_ns / sequence整数采样时间和消息序号
messagestd::string状态说明
power_stateBatteryPowerState整机充放电状态

BatteryPowerStateUnknownChargingDischargingNotChargingFull。使用前同时检查 okpresentstale

PowerSummary

字段组说明
send_time_nssample_time_nssequence时间与消息序号
onlinestalehealth_level在线、时效与综合健康状态
work_allowedmotion_pause_required是否允许工作、是否要求暂停运动
scram_activefault_activefault_summary急停与故障摘要
pack1_connectedpack2_connectedconnected_pack_count电池连接情况
min_soc_percentmin_cell_voltage_vmax_temperature_c关键电池安全指标

PowerHealthLevelUnknownOkWarnFaultStale

PowerStatus

字段组说明
send_time_nssample_time_nssequencestale时间、序号与时效
firmware_versiondebug_enabledPMU 固件与调试状态
scram_activefault_active急停与故障状态
pack1_connectedpack2_connectedconnected_pack_count电池连接情况
pack1_mos_onpack2_mos_on电池 MOS 状态
motor_soft_onmotor_hv_onexternal_48v_on电源轨状态
light1_onlight2_on灯光状态
fault_namefault_descriptionfault_num故障摘要
fault_detail_namefault_detail_description故障明细数组
motor_current_amotor_voltage_v电机母线电流和电压
bat1_5v_vbat1_48v_vbat2_5v_vbat2_48v_v电池电压测量
fan_numfan_rpm风扇数量和转速

PowerEvent

字段说明
send_time_nsevent_time_nssequence时间与序号
event_id事件标识
severityPowerEventSeverity
event_typePowerEventType
message可读事件信息
pack_index相关电池包编号
fault_name / fault_description相关故障信息

事件级别:InfoWarnErrorFatal

事件类型:UnknownScramPressedScramReleasedFaultRaisedFaultClearedBatteryConnectedBatteryDisconnectedStatusStaleStatusRecovered

控制

控制目标

类型枚举值
PowerRailLegsExternal48V1External48V2
PowerLightWhiteInfrared
PowerFanFan1Fan6

SetPowerFanSpeed()percent 范围为 0–100。

PowerControlOptions

字段默认值说明
timeout_ms1000请求超时,ms
forcefalse在 PMU 允许时绕过软联锁;不能绕过硬件安全限制
reason操作原因,供目标端记录
requesterSDK 默认值请求方标识,通常无需设置

PowerControlResult

字段说明
ok是否成功收到并解析回复
acceptedPMU 是否接受操作
result_codePowerControlResultCode
result_message可读结果说明
versionQueryPowerVersion() 成功时的版本
status_refreshed操作后是否已刷新状态
handled_at_ns / request_id处理时间与请求标识

结果码包括 OkAcceptedRejectedByModeRejectedBySafetyInvalidArgumentDeviceNotOpenDeviceTimeoutDeviceErrorBusyUnsupportedOperationInternalError

注意

电源轨和风扇控制会直接影响真实硬件。执行前确认目标枚举、当前工作模式和现场条件;不要因为 ok == true 就忽略 acceptedresult_code

电池充放电示例见 电池状态