UI 内容页框架加实时页自动刷新机制(交流量页启用,300ms)
- ui_content_page:描述符尾部追加 auto_ms/auto_seq 可选字段(缺省=0/NULL= 旧行为逐位不变);页打开期间框架持一只 lv_timer,仅当发布序号变过才整页 失效(零空转失效),关页即销;新 API ui_content_page_auto_poll - ui_page_ac.c:.auto_ms=300(≥200ms 发布节拍、避 400=2×200 锁相、300= 15×20ms LVGL 整刷周期;最坏屏上滞后 500ms;完整取值账目在代码注释) - simulator:rt 帧装配收口 sim_fill_rt_frame(n=0 冻结帧保 74 张黄金逐字节 一致,n≥1 确定性斜坡);新增 --rtlive 两态自检 + 窗口模式 200ms 节拍发布; check_content_pages.py 增 [rtlive] 零按键 A≠B 落屏断言 - docs/UI设计:供给说明新增 §5.5 自动刷新口径;内容页架构 §3.1/§四/§九 同步 (并修正 s_open 判定旧描述) - 台账:Keil 构建后按固定顺序回填(Code=256,588 / RW_IRAM1 +8B / UI +8B) 验证:模拟器 0错0警;菜单 8 状态 + 内容页 74 张 + rtlive(A≠B 30 字节)PASS (lead 独立复跑 RC=0);Keil 0错0警;mem-budget --gate / mem-numbers --scan 绿。
This commit is contained in:
@@ -50,6 +50,19 @@
|
||||
#define AC_Q_BAD (UI_DATA_Q_IV | UI_DATA_Q_NT | UI_DATA_Q_RAW | UI_DATA_Q_SB | \
|
||||
UI_DATA_Q_BL | UI_DATA_Q_OV)
|
||||
|
||||
/* 自动刷新轮询周期(ms;框架级机制,字段语义见 ui_content_page.h 的 auto_ms 注)。
|
||||
* 取 300 的账(允许区间 250~500;发布者 rt 通道每 200ms 一帧,见
|
||||
* UI_数据供给设计说明.md §5.2):
|
||||
* ① 必须 ≥ 发布节拍 200ms——轮得比发得快只是空转,白耗 uiTask;
|
||||
* ② 避开 400ms(恰为 2×200):采样拍与发布拍锁相,感知滞后最坏 800ms;
|
||||
* ③ 300 = 15 × LVGL 刷新周期 20ms(LV_DEF_REFR_PERIOD 两端同值):失效恰好落进
|
||||
* 下一次整刷合并,不多触发一帧;最坏屏上滞后 = 200 + 300 = 500ms,对一周波
|
||||
* 相量级的电气量读数足够,读表不觉得卡;
|
||||
* ④ 250 只比 300 早至多 50ms(新帧首先受发布节拍约束),代价是多 20% 空转拍;
|
||||
* 500 最坏滞后升到 700ms,数值跳变看着像"翻页"。
|
||||
* 稳态开销为零:序号没变不失效不重绘(ui_content_page_auto_poll 纪律)。 */
|
||||
#define AC_AUTO_MS 300u
|
||||
|
||||
/* 静态变量定义区 */
|
||||
|
||||
/* 行名表(Flash) */
|
||||
@@ -228,4 +241,7 @@ const content_page_def_t ui_page_ac_desc = {
|
||||
.rows = NULL,
|
||||
.init_cb = ac_init,
|
||||
.refresh = ac_refresh,
|
||||
/* 自动刷新(task-2):框架轮询通道一发布序号,来新帧才整页失效——本页不自造
|
||||
* 定时器;auto_seq 缺省 = ui_data_rt_seq(),与 ac_frame_ready 的取数门控同源。 */
|
||||
.auto_ms = AC_AUTO_MS,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user