2.6 KiB
2.6 KiB
模块拆分 - 应用执行层 (Docs/50_module-breakdown/mod-app.md)
本模块描述手环的 App 调度管理器(AppManager)、活跃前台应用生命周期钩子(OnStart, onRun, onClose, onEvent)以及各功能模块的页面渲染与状态机调度设计。
1. 模块职责说明
- 职责范围:
- 应用生命周期调度 (AppManager):维护当前活跃应用的实例指针
active_app。当触发切换时,调用旧 App 的onClose()并调用新 App 的OnStart(),初始化相应的视窗 GRAM。 - 待机时钟应用 (ClockApp):手环默认待机状态。中央以
32x64px超大点阵渲染当前时分,右上角渲染16x32px电量百分比及充电指示+;10秒无操作时触发睡眠调度。 - 主菜单应用 (MenuApp):单屏单条目显示交互。每次仅在中央渲染选中项的
48x48px大图标,下方以大字渲染菜单名称,支持 ▲/▼ 键高亮切换,确认键进入对应子页面。 - 配对与微调应用 (PairApp):对码捕捉到未配对 24 位射频码时拉起。自动匹配识别传感器类型图标,提供
32x64px超大微调序号选框(可通过 ▲/▼ 键在[01]~[99]之间滚动微调),确认后存入持久化 Flash。 - 传感器报警应用 (AlarmApp):被后台监测唤醒拉起。识别触发的对码槽位,屏幕闪烁红色粗边框,中央渲染该类传感器的
48x48px警报大图标与防区前缀,调度对应的专属马达振动波形与 LED 警示颜色。 - 主动求救应用 (SOSApp):在待机时短按/长按 SOS 物理按键(Pin 27 /
P2.6)拉起。屏幕高亮显示SOS EMIS;调度发射模块以 2 秒为周期循环向外界发射0x08(SOS) 无线电数据;触发最高优先级的持续马达震动及红色幻彩灯交替爆闪。
- 应用生命周期调度 (AppManager):维护当前活跃应用的实例指针
2. 接口与函数说明
void AppManager_Init(void):注册所有 WristbandApp 页面实例并设置默认活跃 App 指针为 ClockApp。void StartApp(u8 app_id):执行应用切换动作。安全切出旧前台应用并唤醒载入新应用。void CloseApp(void):退出当前活跃 App 实例,默认回退至待机时钟 ClockApp。void UI_ShowClockPage(SystemState state, u8 hour, u8 min):ClockApp 的专有刷屏绘制函数。void UI_ShowMenuPage(u8 selected_item):MenuApp 的专有菜单绘制函数。void UI_ShowPairConfirmPage(u8 type, u8 selected_suffix):PairApp 对码序号微调与保存绘制函数。void UI_ShowAlarmPage(u8 type, char *name_prefix, u8 suffix_num):AlarmApp 入侵警报粗红框与大图标绘制函数。