Commit Graph

2 Commits

Author SHA1 Message Date
ypc 8cf00ad14d feat(com_router): bind_app 协议绑定路由 — 端口→规约直投
## 设计
通道配置新增 bind_app 字段:
- bind_app="" (空)  → 现有帧内容分路 (FTU串口)
- bind_app="iec"    → 整帧直投 libiec (TCP :2404 主站)
- bind_app="self_ptl" → 整帧直投 self_ptl (备用)

新增 com_router_register_dispatch(bind_app, cb):
- 协议模块在 app_wiring() 注册回调
- recv_cb 发现通道 bind_app 匹配, 直接调用 dispatch
- 不需要帧解析 — 协议模块自行解码

## 路由优先级
1. forward_rule → 维护透传
2. bind_app 非空 → dispatch 投递
3. bind_app 空 → 帧内容分路 (ICP67 dev=0/IEC/ICP67 dev≠0)

## 配置示例
channel_cfg.json: tcp_master(:2404) bind_app="iec"
  → 外部主站连接 :2404 → com_router → libiec 回调
2026-07-10 10:40:24 +08:00
ypc 920524945d feat: ICP67自定义协议 + 自协议应用层 + 通信路由中枢
=== libicp67 (纯C, 4文件 1800+行) ===
- 帧定界/CRC/构造 (icp67_frame.c)
- 16种TI解码 + 文件/ZIP子命令 (icp67_decode.c)
- 13个Sender + 重传管理 + 定时器 (icp67_core.c)
- 可配置超时/重试参数 + 零拷贝环形缓冲搜索
- 测试 26项全通过

=== libself_ptl (C++, 3文件 1200+行) ===
- XML点表解析 (St/Mx/Co/Dd/Ao/Param 2988行)
- 17个回调 → 数据中心 (SOE/故障/扰动/自检/AO)
- MQ_COM_TO_SELF_PTL / MQ_SELF_PTL_TO_COM 解耦

=== libcom_router (C++, 2文件 800+行) ===
- 通道创建 + JSON配置 + 转发端口TCP server
- 三级路由: 端口转发 → 回复归属 → self_ptl
- MQ桥接: 按原工程 stru_msg_head + EV_COM_RX_SELF_PTL

=== 系统框架 ===
- app_msg_queue.h X-Macro MQ定义
- 跨模块事件 + stru_msg_head 消息封装
- app_modules.h 注册 SELF_PTL / COM_ROUTER
2026-07-09 17:51:57 +08:00