# 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.cpp`（34项全通过） | ✅ |
| x86 编译验证 | 10/10 模块全通过 | ✅ |
| ARM 交叉编译验证 | 10/10 模块全通过 | ✅ |

## 阶段 2：通讯与协议

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

## 阶段 2：通讯与协议（续）

| 任务 | 模块 | 状态 |
|------|------|:----:|
| ICP67 自定义协议库 | `libicp67`（纯C，4文件: frame+decode+core+headers） | ✅ |
| 自协议应用层模块 | `libself_ptl`（C++，3文件: core+cfg+cb + 2 headers） | ✅ |
| 通信路由中枢 | `libcom_router`（C++，3文件: core+dispatch+header, bind_app协议绑定路由） | ✅ |
| ICP67 单元测试 | `test_icp67.c`（21 项全通过） | ✅ |
| IEC-104 服务端模块 | `libiec`（5文件: iec104.cpp+cfg.cpp+point.cpp+2 headers, 26个CS10x回调） | ✅ |
| 通信路由中枢 bind_app | `libcom_router`（dispatch_cb 注册表, 通道配置 bind_app 协议绑定） | ✅ |

## 阶段 2：v3.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 | ✅ |
| 代码格式规范化 | `libiec`（3文件）— LOCAL/Tab/大括号独占行 | ✅ |
| self_ptl 测试命令 | `libself_ptl`（CMD_REGISTER_C, 9个子命令） | ✅ |
| 代码审查+修复 | `libicp67`（TI_1/TI_6边界检查, TI_3续帧修复等15项） | ✅ |
| EV_STOP 补全 | `self_ptl` + `com_router` + `modbus_m`（3模块） | ✅ |
| libiec 模块文档 | `docs/system/libiec/`（待补） | ⬜ |

## 阶段 2：v3.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.cpp`（34项） ✅  `test_comm.cpp`（17项） ✅

## 阶段 4（预留）

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