重构代码的架构设计,增加测试单元,提高代码可靠性

This commit is contained in:
2026-03-23 20:40:04 +08:00
parent c2ce221691
commit a4bf0962b2
31 changed files with 2084 additions and 703 deletions

View File

@@ -1,38 +1,56 @@
# 指定 CMake 最低版本要求
cmake_minimum_required(VERSION 3.10)
# 定义工程名(用于生成解决方案/项目名称)
project(DTU_HMI)
# 统一使用 C99 标准编译 C 代码
set(CMAKE_C_STANDARD 99)
# 导出编译数据库,供 Cursor/clangd 使用
# 导出 compile_commands.json,供 Cursor/clangd/静态分析工具使用
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# MSVC 编译器下强制使用 UTF-8 源文件编码,避免中文注释/字符串乱码
# 同时关闭 C4819部分环境即使是 UTF-8 文件仍会误报代码页告警)
if(MSVC)
add_compile_options(/utf-8)
add_compile_options(/utf-8 /wd4819)
endif()
# 可选:启用 DEBUG 宏,用于条件编译输出调试信息cmake -DENABLE_DEBUG=ON ..
# 可选开关:启用 DEBUG 宏,用于条件编译调试日志
# 用法cmake -DENABLE_DEBUG=ON ..
option(ENABLE_DEBUG "Enable debug printf output" OFF)
if(ENABLE_DEBUG)
add_compile_definitions(DEBUG)
endif()
# 主可执行程序 DTU-HMI 及其源码列表
add_executable(DTU-HMI
src/main.c
src/thread_utils.c
src/remoteDisplay.c
src/Drv/menu.c
src/Drv/lcd.c
src/Drv/lcd/lcd.c
src/Drv/lcd/lcd_draw.c
src/Drv/lcd/lcd_text.c
src/Drv/key.c
src/Drv/Ascii.c
src/Drv/lcd/ascii.c
src/Drv/display.c
src/TCP/tcp.c
)
# 可执行程序头文件搜索路径
target_include_directories(DTU-HMI PRIVATE include src src/TCP)
# 按平台链接系统库:
# - Windows 需要 Winsock2ws2_32
# - Linux/macOS 使用 pthread
if(WIN32)
target_link_libraries(DTU-HMI PRIVATE ws2_32)
else()
target_link_libraries(DTU-HMI PRIVATE pthread)
endif()
# 开启 CTest 测试支持,并加载 tests 子目录中的测试目标
enable_testing()
add_subdirectory(tests)