# VisualCutterForm
**Repository Path**: lvylvm/VisualCutterForm
## Basic Information
- **Project Name**: VisualCutterForm
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-07-16
- **Last Updated**: 2026-07-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# VisualMaster
VisualMaster 是本仓库中的核心能力层,负责工业相机接入与通信驱动能力。
## VisualCutterForm 简介(保留)
VisualCutterForm 是上层业务应用(WinForms 可执行程序),用于把流程编排、界面交互和运行时控制整合为可交付的视觉检测软件。
## VisualCutterForm 与 VisualMaster 的关系
- `VisualCutterForm` 是解决方案名称与主应用工程(可执行程序)。
- `VisualMaster.*` 是能力组件库命名空间与工程前缀,不代表整个解决方案。
- 依赖方向是单向的:主应用依赖组件库,组件库不依赖主应用。
```mermaid
graph LR
A[VisualCutterForm 主应用
WinForms EXE] --> B[VisualMaster.CameraLink
相机能力库 WPF]
A --> C[VisualMaster.Communication
通信能力库 WPF]
B --> D[VisualMaster.UI.Basic
基础主题库 WPF]
C --> D
```
## 解决方案结构(按 VisualMaster 视角)
| 类型 | 工程 | 说明 |
|---|---|---|
| 主应用 | `VisualCutterForm/VisualCutterForm.csproj` | 应用壳层、流程执行、WinForms 编辑器与运行时桥接 |
| 基础库 | `VisualMaster.UI.Basic/VisualMaster.UI.Basic.csproj` | 统一深色主题 XAML(VMColor\* token + 命名样式),两个核心库共同依赖 |
| 核心库 | `VisualMaster.CameraLink/VisualMaster.CameraLink.csproj` | 相机设备发现、连接、采集、预览、配置 |
| 核心库 | `VisualMaster.Communication/VisualMaster.Communication.csproj` | UART/TCP 驱动抽象、数据块、输入输出事件、监控 |
| 示例应用 | `VisualMaster.CameraLink.App/VisualMaster.CameraLink.TestApp.csproj` | CameraLink 示例应用 |
| 示例应用 | `VisualMaster.CameraLink.TestApp/VisualMaster.CameraLink.TestApp.Viewer.csproj` | CameraLink Viewer 示例 |
| 示例应用 | `VisualMaster.Communication.TestApp/VisualMaster.Communication.TestApp.csproj` | Communication 示例应用 |
| 安装项目 | `SetupVisualCutter/SetupVisualCutter.vdproj` | 安装包工程 |
## VisualMaster.CameraLink
### 目标
提供海康相机设备接入能力,统一设备配置模型与帧缓冲模型,并暴露可复用 UI。
### 关键目录
- `VisualMaster.CameraLink/API/`
- `VisualMaster.CameraLink/Adapter/`
- `VisualMaster.CameraLink/Core/`
- `VisualMaster.CameraLink/UI/`
### 核心路径
```mermaid
graph TB
A[HikrobotAdapter] --> B[HikrobotDevice]
B --> C[ManagedCamera]
C --> D[CameraManager]
D --> E[WPF UI / ViewModel]
```
### 关键事实
- 同时保留两条访问路径:
- 兼容路径:`MvsCamera`(legacy)
- 新路径:`HikrobotDevice -> ManagedCamera -> CameraManager`
- 推荐使用 `CameraDeviceConfig` / `CameraDeviceStatus` 与 device 模型。
- 帧对象通过 `CameraFrameBuffer` / `CameraFrameSnapshot` 管理,`Snapshot` 需要及时释放。
## VisualMaster.Communication
### 目标
提供可扩展的通信驱动框架,统一输入输出规则与字节块读写机制。
### 关键目录
- `VisualMaster.Communication/Api/`
- `VisualMaster.Communication/Core/`
- `VisualMaster.Communication/Driver/`
- `VisualMaster.Communication/UI/`
### 核心路径
```mermaid
graph TB
A[CommunicationManager] --> B[ICommunicationDriver]
B --> C[UartDriver]
B --> D[TcpDriver]
A --> E[ICommunicationBlock]
A --> F[WPF UI / ViewModel]
```
### 关键事实
- 当前驱动实现包含 UART 与 TCP。
- 驱动通过工厂注册到 `CommunicationManager`。
- `SerialPortAdapter.cs` 文件存在于仓库中,但未纳入 `VisualMaster.Communication.csproj` 编译清单。
## 主应用如何接入 VisualMaster
- `VisualCutterForm/Forms/VisionController.cs`:主应用运行时编排入口。
- `VisualCutterForm/Forms/VisionCameraRuntime.cs`:相机运行时桥接。
- `VisualCutterForm/Forms/VisionSerialRuntime.cs`:通信运行时桥接。
- `VisualCutterForm/WorkFlow/FlowExecutor.cs`:流程执行器,通过服务接口调用硬件能力。
## 构建与运行
```powershell
# 在 VS Developer PowerShell 中执行
msbuild VisualCutterForm.slnx /p:Configuration=Debug
# 运行主程序
VisualCutterForm\bin\Debug\VisualCutterForm.exe
```
如果构建出现 `MSB3021` 文件占用,先关闭正在运行的 `VisualCutterForm.exe`。
## 开发约束
- 主要工程使用 old-style csproj,新增 `.cs` 文件后必须手动加入 ``。
- WinForms/WPF 的 `Designer` 与自动生成资源文件不要手工编辑。
- 主应用触发系统使用 `TriggerEntry`(`Manual/CameraFrame/Timer/SerialMatch`),不再使用旧触发模型。