基于 WPF、.NET 10、MVVM 的模块化视觉流程框架原型。
- WPF 深色工业软件风格主界面
- 左侧模块工具箱
- 中间流程节点卡片区
- 右侧属性面板
- 中间实时图像显示区
- 底部输出日志和变量监视
- 模块化节点注册机制
- 系统节点:写日志、写入变量、条件判断、For 循环、并行执行
- 视觉节点:DEBUG 采集图像、DEBUG 视觉检测、显示图像
- DEBUG 模拟相机和模拟视觉算法
- DEBUG 相机生成真实 BGRA32 像素图
- DEBUG 检测结果支持检测框、文字、十字线等 Overlay
- WPF 图像区显示真实 Bitmap 并叠加检测结果
- 初版流程执行引擎
- 工具箱点击添加节点,也支持拖拽添加到流程或控制节点子流程
- 已有节点支持拖拽重排、拖入/拖出控制节点
- 顶层和子节点均支持删除、复制、上移、下移
- 子节点使用递归节点卡片模板完整显示
- 控制节点可添加子节点,形成可编辑子流程
- 节点显示名和参数编辑
- 流程 JSON 保存 / 加载
- ViewModel 已按职责拆分
- DEBUG 示例流程已抽出工厂
- 节点编辑逻辑已抽出服务
- 图像显示刷新已抽出 Presenter
- FlowExecutor 返回明确执行结果
- 统一节点执行入口,控制流子节点也能进入执行管线
- 节点执行高亮、成功/失败状态显示
- 断点、暂停、继续、单步基础调试能力
- 运行中禁用结构编辑,避免修改正在执行的流程
- 持久化、DEBUG 图像、执行器和调试执行单元测试
src/
VisionFlow.App WPF 主程序
DesignTime/ DEBUG 示例流程工厂
Imaging/ 图像转换和显示 Presenter
Behaviors/ WPF 拖拽附加行为
DragDrop/ 拖拽数据模型
Resources/ WPF 主题资源和递归节点卡片模板
Services/ 支持任意层级和跨容器移动的节点编辑服务
ViewModels/ 拆分后的 MVVM ViewModel
VisionFlow.Core 流程核心抽象
VisionFlow.Mvvm MVVM 基础设施
VisionFlow.Modules.Abstractions 模块、视觉接口、图像帧和 Overlay 抽象
VisionFlow.Modules.System 系统节点
VisionFlow.Modules.Vision 视觉节点
VisionFlow.Runtime 流程执行引擎
VisionFlow.Debugging DEBUG 模拟视觉运行时
VisionFlow.Persistence JSON 保存 / 加载
tests/
VisionFlow.Core.Tests xUnit 测试
dotnet build VisionFlowFramework.slnxdotnet test VisionFlowFramework.slnxdotnet run --project src/VisionFlow.App/VisionFlow.App.csproj启动后可以:
- 点击左侧工具箱节点,把节点追加到主流程,也可以拖拽工具箱节点到流程区。
- 在中间流程区域选择顶层节点或子节点。
- 使用节点卡片上的“+子 / ↑ / ↓ / 复制 / 删除”调整流程和子流程,也可以拖拽已有节点调整顺序或移动到控制节点子流程。
- 在右侧属性面板编辑当前选中节点的显示名和参数。
- 点击“运行”执行当前流程,当前节点会高亮。
- 点击节点左侧的红点按钮设置/取消断点。
- 命中断点后可点击“继续”或“单步”。
- 图像区会显示 DEBUG 相机生成的真实图像,并叠加检测框、OK/NG、Score 等结果。
- 使用“文件 -> 保存流程...”保存为
*.vflow.json。 - 使用“文件 -> 加载流程...”恢复流程。
- 目前是卡片式流程编辑器,不是自由画布。
- 当前支持第一版拖拽编辑,但暂未做插入线、拖拽预览 Ghost、自动滚动、多选拖拽和撤销/重做。
- 子节点嵌套目前建议用于控制节点,普通节点虽然模型可包含 Children,但运行语义不建议这样使用。
- 图像显示区支持固定 640x360 映射,暂未做任意缩放/平移。
- Overlay 坐标按固定显示区域缩放,后续可升级为动态适配。
- 暂未做 ROI 编辑、图像保存、历史帧、多相机显示。
- 当前调试为基础版,暂未做条件断点、断点持久化、Step Into / Step Over 区分、调试时间线。
- 并行节点的复杂调试仲裁后续还需要继续增强。