#ifndef TEST_UI_SINK_STUB_LVGL_H #define TEST_UI_SINK_STUB_LVGL_H /* * 测试存根 lvgl.h(#69,2026-11-02 新增) * * 为什么存在:ui_net_sink.c 新增 STATUS/GOTO 处理(#69 板端导航身份查询)后, * 间接引用 ui_menu_view.h / ui_content_page.h,两者 include 真实 "lvgl.h"。 * 本单测只覆盖成帧 / 心跳 / 状态机纯逻辑(见 run_unit_test.py 文件头), * 运行期不触任何 LVGL,故此处仅提供上述头文件声明处用到的最小类型; * 不模拟任何 LVGL 行为,也不参与 MCU 构建(stub 目录仅本测试使用)。 * * 维护约定:ui_content_page.h / ui_menu_view.h 的声明若新增 lv_* 类型依赖, * 在此按需补最小 typedef;禁止在此写真实 LVGL 语义来"凑过"编译。 */ #include typedef struct _lv_obj_t lv_obj_t; typedef struct _lv_area_t lv_area_t; typedef struct _lv_layer_t lv_layer_t; typedef uint32_t lv_key_t; typedef struct { uint8_t a; uint8_t r; uint8_t g; uint8_t b; } lv_color_t; /* ui_tokens.h 的 UI_COL_* 宏用到;本测试不断言其值,仅需可编译 */ static inline lv_color_t lv_color_white(void) { lv_color_t c; c.a = 0xFFu; c.r = 0xFFu; c.g = 0xFFu; c.b = 0xFFu; return c; } static inline lv_color_t lv_color_black(void) { lv_color_t c; c.a = 0xFFu; c.r = 0x00u; c.g = 0x00u; c.b = 0x00u; return c; } /* ui_content_page.h 注释提及;为防后续声明引用,按真实 LVGL 键码给出 */ #define LV_KEY_LEFT 0x14u #define LV_KEY_ESC 0x1Bu #endif /* TEST_UI_SINK_STUB_LVGL_H */