RTU_ALL_AI/COMPLETION.md

8.0 KiB
Raw Permalink Blame History

RTU_ALL_AI 开发完成事项清单

日期: 2026-07-13


阶段 0基础设施

任务 模块 状态
搭建构建系统 release/linux.mk, makefile, build.sh, copy_headers.sh
创建 myBase.h 基础定义 release/inc/myBase.h
实现侵入式链表 liblist
实现日志系统 liblog
实现基础工具函数65个 libfunc

阶段 1数据基础设施

任务 模块 状态
实现 MD5 摘要算法 libmd5
实现 xxHash 快速哈希 libmy_xxhash
实现 cJSON 解析 libcJSON
实现命令处理框架 libcmd
实现 XML 解析 libxml
实现数据中心15文件拆分 libdatacenter
实现任务调度 libtask
单元测试 test_datacenter.cpp34项全通过
x86 编译验证 10/10 模块全通过
ARM 交叉编译验证 10/10 模块全通过

阶段 2通讯与协议

任务 模块 状态
通讯抽象层 libcomm
通讯抽象层测试 test_comm.cpp17项全通过
Modbus 协议栈 libmodbus(开源库 v3.1.12,导入+日志适配)
IEC 60870-5-104 lib60870(原工程自研协议栈,导入)
Modbus 主站管理 libmodbus_m(原工程自研模块,导入+适配)
通讯通道解码 libcom_decode
Web 管理服务 libweb_server3 文件拆分单线程EV_STOP 支持)
Mongoose 网络库 libmongoose(开源库 v7.22,导入+适配)
主程序入口 RTUX-Macro 框架 + app_config.json 启停控制 + 独立 config/ 目录)

阶段 2通讯与协议

任务 模块 状态
ICP67 自定义协议库 libicp67纯C4文件: frame+decode+core+headers
自协议应用层模块 libself_ptlC++3文件: core+cfg+cb + 2 headers
通信路由中枢 libcom_routerC++3文件: core+dispatch+header, bind_app协议绑定路由
ICP67 单元测试 test_icp67.c21 项全通过)
IEC-104 服务端模块 libiec5文件: iec104.cpp+cfg.cpp+point.cpp+2 headers, 26个CS10x回调
通信路由中枢 bind_app libcom_routerdispatch_cb 注册表, 通道配置 bind_app 协议绑定)

阶段 2v3.1 修复与增强2026-07-10

任务 模块 状态
修复死锁(持锁回调) libdatacenter — dc_async_timeout_check
修复线程安全static string libdatacenter — dc_get_type_name → thread_local
修复队列无上限 libdatacenter — event queues MAX_SIZE=1024
修复回路阻断竞态 libdatacenter — dirty_by_multi 标志
补全值范围校验 libdatacenter — dc_check_val_valid 12种数值类型 min/max
补全strcmp比较 libdatacenter — C8/C32/C64/C128/STR 用 strcmp
代码格式规范化 libiec3文件— LOCAL/Tab/大括号独占行
self_ptl 测试命令 libself_ptlCMD_REGISTER_C, 9个子命令
代码审查+修复 libicp67TI_1/TI_6边界检查, TI_3续帧修复等15项
EV_STOP 补全 self_ptl + com_router + modbus_m3模块
libiec 模块文档 docs/system/libiec/(待补)

阶段 2v3.2 WSL 本地测试准备2026-07-13

任务 模块 状态
新增 tcp_client 通道解析 com_router — JSON 解析 + 默认配置支持 COMM_TYPE_TCP_CLIENT
新增 FTU 网口通道配置 config/CHANNEL/channel_cfg.json — tcp_ftu (127.0.0.1:54321 TCP 客户端)
编译脚本增强 release/build.sh — 编译前删除旧 RTU, 编译后拷贝到 config 同级目录
x86 编译验证 全量编译通过, RTU 可正常启动到 RTU> 提示符

阶段 3系统集成

阶段 3系统集成

