插件机制概述
ToolBank 采用 C++ DLL 插件架构,允许用户开发自定义算法算子并集成到系统中。
架构设计
核心组件
| 组件 | 命名空间 | 职责 |
|---|---|---|
ToolBaseNative | DLJ::VT | 插件基类,定义输入输出框架 |
ToolFactory | DLJ::VT | 算子注册工厂 |
ExportDll | extern "C" | C 接口导出,供 C# P/Invoke |
ProjectControl | DLJ::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等
插件分类
内置插件示例
| 插件名 | 说明 |
|---|---|
Plugin.CV | 计算机视觉算子(OpenCV) |
Plugin.DL | 深度学习推理算子 |
Plugin.Finance | 金融数据处理算子 |
ToolBase | 基础算子(控制流/变量/数学) |
插件包结构
Plugin.Example/
├── Tools/
│ ├── ExampleTool.cpp # 算子实现
│ ├── ExampleTool.h
│ └── Plugin.Example.dll # 编译输出
├── Resource/
│ └── icon.png # 插件图标(可选)
├── manifest.json # 插件描述文件
└── Plugin.Example.zip # 打包发布
manifest.json 格式
{
"plugin_id": "Plugin.Example",
"display_name": "示例插件",
"version": "1.0.0",
"vendor": "YourCompany",
"description": "示例插件描述",
"entry_dll": "Plugin.Example.dll",
"min_host_version": "1.0.0.371",
"min_toolbase_version": "1.0.0.20",
"author": "Developer"
}