mz-automation/lib60870
GitHub: mz-automation/lib60870
lib60870 是一个用 C 语言实现的 IEC 60870-5-101/104 工业电力通信协议库,为 SCADA 和电力自动化系统提供规约层面的通信支持。
Stars: 584 | Forks: 298
# README lib60870-C {#mainpage}
lib60870 是一个用于基于 IEC 60870-5 协议的 C 语言库
目前的实现包含针对 IEC 60870-5-101(应用层和串行链路层)和 IEC 60870-5-104(基于 TCP/IP 的协议)规范的代码。
特性:
## 编译和运行示例:
在 lib60870-C 文件夹中,使用以下命令构建库:
`make`
进入 examples 文件夹,并在每个示例目录中
使用以下命令构建示例:
`make`
该库和示例也可以使用 _CMake_ 进行构建。
要在单独的文件夹中构建该库,请在项目文件夹下创建一个新的子文件夹,
并运行 cmake 来生成构建文件:
`mkdir build`
`cd build`
`cmake ..`
## 不包含通用代码和 HAL 进行构建
该库包含一些通用代码和一个平台抽象层 (HAL),它们与
MZ Automation 的其他协议库(例如 libiec61850)共享。为了简化这些
协议库的配合使用,可以在编译该库时不包含这些通用部分。
这可以在调用 make 时通过使用 *WITHOUT_HAL* 和 *WITHOUT_COMMON* 定义来实现:
`make WITHOUT_HAL=1 WITHOUT_COMMON=1`
## 库配置
有不同的运行时和编译时配置选项。
编译时配置选项可用于为小型嵌入式系统缩减该库的体积。可以通过修改 _config/lib60870_config.h_ 文件来更改编译时配置。
## 内存分配
该库使用动态内存分配(通过自有函数封装的 malloc/calloc,在需要时可以替换)。
CS104 从站仅在启动时(即调用 _CS104_Slave_create_ 和
_CS104_Slave_start_/_CS104_Slave_startThreadless_ 函数时)使用动态内存分配。
有关详细信息,请查阅 _用户指南_。
## 联系方式:
该库由 Michael Zillgith 开发,并由 MZ Automation GmbH 提供支持。
## 许可
该软件可在 GPLv3 (https://www.gnu.org/licenses/gpl-3.0.en.html) 和商业许可协议下进行双重许可。
当在商业和非 GPL 应用程序中使用该库时,您应该购买商业许可。
标签:Bash脚本, 客户端加密, 并发处理