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

2.6 KiB
Raw Blame 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 入侵警报粗红框与大图标绘制函数。