通过 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 速查。
