# 通道配置统一化 — channel_cfg.cpp > 日期: 2026-06-30 | 状态: 执行中 --- ## 设计 ### 数据流 ``` channel_cfg.cpp (system/RTU/src/) ├── XML 解析 → g_ch_cfg_list / g_ch_fwd_list ├── 注册每个 Channel 的 dc interface 信号 └── 提供查询 API libcom_decode (decode_channel_mgr.cpp) └── 通过 g_ch_cfg_list 创建通道, state_cb 更新 interface libself_ptl (self_ptl.cpp) └── 查找 app="self_ptl" 的 Forward → 获取通道 → 绑定 interface ``` ### XML 新格式 ```xml ``` ### 数据结构 (mySystem.h) ```cpp struct stru_ch_cfg { std::string key, saddr, desc; CommType type; void *p_para; // → tcp_params[i] / uart_params[i] int id, socket_fd; }; extern std::vector g_ch_cfg_list; struct stru_ch_fwd_cfg { std::string from_saddr, to_saddr, app; }; extern std::vector g_ch_fwd_list; int channel_cfg_load(const char *proc_dir); stru_ch_cfg *channel_find_by_saddr(const char *saddr); stru_ch_cfg *channel_find_by_id(int id); ``` ### 修改清单 | 文件 | 改动 | |------|------| | mySystem.h | +stru_ch_cfg, +stru_ch_fwd_cfg, +extern globals, +channel_* API | | system/RTU/src/channel_cfg.cpp | ★ 新建: XML解析 + dc信号注册 | | com_channel_def.h | 简化, 删除向量定义 | | decode_channel_mgr.cpp | 用 channel_cfg_* 替代本地解析 | | self_ptl.cpp | 用 channel_find_by_saddr 替代硬编码信号名 | | channel_config*.xml | Channel+saddr, Forward+from_saddr+to_saddr+app |