31 lines
1.7 KiB
C
31 lines
1.7 KiB
C
/**
|
||
* @file app_modules.h
|
||
* @brief 应用模块注册表 — X-Macro 中心化列表
|
||
* @details 此文件故意不设 include guard,因为需要被多次包含
|
||
* (每次在不同的 APP_MODULE 宏定义下展开)。
|
||
* 新增模块只需在此文件中追加一行,无需修改其他代码。
|
||
*
|
||
* 格式: APP_MODULE(枚举后缀, 配置名, init1, init2, 线程入口)
|
||
* - 枚举后缀: 用于生成 ENUM_APP_<后缀> 枚举值(大写)
|
||
* - 配置名: 用于生成 "app_<配置名>" 名称字符串(小写)
|
||
* - init1: 阶段1 初始化函数(信号注册前)
|
||
* - init2: 阶段2 初始化函数(信号注册后,可为 NULL)
|
||
* - 线程入口: 主循环入口函数(独立线程中运行)
|
||
*/
|
||
|
||
#ifndef APP_MODULE
|
||
#error "APP_MODULE macro must be defined before including app_modules.h"
|
||
#endif
|
||
|
||
/* ============== 线程模块(system/ 子目录) ============== */
|
||
APP_MODULE(MODBUS_M, modbus_m, app_modbus_m_init1, app_modbus_m_init2, app_modbus_m)
|
||
APP_MODULE(WEB_SERVER, web_server, app_web_server_init1, app_web_server_init2, app_web_server)
|
||
APP_MODULE(SELF_PTL, self_ptl, app_self_ptl_init1, app_self_ptl_init2, app_self_ptl)
|
||
APP_MODULE(COM_ROUTER, com_router, app_com_router_init1, app_com_router_init2, app_com_router)
|
||
APP_MODULE(IEC, iec, app_iec_init1, app_iec_init2, app_iec)
|
||
|
||
/* ============== 预留模块(阶段 2-3 实现后取消注释) ============== */
|
||
// APP_MODULE(COM_DECODE, com_decode, app_com_decode_init1, app_com_decode_init2, app_com_decode)
|
||
// APP_MODULE(IEC, iec, app_iec_init1, app_iec_init2, app_iec)
|
||
// APP_MODULE(WEB_SERVER, web_server, app_web_server_init1, app_web_server_init2, app_web_server)
|