HL.MCP.Core 2.0.9
HL.MCP.Core
HL.MCP.Core 是一个跨平台的消息通信平台框架核心库,提供设备管理、进程调度、服务管理等核心功能。支持 .NET Framework 4.6.1 和 .NET Standard 2.0,可以在 Windows、Linux、macOS 等平台上运行。
功能特性
核心接口
- IService - 服务接口,定义服务的生命周期和数据访问方法
- IProcess - 进程接口,定义进程的状态管理和处理逻辑
- IDeviceManager - 设备管理器接口,提供设备资源管理
- IProcessDispatcher - 进程调度器接口
- IServiceDispatcher - 服务调度器接口
- IProtocolParse - 协议解析器接口
数据结构和消息
- Message - 消息数据结构,包含解析状态、命令和参数
- StateItem - 状态项,用于进程间状态传递
- LogEventArgs - 日志事件参数
- LogLevel - 日志级别枚举
- MCPException - 框架自定义异常
配置管理
- Configuration - 主配置类,支持 XML 配置文件加载
- ServiceConfig - 服务配置
- ProcessConfig - 进程配置
- ProcessItemConfig - 进程项配置
- DeviceConfig - 设备配置
- ResourceConfig - 资源配置
- ResourceConfiguration - 资源配置集合
- ConfigUtil - 配置工具类
集合管理
- AttributeCollection - 属性集合
- ProcessCollection - 进程集合
- RelationCollection - 关系集合
- ServiceCollection - 服务集合
核心业务逻辑
- AbstractProcess - 抽象进程基类
- AbstractService - 抽象服务基类
- Context - 上下文管理,提供框架运行环境
- ContextInitialize - 上下文初始化器
- DefaultDispatcher - 默认调度器
- Dispatcher - 调度器基类
- DeviceManager - 设备管理器实现
- ObjectFactory - 对象工厂
- ObjectUtil - 对象工具类
- ProcessState - 进程状态枚举
- Resource - 资源管理
事件系统
- Logger - 静态日志记录器
- StateChangedArgs - 状态变化事件参数
- StateChangedEventHandler - 状态变化事件处理器
安装
通过 NuGet 包管理器
dotnet add package HL.MCP.Core
通过 Package Manager Console
Install-Package HL.MCP.Core
使用示例
基本服务实现
using HL.MCP;
public class MyService : AbstractService
{
public override string Name { get; set; } = "MyService";
public override void Initialize(string fileName)
{
// 初始化服务
Logger.Info($"服务 {Name} 初始化完成");
}
public override void Start()
{
// 启动服务
Logger.Info($"服务 {Name} 已启动");
}
public override void Stop()
{
// 停止服务
Logger.Info($"服务 {Name} 已停止");
}
public override object Read(string itemName)
{
// 读取数据
return GetData(itemName);
}
public override bool Write(string itemName, object state)
{
// 写入数据
return SetData(itemName, state);
}
}
基本进程实现
using HL.MCP;
public class MyProcess : AbstractProcess
{
public override string Name { get; set; } = "MyProcess";
public override void Initialize(Context context)
{
// 初始化进程
Logger.Info($"进程 {Name} 初始化完成");
}
public override void Process(StateItem stateItem)
{
// 处理状态项
Logger.Debug($"处理状态项: {stateItem.ItemName} = {stateItem.State}");
}
}
配置加载
using HL.MCP.Config;
var config = new Configuration();
config.Load("config.xml");
// 访问配置
foreach (var service in config.Services)
{
Console.WriteLine($"服务: {service.Name}, 类型: {service.Type}");
}
foreach (var process in config.Processes)
{
Console.WriteLine($"进程: {process.Name}, 类型: {process.Type}");
}
日志记录
using HL.MCP;
// 设置日志级别
Logger.LogLevel = LogLevel.DEBUG;
// 注册日志事件处理器
Logger.OnLog += (args) => {
Console.WriteLine($"[{args.LogLevel}] {args.Message}");
};
// 记录日志
Logger.Debug("调试信息");
Logger.Info("信息日志");
Logger.Warn("警告信息");
Logger.Error("错误信息");
消息处理
using HL.MCP;
using System.Collections.Generic;
// 创建消息
var parameters = new Dictionary<string, string>
{
["param1"] = "value1",
["param2"] = "value2"
};
var message = new Message(true, "TestCommand", parameters);
// 访问消息属性
Console.WriteLine($"命令: {message.Command}");
Console.WriteLine($"已解析: {message.Parsed}");
foreach (var param in message.Parameters)
{
Console.WriteLine($"{param.Key}: {param.Value}");
}
系统要求
- .NET Framework 4.6.1 或更高版本
- .NET Standard 2.0 兼容平台
- 支持 Windows、Linux、macOS 等操作系统
架构设计
分层架构
- 接口层 - 定义核心抽象接口
- 数据层 - 提供数据结构和消息格式
- 配置层 - 处理配置管理和加载
- 集合层 - 提供各种集合管理
- 核心层 - 实现核心业务逻辑
- 事件层 - 提供事件和日志系统
设计模式
- 工厂模式 - ObjectFactory 用于对象创建
- 观察者模式 - 事件系统实现
- 策略模式 - 可插拔的服务和进程实现
- 单例模式 - Logger 静态实例
扩展性
自定义服务
继承 AbstractService 类并实现必要的方法:
Initialize()- 初始化服务Start()- 启动服务Stop()- 停止服务Read()- 读取数据Write()- 写入数据
自定义进程
继承 AbstractProcess 类并实现必要的方法:
Initialize()- 初始化进程Process()- 处理状态项Start()- 启动进程Stop()- 停止进程
相关项目
- HL.MCP - Windows Forms 扩展库,提供 UI 组件
- HL.MCP.Service.Beckhoff - Beckhoff 服务实现
- HL.MCP.Service.Siemens - Siemens 服务实现
- HL.MCP.Service.Modbus - Modbus 服务实现
许可证
MIT License
Copyright © 2025 贵州慧联科技有限公司
技术支持
如有问题或建议,请联系技术支持团队或访问项目仓库。
Showing the top 20 packages that depend on HL.MCP.Core.
| Packages | Downloads |
|---|---|
|
HL.AbOPC
HL.AbOPC 是一个用于 Allen-Bradley PLC 通信的 OPC 客户端库,基于 libplctag 实现。
|
0 |
|
HL.AdsOPC
Beckhoff ADS OPC 通信组件,用于与 Beckhoff PLC 进行数据通信。支持 OPC DA 数据访问、自动数据变化监控、多种数据类型读写等功能。
|
0 |
|
HL.InovanceOPC
汇川 OPC 通信组件,用于与汇川 H5U 系列 PLC 进行数据通信。支持 Modbus TCP 协议、自动数据变化监控、多种数据类型读写等功能。
|
0 |
|
HL.MCP
HL.MCP 是一个基于 Windows Forms 的消息通信平台框架,提供设备可视化、进程监控等 Windows 特定功能。依赖 HL.MCP.Core 提供核心功能。
|
0 |
|
HL.S7OPC
西门子 S7 OPC 通信组件,支持 S7-200/300/400/1200/1500 系列 PLC。
|
0 |
.NET Framework 4.6.2
- No dependencies.
| Version | Downloads | Last updated |
|---|---|---|
| 2.0.9 | 0 | 08/19/2026 |