手机状态通过 Wi-Fi 主连接同步到仪表,使用 FreeRTOS 托管入口。先完成首次添加与主业务连接。
日夜主题与手机电量
托管配置 phone_state 默认开启。收到 MOTO_EVENT_PHONE_STATE 后使用:
| 字段 | 怎么用 |
|---|---|
e.data.phone.theme |
MOTO_THEME_DAY / MOTO_THEME_NIGHT,切换仪表主题 |
e.data.phone.battery_percent |
手机电量 0–100;-1 表示未知 |
e.data.phone.charging |
手机充电状态 |
这些是 SDK 结构体的值。线协议用 CBOR null 表示未知电量,SDK 转为 battery_percent=-1;0 表示真实零电量,不能按未知处理。
核心入口对应 event->phone,仅在回调期间有效,异步显示前复制快照。车辆电量另按车况上报上报。
复制快照再交给 UI
从 Managed 事件消费者调用下面的辅助函数。它只接受手机状态事件,保留未知电量 -1;随后把 snapshot 的副本放入 UI 队列,并由 UI 线程应用主题、电量和充电标记。
#include <moto_freertos/terminal.h>
bool copy_phone_state(const moto_terminal_event *event,
moto_phone_state *snapshot) {
if (!event || !snapshot || event->kind != MOTO_EVENT_PHONE_STATE)
return false;
*snapshot = event->data.phone;
return true;
}
