RTU_ALL_AI/docs
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
..
protocol feat(libplc): PLC 逻辑引擎模块 + 文档补全 + 计划同步 2026-07-10 15:42:18 +08:00
public docs: 更新 COMPLETION + libdatacenter API 文档 v3.1 2026-07-10 14:40:04 +08:00
system feat(libplc): PLC 逻辑引擎模块 + 文档补全 + 计划同步 2026-07-10 15:42:18 +08:00
README.md feat(libplc): PLC 逻辑引擎模块 + 文档补全 + 计划同步 2026-07-10 15:42:18 +08:00

README.md

RTU_ALL_AI API 参考文档

生成日期: 2026-07-07
项目: RTU_ALL_AI — C/C++ 嵌入式通讯装置示例工程


文档索引

基础公共库 (public/)

模块 文档 语言 说明
myBase.h API-myBase.md C 头文件 公共宏、类型常量、字节序转换
liblist API-liblist.md 纯 C 头文件 侵入式双向循环链表
liblog API-liblog.md 纯 C 异步日志系统
libfunc API-libfunc.md 纯 C 65 个基础工具函数
libmd5 API-libmd5.md 纯 C MD5 消息摘要 (RFC 1321)
libtask API-libtask.md 纯 C 定时器 + 事件 + 消息队列
libdatacenter API-libdatacenter.md C 接口+C++ 内部 信号数据中心5种信号+事件队列)
libcJSON API-libcJSON.md 纯 C (开源库) JSON 解析/生成
libmy_xxhash API-libmy_xxhash.md 纯 C (开源库) xxHash 快速哈希
libxml API-libxml.md C 接口+C++ 内部 XML 解析C接口包裹 tinyxml2
libcmd API-libcmd.md C 接口+C++ 内部 命令注册/补全 + 内置 linenoise
libcomm API-libcomm.md C 接口+C++ 内部 TCP/UDP/UART 通讯抽象层

通讯与协议库 (protocol/)

模块 文档 语言 说明
libmodbus API-libmodbus.md C (开源库) Modbus 协议栈 v3.1.12
lib60870 API-lib60870.md C (自研) IEC 60870-5-101/103/104 协议栈
libicp67 API-libicp67.md 纯 C ICP67 自定义协议(帧解析+编解码+核心逻辑)
libmongoose API-libmongoose.md C (MIT 开源) HTTP/WebSocket 嵌入式网络库 v7.22

系统模块 (system/)

模块 文档 语言 说明
RTU API-RTU.md C + C++ 主程序入口、X-Macro 框架、模块生命周期
libiec API-libiec.md C 接口+C++ 内部 IEC-104 服务端26回调+环形缓冲+数据中心桥接)
libcom_router API-libcom_router.md C++ 通信路由中枢(转发规则+协议绑定 dispatch
libmodbus_m API-libmodbus_m.md C++ Modbus 主站管理(通道/点表/轮询/写入)
libself_ptl API-libself_ptl.md C++ 内部自定义协议应用层多FTU帧组装+文件操作)
libweb_server API-libweb_server.md C++ Web 管理服务HTTP + WebSocket 实时推送)
                         ┌──────────┐
                         │ myBase.h │  (颜色/大小端/类型常量)
                         └────┬─────┘
               ┌──────────────┼──────────────┐
               ▼              ▼              ▼
          ┌─────────┐   ┌─────────┐   ┌──────────┐
          │ liblist │   │ libfunc │   │  libmd5  │
          │ (链表)  │   │ (65函数)│   │  (MD5)   │
          └────┬────┘   └────┬────┘   └──────────┘
               │              │
               ▼              ▼
          ┌─────────────────────────┐
          │         liblog          │  (异步日志)
          │  (消息池+批量+文件轮转) │
          └─────────────────────────┘

          ┌──────────┐   ┌──────────────┐
          │ libcJSON │   │ libmy_xxhash │  (开源库)
          └──────────┘   └──────┬───────┘
                                │
          ┌─────────────────────┼─────────────────────┐
          │                     ▼                     │
          │  ┌──────────┐  ┌──────────┐  ┌─────────┐ │
          │  │ libtask  │  │ libxml   │  │ libcmd  │ │  (P2库提前实现
          │  │ (事件/   │  │ (C接口+  │  │ (命令   │ │   供datacenter
          │  │  定时器) │  │  tinyxml2)│  │  框架)  │ │   依赖)
          │  └──────────┘  └────┬─────┘  └────┬────┘ │
          │                    │              │      │
          │                    ▼              ▼      │
          │          ┌─────────────────────────────┐ │
          │          │        libdatacenter        │ │
          │          │  (信号数据中心 5种信号类型) │ │
          │          │  依赖: libxml + libcmd      │ │
          │          │        + libmy_xxhash       │ │
          └──────────┴─────────────────────────────┘

                         ┌──────────┐
                         │ myBase.h │
                         └────┬─────┘
                              │
                              ▼
                    ┌──────────────────┐
                    │     libcomm      │  (通讯抽象层)
                    │ TCP/UDP/UART     │  阶段 2 首个模块
                    │ epoll 异步事件   │
                    └────┬───┬────┬────┘
                         │   │    │
              ┌──────────┼───┘    └──────────┐
              ▼          ▼                   ▼
        ┌──────────┐ ┌──────────┐     ┌────────────┐
        │libmodbus │ │lib60870  │ ... │libweb_server│ (协议栈)
        │ (Modbus) │ │(IEC104)  │     │ (Web 管理) │
        └──────────┘ └──────────┘     └────────────┘

构建与编译

cd release
./build.sh          # x86 本地编译
./build.sh arm      # ARM 交叉编译

编码规范

详见项目内存 /memories/code-style.md

  • 一行一语句,{} 独占行,} 后空行,return 前空行
  • 运算符前后空格(a + b, x << 8),逗号分号后空格
  • 结构体 stru_ 前缀,枚举 enum_ 前缀
  • 注释使用 UTF-8 中文