No description
- tools/coordinator: PCS 协调控制器源码 + CMake 目标 - 测试程序点表: Trina_PCS.scd / GOOSE 点位描述 - patches/libiec61850: 上游库本地修改的可重放 patch(sc501.c 生成物除外,由 ICD 再生) - .gitignore: 忽略 data/(向量库与日志等运行时产物) |
||
|---|---|---|
| deploy | ||
| include/iec_bus | ||
| patches/libiec61850 | ||
| sdk | ||
| src | ||
| tests | ||
| tools | ||
| 测试程序点表 | ||
| .gitignore | ||
| CMakeLists.txt | ||
| CMakePresets.json | ||
| CMakeUserPresets.json | ||
| conanfile.py | ||
| mms从站设计方案.md | ||
| README.md | ||
| 规约栈接入指南.md | ||
iec_bus
iec_bus 是基于 libiec61850 的 IEC 61850 协议栈工程(C++17)。
模块
core/iec_bind— UDS 服务端监听(libuv,多连接,回调)core/iec_client— UDS 客户端(连接、回调)type/iec_type— flatbuffers 消息定义与帧协议(4 字节大端长度前缀分帧)registry/iec_registry— 常驻注册服务:客户端注册协议(如 GOOSE 发布端)→ 服务端分配独立隧道 UDS 地址 → 协议消息走隧道
依赖
- boost/1.89.0(header-only)
- libuv/1.51.0
- fmt/11.2.0
- flatbuffers/25.12.19(fbs 定义在
include/iec_bus/type/iec_type.fbs,构建时用 flatc 生成iec_type_generated.h) - gtest/1.17.0(测试)
- libiec61850(本地子工程,
../libiec61850)
构建
# 1. 安装依赖(首次或依赖变更后)
conan install . --output-folder=build/debug -s build_type=Debug --build=missing
# 2. 配置 + 构建
cmake -S . -B build/debug -DCMAKE_TOOLCHAIN_FILE=build/debug/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=ON
cmake --build build/debug -j$(nproc)
# 3. 运行 / 测试
./build/debug/iec_bus
ctest --test-dir build/debug --output-on-failure
Release 构建将 build/debug 与 build_type=Release 对应替换即可。
运行
# 终端 1:启动常驻注册服务(默认监听 /tmp/iec_bus.sock)
./build/debug/iec_bus
# 终端 2:验证程序(注册 4 种协议 → 隧道收发 → 关闭)
./build/debug/iec_bus_reg_test