ColorVision 项目结构
本文档详细介绍 ColorVision 项目的目录结构和各模块组成,帮助开发者快速了解项目组织方式。
📁 目录结构总览
ColorVision/
├── ColorVision/ # 主程序入口
│ ├── Assets/ # 资源文件
│ ├── Properties/ # 程序集属性
│ ├── Update/ # 更新相关
│ └── Wizards/ # 向导界面
├── Engine/ # 核心引擎层
│ ├── ColorVision.Engine/ # 主引擎模块
│ ├── cvColorVision/ # 视觉处理核心
│ ├── FlowEngineLib/ # 流程引擎库
│ ├── ColorVision.FileIO/ # 文件IO处理
│ └── ST.Library.UI/ # UI库组件
├── UI/ # 用户界面层
│ ├── ColorVision.UI/ # 主UI框架
│ ├── ColorVision.Common/ # 通用UI组件
│ ├── ColorVision.Core/ # 核心UI组件
│ ├── ColorVision.Themes/ # 主题管理
│ ├── ColorVision.ImageEditor/ # 图像编辑器
│ ├── ColorVision.Solution/ # 解决方案管理
│ ├── ColorVision.Scheduler/ # 任务调度器
│ ├── ColorVision.Database/ # 数据库UI
│ └── ColorVision.SocketProtocol/ # Socket协议
├── Plugins/ # 扩展插件层
│ ├── EventVWR/ # 事件查看器插件
│ ├── Pattern/ # 图案检测插件
│ ├── Spectrum/ # 光谱仪测试插件
│ ├── SystemMonitor/ # 系统监控插件
│ ├── ScreenRecorder/ # 屏幕录制插件
│ └── WindowsServicePlugin/ # Windows服务插件
├── Projects/ # 客户定制项目
│ ├── ProjectARVR/ # ARVR项目
│ ├── ProjectARVRLite/ # ARVR Lite版本
│ ├── ProjectARVRPro/ # ARVR Pro版本
│ ├── ProjectKB/ # KB项目
│ ├── ProjectLUX/ # LUX项目
│ ├── ProjectBlackMura/ # BlackMura项目
│ ├── ProjectHeyuan/ # 河源项目
│ └── ProjectShiyuan/ # 识远项目
├── Core/ # 核心底层库
│ ├── ColorVisionIcons64/ # 图标资源
│ ├── opencv_cuda/ # OpenCV CUDA支持
│ ├── opencv_helper/ # OpenCV辅助工具
│ └── opencv_opengl/ # OpenCV OpenGL集成
├── DLL/ # 外部DLL依赖
│ └── scgd_internal_dll/ # 内部DLL
├── Test/ # 测试项目
│ ├── ColorVision.UI.Tests/ # UI单元测试
│ └── opencv_helper_test/ # OpenCV测试
├── Tools/ # 工具集
│ └── LicenseGenerator/ # 许可证生成器
├── ColorVisionSetup/ # 安装程序
├── docs/ # 文档(VitePress站点)
├── Scripts/ # 构建和自动化脚本
├── scripts/ # 额外脚本
├── Advanced/ # 高级功能
├── include/ # C++头文件
└── packages/ # NuGet包(第三方库)🏗️ 主要模块说明
ColorVision/ - 主程序
作用:应用程序入口,主窗口和应用程序级功能
关键文件:
App.xaml/App.xaml.cs- 应用程序定义和启动逻辑MainWindow.xaml/MainWindow.xaml.cs- 主窗口EntryClass.cs- 程序入口类ColorVision.csproj- 项目文件
技术栈:
- .NET 8.0 (net8.0-windows)
- WPF (Windows Presentation Foundation)
- 平台:x64
详细文档:
Engine/ - 核心引擎层
作用:系统核心业务逻辑,包含设备服务、算法模板、流程引擎等
Engine/ColorVision.Engine/
功能:
- 设备服务管理(相机、光谱仪、电机等)
- 算法模板系统
- 流程引擎集成
- MQTT通信
- 数据库访问
主要子目录:
Services/- 设备服务实现Templates/- 算法模板MQTT/- MQTT通信协议Media/- 媒体处理
详细文档:
Engine/cvColorVision/
功能:视觉处理核心算法库(C++)
详细文档:
Engine/FlowEngineLib/
功能:流程引擎库,提供可视化流程编辑和执行
详细文档:
Engine/ColorVision.FileIO/
功能:文件IO处理,图像文件读写
详细文档:
UI/ - 用户界面层
作用:用户界面组件、主题管理、通用控件
UI/ColorVision.UI/
功能:
- UI框架和基础设施
- 属性编辑器系统
- 插件管理界面
- 菜单和热键系统
详细文档:
UI/ColorVision.Themes/
功能:主题管理和样式资源
详细文档:
UI/ColorVision.ImageEditor/
功能:专业图像编辑工具,ROI绘制,图形标注
详细文档:
UI/ColorVision.Scheduler/
功能:任务调度器UI,基于Quartz.NET
详细文档:
UI/ColorVision.Solution/
功能:解决方案和工程文件管理
详细文档:
其他UI组件
- ColorVision.Common - 通用UI组件 (文档)
- ColorVision.Core - 核心UI组件 (文档)
- ColorVision.Database - 数据库UI (文档)
- ColorVision.SocketProtocol - Socket协议 (文档)
Plugins/ - 扩展插件层
作用:可插拔的扩展功能模块
插件列表:
| 插件名称 | 功能说明 | 文档 |
|---|---|---|
| EventVWR | Windows事件查看器集成 | - |
| Pattern | 图案检测和分析工具 | Pattern插件 |
| Spectrum | 光谱仪测试与色彩分析 | Spectrum插件 |
| SystemMonitor | 系统性能监控面板 | 系统监控插件 |
| ScreenRecorder | 屏幕录制功能 | - |
| WindowsServicePlugin | Windows服务集成 | - |
插件开发:
Projects/ - 客户定制项目
作用:针对特定客户需求的完整解决方案
项目列表:
- ProjectARVR - AR/VR 检测项目
- ProjectARVRLite - AR/VR Lite 版本
- ProjectARVRPro - AR/VR Pro 版本
- ProjectKB - KB 项目
- ProjectLUX - LUX 亮度测量项目
- ProjectBlackMura - 黑斑检测项目
- ProjectHeyuan - 河源定制项目
- ProjectShiyuan - 识远定制项目
每个项目都有自己的 README.md 说明文档。
Core/ - 核心底层库
作用:底层C++库和OpenCV集成
子模块:
- opencv_cuda/ - OpenCV CUDA加速
- opencv_helper/ - OpenCV辅助工具
- opencv_opengl/ - OpenCV OpenGL集成
- ColorVisionIcons64/ - 64位图标资源
Test/ - 测试项目
作用:单元测试和集成测试
测试项目:
- ColorVision.UI.Tests - UI组件单元测试(xUnit)
- opencv_helper_test - OpenCV辅助工具测试
docs/ - 文档
作用:VitePress文档站点源文件
在线访问:https://xincheng213618.github.io/scgd_general_wpf/
文档结构:
getting-started/- 入门指南architecture/- 系统架构ui-components/- UI组件文档engine-components/- Engine组件文档plugins/- 插件开发device-management/- 设备管理user-interface-guide/- 用户界面指南- 更多分类...
其他目录
- ColorVisionSetup/ - 安装程序(.NET Framework 4.8)
- Scripts/ - 构建脚本
- Tools/ - 工具集(如许可证生成器)
- DLL/ - 外部DLL依赖
- packages/ - NuGet第三方库包
- include/ - C++头文件
🔗 模块与文档对照
详细的模块与文档映射关系,请参考:模块文档对照表
📦 技术栈总览
- 主框架:.NET 8.0, WPF
- 平台:Windows x64/ARM64
- UI库:HandyControl, WPF Extended Toolkit
- 数据库:MySQL, SQLite (MySqlConnector)
- 通信:MQTT (MQTTnet), Socket
- 图像处理:OpenCvSharp4, OpenCV (C++)
- 任务调度:Quartz.NET
- 日志:log4net
- 序列化:Newtonsoft.Json
- 测试:xUnit
