/** * @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)