From aed907a977d7ef812cb5dd5d4a81a2e0e4e825f1 Mon Sep 17 00:00:00 2001 From: ypc <15051963820@163.com> Date: Wed, 8 Jul 2026 16:23:49 +0800 Subject: [PATCH] =?UTF-8?q?refactor(libmodbus=5Fm):=20=E8=A7=A3=E8=80=A6?= =?UTF-8?q?=E7=BA=BF=E7=A8=8B=E6=A8=A1=E5=9D=97=EF=BC=8C=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E5=AF=B9=E5=A4=96=E5=A4=B4=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除 myModbusM.h: 线程模块不再对外暴露头文件 - copy_headers.sh: 移除 libmodbus_m 拷贝 - modbus_m.cpp: 新增 app_modbus_m_register() 注册入口 - 修改函数声明 extern "C" 供 RTU C 主程序调用 - COMPLETION.md: RTU 标记完成 设计原则: system/ 下除 RTU 外所有线程模块不对外提供头文件, 通过 app_module_register() 动态注册,实现完全解耦 --- COMPLETION.md | 2 +- release/copy_headers.sh | 1 - src/system/libmodbus_m/inc/myModbusM.h | 13 ------------- src/system/libmodbus_m/src/modbus_m.cpp | 16 ++++++++++++++++ 4 files changed, 17 insertions(+), 15 deletions(-) delete mode 100644 src/system/libmodbus_m/inc/myModbusM.h diff --git a/COMPLETION.md b/COMPLETION.md index 0a003e3..8d20a66 100644 --- a/COMPLETION.md +++ b/COMPLETION.md @@ -41,7 +41,7 @@ | Modbus 主站管理 | `libmodbus_m`(原工程自研模块,导入+适配) | ✅ | | 通讯通道解码 | `libcom_decode` | ⬜ | | Web 管理服务 | `libweb_server` | ⬜ | -| 主程序入口 | `RTU` | ⬜ | +| 主程序入口 | `RTU`(系统模块框架 + app_modules.c + main.c) | ✅ | ## 阶段 3:系统集成 diff --git a/release/copy_headers.sh b/release/copy_headers.sh index 0d9deaa..cc210cf 100755 --- a/release/copy_headers.sh +++ b/release/copy_headers.sh @@ -106,6 +106,5 @@ copy_proto_module "lib60870" "myIec60870.h" # 系统模块(system/) # ================================================================ copy_sys_header "mySystem.h" -copy_sys_module "libmodbus_m" "myModbusM.h" echo "=== done ===" diff --git a/src/system/libmodbus_m/inc/myModbusM.h b/src/system/libmodbus_m/inc/myModbusM.h deleted file mode 100644 index 1f161d9..0000000 --- a/src/system/libmodbus_m/inc/myModbusM.h +++ /dev/null @@ -1,13 +0,0 @@ -/** - * @file myModbusM.h - * @brief Modbus 主站管理模块统一入口 - * @details 原工程自研模块,通过 XML 配置通道和点表,轮询读取 Modbus 从站数据, - * 写入 libdatacenter,支持遥控/遥调异步写入。 - * 调用者只需 #include "myModbusM.h"。 - */ -#ifndef _MY_MODBUS_M_H_ -#define _MY_MODBUS_M_H_ - -#include "modbus_m.h" - -#endif /* _MY_MODBUS_M_H_ */ diff --git a/src/system/libmodbus_m/src/modbus_m.cpp b/src/system/libmodbus_m/src/modbus_m.cpp index beff9a6..61bbcfa 100644 --- a/src/system/libmodbus_m/src/modbus_m.cpp +++ b/src/system/libmodbus_m/src/modbus_m.cpp @@ -1017,3 +1017,19 @@ void *app_modbus_m(void *arg) return NULL; } + +// ==================== 模块注册 ==================== + +static stru_app g_app_modbus_m; + +extern "C" void app_modbus_m_register(void) +{ + memset(&g_app_modbus_m, 0, sizeof(g_app_modbus_m)); + g_app_modbus_m.name = MODULE_MODBUS_M; + + app_module_register(MODULE_MODBUS_M, + app_modbus_m_init1, + app_modbus_m_init2, + app_modbus_m, + &g_app_modbus_m); +}