ae09c5737a
任务规划目录从 5 个文件收敛到 3 个:只留导航(README)、待办(登记簿)、 暂缓专项(暂缓-RS485)。 删除的两个文件都不再有现行读者: - UI补齐.md 执行清单 2026-10-28 清空、上板判据 2026-11-06 台架轮已复核; 叶数口径迁 docs/UI设计/菜单页面设计.md §3.9,三条内容页硬规矩迁 docs/UI设计/内容页架构.md §7.1,两条未闭环待办迁登记簿 §7/§8。 - 数据可信.md 不是完成记录,而是被约 130 处代码头注释引用的设计约束, 因此按内容分三处落位后删除,不整篇丢弃。 数据可信内容的新归属(旧节号 → 新家): - §2/§4 设计口径 → docs/算法/采集与算法层设计说明.md 新增 §13(13 小节), §7 前置决策表 → §13.12 已定案的前置决策。 - §3 台阶与波次退出判据 → docs/硬件平台/ADC通道映射说明.md 新增 §9。 - §5 任务卡 → docs/任务规划/登记簿.md §7(拆成变比确认 / 两点标定两行)。 引用改写 34 文件 77 处路径引用 + 14 文件 24 处昵称引用 + 双重节号 35 处, 覆盖代码头注释、测试、生成器与文档;归档区历史路径改纯文本提及。 四个 SVG 生成器文案同步并重跑,产物随脚本同批提交。 同批处理两件事: - 9 个 UTF-16 LE 证据文件转 UTF-8。end-of-file-fixer 按字节判末尾换行, UTF-16 的换行是 0A 00、末字节 00,钩子会追加裸 0x0a 使文件变奇数长度, 8 个已实际损坏。转码后逐文件比对 HEAD 原文验证正文零丢失。 - 修回 App/cfg/cfg_file.c 被剥掉的 UTF-8 BOM(补 3 字节,未整文件重写)。 验证:/keil-build 0 错误 0 警告(Code=255160);check_doc_links --all --sections-strict 221 篇全通过、无法判定 0;pre-commit 全量全 Passed。
84 lines
5.1 KiB
C
84 lines
5.1 KiB
C
/*
|
||
* 模块名称:UI 遥测整定视图模型(ui_w_ytview)
|
||
* 模块功能:两张遥测整定页(遥测死区 9 行 / 遥测系数 8 行)的**共用视图模型**——
|
||
* 行表现状从 ui_data.h 通道五注入表逐行现取(工程量 + 粗守域 + 量纲 +
|
||
* 显示小数位),换算成 ui_w_setlist 的显示域(工程量 × 10^decimals),
|
||
* 并把"写一行 / 落盘确认 / 越界反显 / 未标定徽标"四件事收在一处,供两张
|
||
* 页面薄跳板(ui_page_deadband / ui_page_calib)共用——两页共用一份状态机
|
||
* 与换算,与 ui_w_setview"行表只有一份,界内界外就不会两套口径"同一条理由
|
||
* 与整定四页(ui_w_setview 的写方向)**故意不同形**,三处差别都写在 .c 的函数头:
|
||
* ① 无工作叠层:死区/系数的真源本身就是 RAM 副本,语义 setter 是执行侧
|
||
* 写入口(写值与置脏同一函数内发生),"编辑即生效、ESC 不回滚"是本档
|
||
* 语义(与定值"攒一批整表封存"不同,取舍见 .c 文件头);
|
||
* ② 保存行不是"投递整表",而是**落盘确认**:值在逐行 ENTER 时已经写进
|
||
* 副本并置脏,保存行按键只锁存"我这次动作的结果"(脏位归零 = 整档已
|
||
* 外科保存成功,判据 = ui_data_yt_pending(),与 104 留痕同一条
|
||
* "先 peek 再算成功",不另发明);
|
||
* ③ 没有 LOCK 态:本档不受定值校验和闭锁管辖;"未标定"(cal_blocked)
|
||
* 只画徽标、不禁编辑——改系数恰恰是走向标定的动作,禁了就是把路堵死
|
||
* 值域诚实性:行 min/max **逐行来自执行侧现给**(合法域唯一出口 run_par_db_range /
|
||
* 粗守上限 RUN_PAR_K_MAX_UV)——本模块不出现任何一个范围数字字面量,
|
||
* 抄一份就是卡片判据要拦的第二真源;µV 真带(执行段裁)没有公开访问器,
|
||
* 本模块**不**补一份假的(task-43 收口前屏上只有粗守这一层,真带拒的值
|
||
* 经 set 返回 -1 → 行反显 + 保存行 ERR,两层守卫互不掩盖)
|
||
* 分层:只依赖 Drivers/BSP/UI 同层(ui_data.h 注入表 + ui_w_setlist/ui_w_editor),
|
||
* 零 App include(layer-deps + 模拟器链接期两条老理由,见 ui_data.h 通道五表注)
|
||
* 适用平台:STM32F407ZGTx / PC 模拟器(共用源码)
|
||
* 作者:DTU 项目组
|
||
* 创建日期:2026-10-27
|
||
* 修改记录:
|
||
* v1.0 2026-10-27 DTU 项目组 创建(道F task-7;通用判据 = docs/UI设计/
|
||
* 内容页架构.md §7.1;Lead 裁定:注入表八口形状、结果锁存、
|
||
* 粗守 + 注释两层守卫、真带访问器归 task-43)
|
||
*/
|
||
#ifndef UI_W_YTVIEW_H
|
||
#define UI_W_YTVIEW_H
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
#include <stdint.h>
|
||
|
||
#include "ui_w_setlist.h" /* ui_w_setlist_t + lvgl(经 ui_content_page.h) */
|
||
|
||
/*
|
||
* 函数功能:把**死区**视图绑到定值表实例(行表现状逐行现取;两态在内部按
|
||
* ui_content_page_is_editable() 分派——只读不绑 commit/state,无保存行)
|
||
* 入口参数:a_inst - 页面持有的实例(static,一页一份) ui_w_setlist_t *
|
||
* 返回值:无
|
||
* 限定条件:页面 init_cb 内调用(uiTask 上下文,此时本次进入的权限已装载)
|
||
* 函数说明:每次开页都重填行表并清历史结果(st/badmap)——上一次开页的 WAIT/OK
|
||
* 与越界反显都不该带到这一次来(同整定四页"开页清稿"纪律)
|
||
*/
|
||
void ui_w_ytview_attach_db(ui_w_setlist_t *a_inst);
|
||
|
||
/*
|
||
* 函数功能:把**系数**视图绑到定值表实例(形状/分派/清稿与 attach_db 同一条路)
|
||
* 入口参数:a_inst - 页面持有的实例 ui_w_setlist_t *
|
||
* 返回值:无
|
||
* 限定条件:页面 init_cb 内调用
|
||
*/
|
||
void ui_w_ytview_attach_cal(ui_w_setlist_t *a_inst);
|
||
|
||
/*
|
||
* 函数功能:系数页标题右侧画"未标定"徽标(cal_blocked 的屏上表达)
|
||
* 入口参数:a_layer - 绘制层 lv_layer_t *
|
||
* a_clip - 重绘区 const lv_area_t *
|
||
* 返回值:无
|
||
* 限定条件:系数页 draw_cb 内(框架内置区块之后);只在 cal_blocked() 为真时落墨
|
||
* 函数说明:**死区页刻意不调它**——死区数值来自 [run_par] 档、与两点标定无关,
|
||
* 在那页画"未标定"是把不相关的告警挂到不相干的屏上(徽标是断言)。
|
||
* 几何右界取 141:与整定四页徽标同一实测理由(标题带装饰右腿占 x 约
|
||
* 147..158);本标题"遥测系数"4 字到 x 约 104,与徽标左缘仅 1 px 间隙,
|
||
* 会被读成一句"遥测系数未标定"——该读法语义成立(本页说的就是系数、
|
||
* 而系数此刻确实没标定过),像素黄金目检时确认过不再挪
|
||
*/
|
||
void ui_w_ytview_draw_cal_badge(lv_layer_t *a_layer, const lv_area_t *a_clip);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif /* UI_W_YTVIEW_H */
|