重构显示逻辑为 MVP 架构,进行显示模块的解耦

This commit is contained in:
2026-03-24 19:52:22 +08:00
parent a4bf0962b2
commit 0690d6a00e
42 changed files with 2207 additions and 1417 deletions

View File

@@ -6,8 +6,8 @@ set(DTU_TEST_COMMON_SOURCES
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/ascii.c"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd.c"
"${CMAKE_SOURCE_DIR}/src/Drv/key.c"
"${CMAKE_SOURCE_DIR}/src/Drv/menu.c"
"${CMAKE_SOURCE_DIR}/src/Drv/display.c"
"${CMAKE_SOURCE_DIR}/src/Drv/menu/app/menu.c"
"${CMAKE_SOURCE_DIR}/src/Drv/menu/model/display.c"
"${CMAKE_SOURCE_DIR}/src/TCP/tcp.c"
"${CMAKE_SOURCE_DIR}/src/thread_utils.c"
"${CMAKE_SOURCE_DIR}/src/remoteDisplay.c"
@@ -20,12 +20,17 @@ set(DTU_TEST_COMMON_SOURCES
# - add_test: 注册到 CTest支持 ctest 统一执行
function(add_dtu_test test_name)
add_executable(${test_name} ${ARGN})
target_sources(${test_name} PRIVATE
"${CMAKE_SOURCE_DIR}/src/common/utf8.c"
)
# 测试目标可见的头文件目录
target_include_directories(${test_name} PRIVATE
"${CMAKE_SOURCE_DIR}/include"
"${CMAKE_SOURCE_DIR}/src"
"${CMAKE_SOURCE_DIR}/src/TCP"
"${CMAKE_SOURCE_DIR}/src/Drv"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd"
"${CMAKE_SOURCE_DIR}/src/common"
)
# 平台差异Windows 需要 ws2_32非 Windows 使用 pthread
if(WIN32)
@@ -56,14 +61,6 @@ add_dtu_test(
"${CMAKE_SOURCE_DIR}/src/TCP/tcp.c"
"${CMAKE_SOURCE_DIR}/src/thread_utils.c"
)
add_dtu_test(
test_p0_utf8_next
test_p0_utf8_next.c
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd.c"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd_draw.c"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd_text.c"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/ascii.c"
)
add_dtu_test(
test_p0_utf8_hz12_get
test_p0_utf8_hz12_get.c
@@ -89,12 +86,35 @@ add_dtu_test(
add_dtu_test(
test_p1_menu
test_p1_menu.c
"${CMAKE_SOURCE_DIR}/src/Drv/display.c"
"${CMAKE_SOURCE_DIR}/src/Drv/menu/model/menu_tree_builder.c"
"${CMAKE_SOURCE_DIR}/src/Drv/menu/view/menu_layout.c"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd_text.c"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd.c"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/ascii.c"
)
add_dtu_test(
test_p1_menu_nav_legacy
test_p1_menu_nav_legacy.c
"${CMAKE_SOURCE_DIR}/src/Drv/menu/presenter/menu_navigator.c"
)
add_dtu_test(
test_p1_menu_navigator
test_p1_menu_navigator.c
"${CMAKE_SOURCE_DIR}/src/Drv/menu/presenter/menu_navigator.c"
)
add_dtu_test(
test_p1_menu_tree_builder
test_p1_menu_tree_builder.c
"${CMAKE_SOURCE_DIR}/src/Drv/menu/model/menu_tree_builder.c"
)
add_dtu_test(
test_p1_menu_layout
test_p1_menu_layout.c
"${CMAKE_SOURCE_DIR}/src/Drv/menu/view/menu_layout.c"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd_text.c"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd.c"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd_draw.c"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd_text.c"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/ascii.c"
"${CMAKE_SOURCE_DIR}/src/Drv/key.c"
)
# ------------------------------------------------------------
@@ -106,3 +126,21 @@ add_dtu_test(
"${CMAKE_SOURCE_DIR}/src/TCP/tcp.c"
"${CMAKE_SOURCE_DIR}/src/thread_utils.c"
)
add_dtu_test(
test_p2_menu_runtime_startup
test_p2_menu_runtime_startup.c
"${CMAKE_SOURCE_DIR}/src/Drv/menu/app/menu.c"
"${CMAKE_SOURCE_DIR}/src/Drv/menu/model/display.c"
"${CMAKE_SOURCE_DIR}/src/Drv/menu/model/menu_model.c"
"${CMAKE_SOURCE_DIR}/src/Drv/menu/view/menu_view.c"
"${CMAKE_SOURCE_DIR}/src/Drv/menu/presenter/menu_presenter.c"
"${CMAKE_SOURCE_DIR}/src/Drv/menu/model/menu_tree_builder.c"
"${CMAKE_SOURCE_DIR}/src/Drv/menu/view/menu_layout.c"
"${CMAKE_SOURCE_DIR}/src/Drv/menu/presenter/menu_navigator.c"
"${CMAKE_SOURCE_DIR}/src/Drv/menu/view/menu_renderer_lcd.c"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd.c"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd_draw.c"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/lcd_text.c"
"${CMAKE_SOURCE_DIR}/src/Drv/lcd/ascii.c"
"${CMAKE_SOURCE_DIR}/src/Drv/key.c"
)