// ============================================================ // 应用模块注册表 — X-Macro 中心化列表 // // 注意:此文件故意不设 #pragma once 或 include guard, // 因为需要被多次包含(每次在不同的 APP_MODULE 宏定义下展开) // ============================================================ #ifndef APP_MODULE #error "APP_MODULE macro must be defined before including app_modules.h" #endif // 格式: APP_MODULE(ENUM后缀, 配置名, init1, init2, thread入口) // - ENUM后缀: 用于生成 ENUM_APP_<后缀> 枚举值(大写) // - 配置名: 用于生成 "app_<配置名>" 匹配配置文件(小写) // - init1/init2/thread: 模块初始化函数和线程入口 APP_MODULE(SYS, sys, app_sys_init1, app_sys_init2, app_sys ) APP_MODULE(CMD, cmd, app_cmd_init1, app_cmd_init2, app_cmd ) APP_MODULE(WEB_SERVER, web_server, app_web_server_init1, app_web_server_init2, app_web_server) 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(SELF_PTL, self_ptl, app_self_ptl_init1, app_self_ptl_init2, app_self_ptl ) APP_MODULE(IEC61850M, iec61850m, app_iec61850m_init1, app_iec61850m_init2, app_iec61850m ) APP_MODULE(IEC61850S, iec61850s, app_iec61850s_init1, app_iec61850s_init2, app_iec61850s ) APP_MODULE(MODBUS_M, modbus_m, app_modbus_m_init1, app_modbus_m_init2, app_modbus_m )