refactor(编号): UI 菜单层级 L0~L3 → 主界面/一级/二级/三级菜单(批次 3a)
这族是菜单深度号:L0 根、L1 一级、L2 二级、L3 三级。用户 2026-10-28:「编号看不懂」, 且与采集链分层的 L1~L5 撞形(同一份文档里两套 L 号,读的人得先猜是哪套)。 改法(生成物走生成器,不手改): - `tools/menu_gen/gen_menu.py`:加 MENU_LEVEL_NAMES 常量,生成 ui_menu_tab.c 的注释从 `/* 12 L2 */` 变成 `/* 12 二级菜单 */`;重跑生成器,生成物 42 行注释随之更新。 - 文档 4 篇 113 行:菜单页面设计(94)、内容页架构(10)、01_主界面_说明(8)、 中文字体生成与配置(1)。映射:L0 → 主界面(根)、L1/L2/L3 → 一级/二级/三级菜单; `4 级(L0~L3)` → `4 级(主界面 → 三级菜单)`;括号里的 `(L1)` → `(一级菜单)`。 范围纪律:只动 UI 菜单这一族。同名的测试层级族(L0/L0.5/L1/L2/L3,见测试开发标准流程) 与链路延迟分段 L1~L8 不动——那两个属批次 3 的另两族。 验证:@build 0 错 0 警;check_menu_rows 8 状态 PASS(5368 B 池不变);生成器重跑幂等 (rc=0,生成物只剩注释差异 42/42 行);doc-links 通过(195 文档);mojibake / bom-guard / 新编号门禁 / git diff --check 全绿。
This commit is contained in:
@@ -36,6 +36,10 @@ UVPROJX = os.path.join(ROOT, 'MDK-ARM', 'STM32F407-Demo.uvprojx')
|
||||
CMAKELISTS = os.path.join(ROOT, 'simulator', 'CMakeLists.txt')
|
||||
UI_GROUP = 'Drivers/BSP/UI' # uvprojx 里的组名
|
||||
ROOT_ID = 0xFF # 内部根标记(= MENU_ROOT=0xFF);与 8 位索引一致,映射到 C 的 MENU_ROOT 宏
|
||||
# 菜单层级语义名(索引 = 深度)。过去生成物注释里写 L0~L3,用户 2026-10-28 裁定改语义名——
|
||||
# 生成物里的层号人看不懂,且与"采集链分层"的 L1~L5 撞形。
|
||||
MENU_LEVEL_NAMES = ("主界面", "一级菜单", "二级菜单", "三级菜单",
|
||||
"四级菜单", "五级菜单", "六级菜单", "七级菜单")
|
||||
MAX_DEPTH = 8
|
||||
MAX_NODES = 255 # uint8_t 索引 + 哨兵 0xFF → 最多 255 个节点(下标 0..254)
|
||||
STEM_RE = re.compile(r'^[a-z][a-z0-9_]*$')
|
||||
@@ -254,7 +258,9 @@ def emit(nodes):
|
||||
for i, (parent, name, depth, pwd, _page) in enumerate(nodes):
|
||||
pstr = 'MENU_ROOT' if parent == ROOT_ID else '%d' % parent
|
||||
cstr = '1u' if pwd else '0u'
|
||||
c.append(' { %8s, %2s, "%s" }, /* %2d L%d */' % (pstr, cstr, name, i, depth))
|
||||
# 层级用语义名(2026-10-28 用户裁定:L0~L3 这套层号看不懂,改成语义层名)
|
||||
c.append(' { %8s, %2s, "%s" }, /* %2d %s */'
|
||||
% (pstr, cstr, name, i, MENU_LEVEL_NAMES[depth]))
|
||||
c.append('};')
|
||||
c.append('')
|
||||
c += [
|
||||
|
||||
Reference in New Issue
Block a user