跳到主要内容
版本:1.0.0

插件机制概述

ToolBank 采用 C++ DLL 插件架构,允许用户开发自定义算法算子并集成到系统中。

架构设计​

核心组件​

组件命名空间职责
ToolBaseNativeDLJ::VT插件基类,定义输入输出框架
ToolFactoryDLJ::VT算子注册工厂
ExportDllextern "C"C 接口导出,供 C# P/Invoke
ProjectControlDLJ::VT程序/作业/变量管理器

工作流程​

数据类型支持​

基本类型​

  • INTEGER - 整数
  • DOUBLE - 浮点数
  • STRING - 字符串
  • BOOL - 布尔值

图像类型​

  • IMAGE - 2D 图像(支持 CV_8U/CV_16U/CV_32F 等)

几何类型​

  • POINT2D / POINT3D - 点
  • LINE2D - 直线
  • RECTANGLE2D - 矩形
  • CIRCLE2D - 圆形
  • POLYGON2D - 多边形
  • REGION - 区域集合

容器类型​

所有类型均支持 List(批量)模式,通过 v 前缀区分:

  • vDOUBLE, vIMAGE, vPOINT2D 等

插件分类​

内置插件示例​

插件名说明
基础工具(ToolBase)控制流 / 变量 / 数学 / 文件 IO 等 50+ 基础算子
Plugin.CV图像处理算子(滤波 / 阈值 / 边缘 / 形态学 / 几何变换 / 模板匹配 / 连通域等 30+)
Plugin.DL深度学习推理算子(分类 / 检测 / 分割 / YOLOv5 / PaddleOCR)
Plugin.Camera相机采集
Plugin.Calibration相机标定 / 去畸变
Plugin.Finance金融数据(CSV 读取 / 收益计算)

各类内置算子的用户视角选型指南见 工具与算子库。

插件包结构​

Plugin.Example/
├── Tools/
│ ├── ExampleTool.cpp # 算子实现
│ ├── ExampleTool.h
│ └── Plugin.Example.dll # 编译输出
├── Resource/
│ └── icon.png # 插件图标(可选)
├── manifest.json # 插件描述文件
└── Plugin.Example.zip # 打包发布

manifest.json 格式(工具插件)​

工具插件 manifest 使用 camelCase 字段,category 标识插件类型:

{
"pluginId": "Plugin.Example",
"displayName": "示例插件",
"version": "1.0.0.21",
"category": "ToolPlugin",
"entryDll": "Plugin.Example.dll",
"apiVersion": 1,
"minHostVersion": "1.0.0.371",
"minToolBaseVersion": "1.0.0.101",
"toolBaseAbiVersion": "1.0.0.101",
"vendor": "YourCompany",
"description": "示例插件描述"
}

插件类型:category=ToolPlugin 为 C++ 工具插件(本页所述);category=ControlPlugin 为 C# 控件插件,二者安装目录、状态文件与生命周期完全隔离,详见 控件插件开发。