diff --git a/.gitignore b/.gitignore index 53481b6..0732768 100644 --- a/.gitignore +++ b/.gitignore @@ -28,5 +28,5 @@ release/inc/ # AI 工具 CLAUDE.md -docs/ +# docs/ libiec61850/libiec61850手册/ \ No newline at end of file diff --git a/COMPLETION.md b/COMPLETION.md index 5435d9e..dbec397 100644 --- a/COMPLETION.md +++ b/COMPLETION.md @@ -1,6 +1,6 @@ # RTU_ALL_AI 开发完成事项清单 -> 日期: 2026-07-08 +> 日期: 2026-07-10 --- @@ -50,8 +50,26 @@ |------|------|:----:| | ICP67 自定义协议库 | `libicp67`(纯C,4文件: frame+decode+core+headers) | ✅ | | 自协议应用层模块 | `libself_ptl`(C++,3文件: core+cfg+cb + 2 headers) | ✅ | -| 通信路由中枢 | `libcom_router`(C++,2文件: core+dispatch + 1 header) | ✅ | +| 通信路由中枢 | `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/`(待补) | ⬜ | ## 阶段 3:系统集成 diff --git a/docs/public/libdatacenter/API-libdatacenter.md b/docs/public/libdatacenter/API-libdatacenter.md index 8208721..b3c10ce 100644 --- a/docs/public/libdatacenter/API-libdatacenter.md +++ b/docs/public/libdatacenter/API-libdatacenter.md @@ -330,3 +330,30 @@ int main(void) | 错误码 | -1/0 | enum dc_error_t | enum dc_error_t(12种) | | 命令调试 | cmd_dc | 无 | CMD_REGISTER_C(libcmd) | | 文件数 | 13 .cpp | 8 .cpp | 15 .cpp(按功能拆分) | + +### 7.1 版本历史 + +| 日期 | 版本 | 变更 | +|------|------|------| +| 2026-07-07 | v3.0 | 初始实现,对齐 RTU 原工程 v1+v2 | +| 2026-07-10 | v3.1 | Bug 修复 + 原工程功能补全(详见下表) | + +### v3.1 修复明细(2026-07-10) + +| # | 文件 | 变更 | 说明 | +|:--|------|------|------| +| 1 | `dc_async.cpp` | 🔧 死锁修复 | `timeout_check()` 持锁调回调 → 先收集列表,解锁后批量调用 | +| 2 | `dc_api_wrap.cpp` | 🔧 线程安全 | `dc_get_type_name()` `static string` → `thread_local char[32]` | +| 3 | `dc_event.cpp` | 🔧 队列防溢 | SOE/扰动/故障队列无上限 → `EVENT_QUEUE_MAX_SIZE=1024` | +| 4 | `dc_signal_out.cpp` | 🔧 回路阻断竞态 | `last_caller_module` 多模块覆盖 → 新增 `dirty_by_multi` 标志 | +| 5 | `dc_signal_check.cpp` | ➕ 值范围校验 | `dc_check_val_valid` 扩展为 12 种数值类型 min/max 范围 + bool 0/1 校验 | +| 6 | `dc_signal_check.cpp` | ➕ strcmp 替代 | `dc_check_ctrl_val_valid` 对 C8/C32/C64/C128/STR 改用 `strcmp` | +| 7 | `dc_signal_util.cpp` | ➕ 线程安全 API | 新增 `dc_internal_type_name()` buffer 版类型名称查询 | + +### 已知未完成 + +| 功能 | 优先级 | 说明 | +|------|:----:|------| +| 事件队列自动补时间戳 | 🟡 | push 时 `sec==0 && ms==0` 自动获取当前时间 | +| `dc_param_cfg_register_read_cb/save_cb` 钩子 | 🟡 | SPEC D29-D30,当前直接内置 tinyxml2 | +| `vec_p_default_data` | 🟢 | param 信号出厂默认值 |