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