/* * 模块名称:UI 页面注册表(自动生成) * 模块功能:叶子节点 → 内容页描述符映射表 + 2 个查询 API(导航逻辑层消费) * 适用平台:STM32F407ZGTx / PC 模拟器(共用源码) * 作者:王建锋 * 创建日期:2026-10-15 * 自动生成:本文件由 tools/menu_gen/gen_menu.py 从 ui_menu_tree.txt 的 #page= 注记生成,请勿手改。 * 新增一页:菜单树给叶子加 " #page=<模块名>" + 写 ui_page_<模块名>.c,重跑生成器 */ #include "ui_page_registry.h" #include "ui_page_ac.h" #include "ui_page_dc.h" #include "ui_page_device_info.h" #include "ui_page_net_cfg.h" #include "ui_page_password.h" #include "ui_page_runlog.h" #include "ui_page_selftest.h" const ui_page_entry_t g_ui_page_map[UI_PAGE_MAP_COUNT] = { { 1u, &ui_page_device_info_desc }, /* node 1 装置信息 */ { 3u, &ui_page_ac_desc }, /* node 3 交流量 */ { 4u, &ui_page_dc_desc }, /* node 4 直流量 */ { 30u, &ui_page_net_cfg_desc }, /* node 30 网口设置 */ { 39u, &ui_page_selftest_desc }, /* node 39 自检记录 */ { 40u, &ui_page_runlog_desc }, /* node 40 运行记录 */ }; /* * 函数功能:查叶子节点绑定的内容页描述符 * 入口参数:node - 菜单叶子节点下标 uint8_t * 返回值:页面描述符;未绑定返回 NULL const content_page_def_t * * 限定条件:无(越界 node 不会命中任何条目,直接 NULL) * 函数说明:线性扫描绑定表(条目 = 有内容页的叶子,个位数量级) */ const content_page_def_t *ui_page_registry_for(uint8_t node) { for (uint8_t i = 0u; i < UI_PAGE_MAP_COUNT; i++) { if (g_ui_page_map[i].node == node) { return g_ui_page_map[i].desc; } } return NULL; } /* * 函数功能:取密码页描述符(需密码叶子统一进这一页,非节点绑定) * 入口参数:无 * 返回值:密码页描述符 const content_page_def_t * * 限定条件:无 * 函数说明:取值来自 ui_menu_tree.txt 的 @password 指令(生成期解析,运行期零开销) */ const content_page_def_t *ui_page_registry_password(void) { return &ui_page_password_desc; }