任务 模块 状态
端到端集成测试
README 文档

缺失测试的模块

模块 应写测试 优先级
liblist test_list.c 低(头文件宏,无运行时逻辑)
liblog test_log.c
libfunc test_func.c
libmd5 test_md5.c 低(算法标准,验证向量固定)
libcJSON test_cjson.c
libmy_xxhash test_xxhash.c 低(算法标准)
libtask test_task.c
libxml test_xml.c thin wrapper over tinyxml2
libcmd test_cmd.c

已有测试: test_datacenter.cpp34项 test_comm.cpp17项

阶段 4PLC 遥测运算 + 前端增强2026-07-15

4.1 后端 — PLC 遥测运算引擎

任务 模块 状态
新增 6 个 MX 节点类型 (50-56) libplc — ADD/SUB/MAX/MIN/MUL/DIV/ABS
新增 MX_CMP 比较元件 (57) libplc — A>B→1, 否则→0
7 个 MX execute 函数 libplc — add/sub/max/min/mul/div/abs/cmp
dst_pin 引脚排序通用化 libplc — 从 SR/RS 扩展到所有多输入门
MX 输出信号 F32 注册 libplc — plc.mx.out.0~19, DATA_TYPE_F32
减法改为有符号 a-b libplc — 原为 |a-b|,改为 a-b可负数
修复重复 MX float 写入块 libplc — plc_set_out_by_id 去重
更新 dst_pin 注释 libplc — 0=A/S, 1=B/R
XML 配置持久化 libweb_server — dc_save_out_signals_xml

4.2 前端 — PLC 配置页面

任务 模块 状态
合并运算符按钮 plc_config.js — 遥信/遥测运算 → 统一 "运算符"
MX 引脚 A/B 标注 plc_config.js — drawGraphContent 画布引脚标签
MX inMax 限制为 2 plc_config.js — ADD~DIV 固定 2 输入ABS 固定 1
MX 信息弹窗 plc_config.js — showMXInfoModal引脚来源+顺序警告)
修复编辑加载备份 Bug plc_config.js — indexOf → endsWith 精确匹配
信号行 入/出 按钮 plc_config.js — 每行信号增加 [入][出] 独立按钮
新增运算符面板 plc_config.js — 18 种运算符侧栏,点击即添加
Canvas 字体增大 plc_config.js — 全节点字号+2~3px节点尺寸+10px
信号面板加宽 plc_config.js — 230→290px, 运算符面板 150→160px

4.3 前端 — PLC 调试页面

任务 模块 状态
三列堆叠布局 plc_debug.js — 左(遥信入+遥测入) | 中(信号表) | 右(遥信出+遥测出)
遥信输入按钮翻转 plc_debug.js — 点击按钮 0↔1发送 WS set 命令
遥信输出 LED 指示 plc_debug.js — >0 亮绿灯≤0 灭
遥测输入设值框 plc_debug.js — 输入框+[设置]按钮,显示当前值(括号)
遥测输出值展示 plc_debug.js — 实时显示浮点值
箭头按钮全称+对齐 plc_debug.js — ←遥信输入/遥信输出→space-between
信号表 #序号+大字 plc_debug.js — 增加序号列font-size 12px去除截断
修复 MX 设置不发送 plc_debug.js — 移除 WsClient.send 返回值误判
CSS 三列 Grid style.css — 1fr 1.2fr 1fr + .plc-block 堆叠

4.4 Git 记录

提交 内容
4edabf2 feat: PLC遥测运算完善 + 调试页五区布局 + 比较元件 + MX输出注册
4f07275 fix: MX设置按钮修复 + 信号面板加宽 + Canvas字号增大

4.5 编译状态

  • x86 全量编译: 0 错误
  • JS 语法检查: plc_config.js + plc_debug.js 均通过

阶段 5预留

ICP67 / IEC61850 MMS / MQTT / 嵌入式HTTP / 内部协议 —— 全部