Skip to content

Engine组件概览

概述

Engine 目录包含了 ColorVision 系统的核心算法引擎和处理组件,负责图像处理、设备管理、流程控制和数据处理等核心功能。Engine 层是整个系统的数据处理和逻辑控制中心。

基本信息

  • 主要功能: 核心算法引擎、流程管理、设备服务、数据处理
  • 技术栈: .NET 8.0/10.0、OpenCV、MQTT、SqlSugar
  • 架构模式: 模块化、服务化、插件化
  • 扩展性: 支持自定义算法模块和设备驱动

核心组件列表

算法引擎组件

1. ColorVision.Engine

核心流程引擎和服务管理器

  • 主要功能:
    • 流程设计和执行管理
    • 设备服务协调
    • 模板系统管理
    • 数据库操作封装
  • 关键特性:
    • 可视化流程设计器
    • 设备服务自动发现
    • 模板参数化配置
    • 实时状态监控
  • 版本: 1.4.2.1

2. cvColorVision

视觉处理核心模块(C# 封装库)

  • 主要功能:
    • 相机控制与图像采集
    • 色彩空间转换(XYZ/xy/uv)
    • 设备通信(TCP/串口)
    • 图像算法(AOI、OLED、光谱)
  • 关键特性:
    • C# P/Invoke 封装
    • 底层 C++ DLL(cvCamera.dll、cvOled.dll)
    • OpenCV 基础(底层实现)
  • 版本: 2025.8.9.0

3. ColorVision.FileIO

文件输入输出处理模块

  • 主要功能:
    • CVRaw/CVCIE 文件读写
    • 标准图像格式支持
    • 批量文件处理
    • 异步IO操作
  • 关键特性:
    • 多格式支持
    • 异步IO操作
    • 数据验证
    • 错误恢复机制
  • 版本: 1.3.12.24

支撑组件

4. FlowEngineLib

流程引擎核心库

  • 主要功能:
    • 流程节点管理
    • 执行引擎
    • 数据流控制
    • MQTT通信集成
  • 关键特性:
    • 动态节点加载
    • 并行执行支持
    • 流程调试功能
    • 状态持久化
  • 版本: 1.6.1

5. ST.Library.UI

专业可视化节点编辑器UI库

  • 主要功能:
    • 可视化节点编辑器(STNodeEditor)
    • 节点系统(STNode 基类)
    • 属性编辑器(STNodePropertyGrid)
    • 节点库管理(STNodeTreeView)
  • 关键特性:
    • 拖拽式节点连接
    • 类型安全的数据流
    • 实时属性编辑
    • 撤销/重做支持
    • 多语言支持(中/英)
  • 版本: 1.2.0.2410

组件架构

组件依赖关系

核心依赖

  • ColorVision.Engine ← 依赖所有其他Engine组件
  • cvColorVision ← 被ColorVision.Engine调用
  • FlowEngineLib ← 被ColorVision.Engine和ST.Library.UI使用
  • ColorVision.FileIO ← 被ColorVision.Engine使用
  • ST.Library.UI ← 被UI层调用显示流程编辑器

外部依赖

  • OpenCV: 图像处理算法支持
  • MQTT: 设备通信协议
  • SqlSugar: 数据库ORM
  • Newtonsoft.Json: JSON数据序列化

使用指南

1. 基本集成步骤

csharp
// 初始化Engine核心服务
var engineService = new ColorVisionEngineService();
await engineService.InitializeAsync();

// 注册设备服务
engineService.RegisterDeviceService<CameraService>();
engineService.RegisterDeviceService<SpectrometerService>();

// 加载流程模板
var flowTemplate = await engineService.LoadFlowTemplateAsync("template_name");

// 执行流程
var result = await engineService.ExecuteFlowAsync(flowTemplate, parameters);

2. 自定义算法节点

csharp
public class CustomAlgorithmNode : IFlowNode
{
    public string Name => "Custom Algorithm";
    public string Description => "自定义算法处理节点";
    
    public async Task<NodeResult> ExecuteAsync(NodeContext context)
    {
        // 实现自定义算法逻辑
        var inputImage = context.GetInput<Mat>("image");
        var result = ProcessImage(inputImage);
        return NodeResult.Success(result);
    }
}

3. 设备服务集成

csharp
public class CustomDeviceService : BaseDeviceService
{
    public override string ServiceType => "CustomDevice";
    
    public override async Task<bool> ConnectAsync()
    {
        // 实现设备连接逻辑
        return true;
    }
    
    public override async Task<object> ExecuteCommandAsync(string command, object parameters)
    {
        // 实现设备命令执行
        return await ProcessCommandAsync(command, parameters);
    }
}

开发建议

1. 架构原则

  • 模块化设计: 每个组件职责单一,接口清晰
  • 可扩展性: 支持插件化扩展和自定义组件
  • 高性能: 关键算法采用C++实现,支持多线程和CUDA加速
  • 容错设计: 完善的异常处理和错误恢复机制

2. 最佳实践

  • 使用依赖注入管理组件生命周期
  • 实现异步操作避免UI阻塞
  • 采用事件驱动模式处理设备状态变化
  • 定期性能监控和内存管理

3. 性能考虑

  • 大图像处理使用内存映射文件
  • 关键路径避免不必要的对象分配
  • 合理使用线程池和任务调度
  • 数据库操作使用连接池和批量处理

4. 扩展开发

  • 新算法节点继承IFlowNode接口
  • 自定义设备服务继承BaseDeviceService
  • 使用属性特性标记节点参数
  • 实现ITemplate接口创建自定义模板

版本兼容性

当前版本

  • 稳定版本: 1.4.2.1
  • 目标框架: .NET 8.0 / .NET 10.0 Windows
  • 最低系统要求: Windows 10, OpenCV 4.x

升级指南

  1. 检查算法API兼容性
  2. 更新设备服务接口
  3. 验证流程模板格式
  4. 测试核心算法功能
  5. 检查数据库架构变更

相关资源

目录索引

组件内部READMEAPI文档
ColorVision.EngineREADMEAPI Doc
cvColorVisionREADMEAPI Doc
ColorVision.FileIOREADMEAPI Doc
FlowEngineLibREADMEAPI Doc
ST.Library.UIREADMEAPI Doc

最后更新: 2026-04-02
文档版本: 1.0

Released under the MIT License.