## 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 |
||
|---|---|---|
| .. | ||
| protocol | ||
| public | ||
| system | ||
| README.md | ||
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 中文