Files
stc32g128k/Docs/50_module-breakdown/mod-app.md

26 lines
2.6 KiB
Markdown
Raw Normal View History

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