本页内容 上报电量和里程锁与电源状态上报车辆故障
HARDWARE SDK / FreeRTOS

车况上报

上报完整车况快照、未知值和故障事件。

通过 moto_terminal_report_state 上报车辆控制器的完整采样快照;车辆故障使用独立的 moto_terminal_report_fault。先完成首次添加与主业务连接,并在型号中开启对应上报能力。

上报电量和里程

读取车辆后,每次提交当前完整状态。下面的两个变量需换成你的采样值:

moto_vehicle_state state = {0};
state.present = MOTO_CAP(MOTO_BATTERY) | MOTO_CAP(MOTO_MILEAGE);
state.values[MOTO_BATTERY] = actual_soc_percent;   // 百分比
state.values[MOTO_MILEAGE] = actual_total_metres;  // 米
moto_result rc = moto_terminal_report_state(terminal, &state);
  • present:本次报告包含哪些字段。
  • values:每个字段的数值。
  • unknown:包含但暂时读不到的字段,必须同时出现在 present 中。

快照会替换之前缓存的状态,不是补丁;下面这份只含电量/里程的示例不能用于已经接入锁、电源等字段的完整产品。应把所有已接入字段放入同一份采样。

例如电量读不到时设置 state.unknown |= MOTO_CAP(MOTO_BATTERY),并保留对应 present 位,不填 0;0 代表电量已耗尽。SDK 自动生成状态版本号,无需自行维护。

锁与电源状态

状态共有 13 项,锁和电源必须反映控制器实际状态:

字段 含义
field 3,MOTO_LOCK 手动与感应解锁共用的真实锁状态,驱动首页锁图标
field 11,MOTO_RANGE_METRES 续航米数;不是感应解锁状态
field 12,MOTO_POWER 0 关机、1 开机;读不到时标记 unknown

例如上报电源时,在完整车况中加入 MOTO_CAP(MOTO_POWER),填写 state.values[MOTO_POWER]。命令回执与车况上报分别处理,不能用发送成功代替实际状态。

上报车辆故障

使用 moto_terminal_report_fault(t, id, active, module, code, severity):

参数 填写方式
id 非零故障编号,同一故障重试时保持不变
active true 为出现,false 为解除
module / code 模块名及厂商故障码,例如电池模块的故障编号
severity 严重程度,范围 0–3

状态与故障上报返回 MOTO_FULL 时,保留本次数据后重试;完整返回值见 API 速查。