lib60870 开源项目使用教程
项目地址:https://gitcode.com/gh_mirrors/li/lib60870
1. 项目的目录结构及介绍
lib60870 是一个实现 IEC 60870-5-101/104 协议的开源项目。项目的目录结构如下:
lib60870/
├── CMakeLists.txt
├── LICENSE
├── README.md
├── include/
│ ├── lib60870-common.h
│ ├── lib60870-internal.h
│ ├── lib60870-server.h
│ ├── lib60870-client.h
│ └── ...
├── src/
│ ├── common/
│ │ ├── common.c
│ │ └── ...
│ ├── server/
│ │ ├── server.c
│ │ └── ...
│ ├── client/
│ │ ├── client.c
│ │ └── ...
│ └── ...
├── examples/
│ ├── server_example.c
│ ├── client_example.c
│ └── ...
└── tests/
├── test_common.c
├── test_server.c
└── ...
目录介绍
CMakeLists.txt
: 用于构建项目的 CMake 配置文件。LICENSE
: 项目的许可证文件。README.md
: 项目的基本介绍和使用说明。include/
: 包含项目的头文件。src/
: 包含项目的源代码文件。examples/
: 包含示例代码,展示如何使用该项目。tests/
: 包含项目的测试代码。
2. 项目的启动文件介绍
项目的启动文件通常位于 examples/
目录下。以下是一些常见的启动文件:
server_example.c
: 服务器示例代码,展示如何启动一个 IEC 60870-5-101/104 服务器。client_example.c
: 客户端示例代码,展示如何启动一个 IEC 60870-5-101/104 客户端。
启动文件示例
以下是 server_example.c
的部分代码示例:
#include "lib60870-server.h"
int main(int argc, char** argv) {
// 创建服务器实例
CS104_Server server = CS104_Server_create();
// 配置服务器参数
CS104_Server_setLocalPort(server, 2404);
// 启动服务器
CS104_Server_start(server);
if (CS104_Server_isRunning(server)) {
printf("Server is running and listening on port 2404\n");
}
// 主循环
while (1) {
// 处理服务器事件
CS104_Server_handleEvents(server);
}
// 停止服务器
CS104_Server_stop(server);
// 释放服务器资源
CS104_Server_destroy(server);
return 0;
}
3. 项目的配置文件介绍
lib60870 项目通常不需要外部配置文件,因为大部分配置可以通过代码进行设置。以下是一些常见的配置项:
服务器配置
CS104_Server_setLocalPort(server, 2404)
: 设置服务器监听的端口号。CS104_Server_setMaxQueueSize(server, 100)
: 设置服务器事件队列的最大大小。
客户端配置
CS104_Client_setLocalPort(client, 2404)
: 设置客户端连接的本地端口号。CS104_Client_setRemoteAddress(client, "127.0.0.1")
: 设置客户端连接的远程地址。
示例配置
以下是 client_example.c
的部分代码示例:
#include "lib60870-client.h"
int main(int argc, char** argv) {
// 创建客户端实例
CS104_Client client = CS104