ypc
|
c92dc5c452
|
system: 模块增强 — EV_STOP 支持 + 代码规范
- app_sys.cpp: 消息队列创建增强,模块启停控制优化
- app_modules.h: 启用 plc 模块
- com_router: EV_STOP 优雅退出 + tcp_client 通道支持
- libiec: 代码格式规范化(LOCAL/Tab/大括号独占行)
- libmodbus_m: EV_STOP 支持
- libplc: 代码规范 + 调试打印完善
- libself_ptl: EV_STOP 支持 + 代码规范
|
2026-07-14 11:01:58 +08:00 |
ypc
|
b00b998ac1
|
feat(libplc): PLC 逻辑引擎模块 + 文档补全 + 计划同步
## libplc 模块 (新)
- src/system/libplc/inc/plc.h / src/plc.cpp: 1252 行, 原工程完整复刻
- 10 种逻辑门 (AND/OR/NOT/62P/62D/RISING/FALLING/SR/RS)
- Kahn 拓扑排序 + 非阻塞定时器 (CLOCK_MONOTONIC)
- 嵌套 Comb XML 递归解析 + R/S 引脚属性
- self_ptl 遥信联动 + datacenter out 信号输出
- dc_get_signal_info_by_id 封装为 plc_set/get_out_value_by_id
- printf → PLC_DBG 可控调试宏 + 'plc dbg on|off' 命令开关
- 代码规范: Tab 缩进/条件分支分行/大括号独占行/函数注释
- 接口适配: func_proc_self_dir/dc_signal_out module_id 对齐
- release/src/system/libplc/makefile + release 头文件
## 文档补全 (之前开发未写文档)
- docs/system/libiec/API-libiec.md (26 个 CS10x 回调, 架构, MQ 流)
- docs/system/libcom_router/API-libcom_router.md
- docs/system/libself_ptl/API-libself_ptl.md
- docs/protocol/libicp67/API-libicp67.md
## 计划同步
- PLAN.md: 阶段 0~4 全部回写状态 ⬜→✅
- COMPLETION.md: 清理陈旧 libiec ⬜ 条目
- docs/README.md: 新增 libiec/libcom_router/libself_ptl/libicp67 索引
- PLAN.md 3.4: 新增 if/大括号/多语句格式规范
- 工作流: 新增 '回写 PLAN.md' 步骤
## X-Macro 注册
- app_modules.h: APP_MODULE(PLC, ...)
- release/src/system/makefile: SUBDIRS 新增 ./libplc
|
2026-07-10 15:42:18 +08:00 |
ypc
|
105db095f4
|
feat(libiec): IEC 60870-5-104 服务端模块 — 5文件/700行
## 模块结构
- iec104.h: 公共头 (MAX_IEC_NUM=3 slot复用/辅助类型)
- iec104_cfg.h: XML点表配置声明 (6类信号stru_iec_sig)
- iec104.cpp: 核心 (CS10x初始化/slot管理/全部26个回调/收发桥/线程)
- iec104_cfg.cpp: tinyxml2解析iec1014.xml
- iec104_point.cpp: 数据中心桥 (信号link+变化回调→环形缓冲)
## 回调覆盖
时间/COI/总召YX/YC/DD/扰动YC/SOE/扰动DD/故障/YK/Param/文件 — 14类26个
## 数据流
com_router(MQ_COM_TO_IEC)→iec104_data_rx→CS10x_DoRecv→callbacks→datacenter
iec104_data_tx→MQ_IEC_TO_COM→com_router→TCP:2404
## 框架集成
- app_modules.h: 启用IEC行
- app_msg_queue.h: 新增COM_TO_IEC+IEC_TO_COM
- mySystem.h: 新增EV_IEC_RX_COM+EV_COM_RX_IEC
- makefile: libiec.a + RTU链接-liec
- 测试命令: iec info/reset (CMD_REGISTER_C)
|
2026-07-10 11:08:37 +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 |
ypc
|
3dd52d2202
|
feat(libweb_server): Web 管理服务模块(3 文件拆分 + 单线程 + EV_STOP)
基于原工程 libweb_server 重构,核心改进:
- 双线程 → 单线程: mg_mgr_poll 合入 X-Macro 框架 EV_TIMER1
- 无停止机制 → EV_STOP 优雅退出
- 1500 行 → ~650 行(3 文件拆分: web_server.cpp/ws_method.cpp)
- 端口: http://0.0.0.0:8080, WebSocket: /ws
- 信号 CRUD: add/del/set × 5 种信号类型
- 增量推送: EV_TIMER2 每 100ms 对比 last_val
- 异步命令通道 + 文件上传/下载 + 远程命令执行
注册: app_modules.h + system/makefile + copy_headers.sh + RTU/makefile
构建: x86 + ARM 全通过,零警告
|
2026-07-08 17:57:17 +08:00 |
ypc
|
447443a6e5
|
refactor(system): 迁移至 X-Macro 框架 + app_config.json 启停控制
- 新增 app_modules.h: X-Macro 模块中心化列表(当前仅 modbus_m)
- 重写 mySystem.h: 移除旧 app_module_register API,新增:
* enum_app: 通过 app_modules.h X-Macro 自动生成
* extern 声明: 通过 app_modules.h 自动生成全部 init1/init2/run
* stru_app: 增加 p_event/timer[3]/rtx/run_cnt(对齐原工程)
- 新增 app_sys.cpp (替换 app_modules.c):
* 读取 app_config.json → 按 enable:true/false 启停模块
* 自动为每个模块创建 3 级定时器 (10ms/100ms/1000ms) + 事件
* X-Macro 展开 g_vec_app 初始化列表
- 新增 app_config.json: {"apps":[{"name":"app_modbus_m","enable":true}]}
- 删除 app_modules.c: 旧的动态注册框架
|
2026-07-08 16:38:10 +08:00 |