Commit Graph

43 Commits

Author SHA1 Message Date
XplorePlane Developer 957157ae80 fix: 修复编译错误、BGA向导预览、算子重复插入及状态栏消息
## Compilation fixes
- Fix XAML namespace reference XplorePlane.Converters → XplorePlane.Helpers (EventLogView, StateDisplayView)
- Add missing using for ISampleTypeRepository / JsonSampleTypeRepository in App.xaml.cs
- Fix ILoggerService.Warn() calls using Exception as first arg instead of message string
- Serialize CncProgram to JSON when passing to MatrixLayout (expects string, not CncProgram object)
- Suppress CS8632 nullable annotation warnings project-wide

## BGA wizard fixes
- Fix preview not showing on step 3: force RefreshBgaPreview() when entering final step
- Add step validation in CanNext() to prevent skipping to preview with invalid inputs
- Notify NextCommand.CanExecuteChanged when inputs change
- Fix RunProgress runtime binding error: set Mode=OneWay for ProgressBar.Value

## Operator toolbox: prevent duplicate insertion
- Add static OperatorTarget property for direct dispatch to active pipeline
- PipelineEditorView registers as toolbox target on load (floating window only)
- CNC page sets initial target; PipelineEditorWindow resets to CNC pipeline on close
- '+' button inserts only to the active pipeline instead of broadcasting to all subscribers

## Pipeline editor status bar messages
- Add StatusBarMessageEvent / StatusBarMessagePayload to CommonEvents.cs
- PipelineEditorViewModel publishes status on all ops (add/remove/reorder/save/execute)
- MainViewModel subscribes and displays on main window bottom status bar
- Auto-clear after timeout (3s info, 5s error)

## docs
- Merge three architecture docs into consolidated XplorePlane-架构与结构说明.md
2026-07-24 15:59:16 +08:00
wei.lw.li 4667602400 fix: 测量工具手柄/顶点大小改为线条粗细的2倍
新增GetHandleSize() = GetAdaptiveThickness() × 2 统一自适应计算

CreateMDot/CreateAxisHandle/FootDot 从硬编码Width=2改为GetHandleSize()

移除BGA EdgeDot的硬编码2x2覆盖

图像<1000px: 2x2, 1500-2000px: 4x4, 3000px+: 6x6
2026-07-20 16:08:33 +08:00
zhengxuan.zhang 348d2341e0 统一库级别的x64; 更新 Release 2026-07-16 17:27:34 +08:00
zhengxuan.zhang f022754541 feat(inspection-pool): 检测池与主界面显示整合,实现与CNC运行态互斥
将检测池的图像显示、Tile网格预览、检测结果标记统一迁移到主界面实时预览区,
执行监控窗体紧凑化改造;新增与CNC运行态的双向互斥保护,避免二者同时抢占
主视口和硬件资源。

- MainViewportService.SetCncRunning/EnterInspectionPoolMode 改为返回 bool,
  实现 CNC 与检测池执行态双向互斥(任一方运行时拒绝另一方启动)
- CncEditorViewModel、InspectionPoolPageViewModel 订阅主视口状态变化,
  实时刷新运行按钮门控
- InspectionPoolExecutionService 将拼接图(低剂量概览+正式检测图)推送到
  主界面实时预览区,不再仅显示于独立窗体
- 新增独立的检测池叠加通道(InspectionPoolOverlayUpdated),与现有 CNC
  检测叠加层解耦;新增 InspectionPoolOverlayRenderer 绘制 Tile 网格红框
  与逐目标 PASS/FAIL/MISS 标记
- PolygonRoiCanvas 新增检测池专用叠加层方法,ViewportPanelView 订阅渲染
- InspectionPoolPageView/Window 紧凑化改造,移除大图画布,仅保留方案
  管理、X-ray 参数展示、操作按钮与结果表
- InspectionPoolRecipeEditorViewModel 支持 Tile 行列数变更时将红色网格
  实时预览到主界面,窗口关闭时自动清除

验证:dotnet build 相关项目均 0 error;dotnet test 全量 309/309 通过,
检测池专项 72/72 通过,无回归。
2026-07-15 11:09:28 +08:00
zhengxuan.zhang 9f7d50649a 统一解决方案 x64 debug模式和release模式 2026-07-01 17:04:37 +08:00
zhengxuan.zhang bd55eca5b3 初步的标记功能 2026-06-30 17:30:11 +08:00
zhengxuan.zhang 7f2dd8f822 修复实时模式下图像预览区仍可拖动的问题;非实时模式下鼠标跟随蓝色十字线功能 2026-06-30 13:51:21 +08:00
zhengxuan.zhang 0ae4cff9c9 Merge branch 'Develop/XP' into turbo-002-cnc 2026-06-03 10:02:14 +08:00
zhengxuan.zhang ad1fdb0230 实时过程中禁用图像预览窗体的滚轮缩放功能 2026-06-01 15:07:28 +08:00
李伟 82b7c32147 测量工具组线宽根据图像分辨率自适应 2026-05-26 11:35:25 +08:00
李伟 77f6a32eda 线灰度和辅助线粗细根据图像分辨率自适应,图像切换时自动重绘 2026-05-26 11:24:36 +08:00
zhengxuan.zhang 92213ffd0d Merge branch 'Develop/XP' into turbo-002-cnc
# Conflicts:
#	XplorePlane/Views/Main/MainWindow.xaml
2026-05-22 17:17:29 +08:00
zhengxuan.zhang 2ac84ecc85 修复高级算子的ROI编辑能力 2026-05-21 14:35:49 +08:00
zhengxuan.zhang 1546aec567 优化高级模块CNC执行的可视化
CNC执行 → PipelineExecutionService(返回 LastStepOutputData)
                  → CncExecutionService(调用 PushDetectionOverlay)
                  → MainViewportService(触发 DetectionOverlayUpdated 事件)
                  → ViewportPanelView(订阅事件,调用 DetectionOverlayRenderer)
                  → PolygonRoiCanvas.SetDetectionOverlayCanvas(插入叠加层 Canvas)
2026-05-19 14:10:16 +08:00
李伟 12938764b1 feat: 新增边缘查找拟合直线工具
- 新增 EdgeLineFitProcessor 算子(卡尺边缘检测 + 最小二乘/RANSAC直线拟合)
- 新增 EdgeLineFitPanel 辅助面板(参数配置、交互绘制卡尺)
- 支持任意角度旋转的卡尺区域,4个手柄控制长度/宽度
- 支持多次拟合累积显示,关闭面板后结果保留
- 极性箭头标识搜索方向(B→D / D→B / 双向)
- 卡尺亮绿色1px,拟合直线蓝色2px
- Ribbon快捷工具组新增「直线拟合」按钮
- 添加中英文本地化资源
2026-05-15 15:44:18 +08:00
李伟 b9106acdf0 快捷工具处添加比例尺开关 2026-05-13 09:05:05 +08:00
李伟 8d7fb4e0e3 气泡测量工具:修改鼠标光标 2026-05-06 16:16:22 +08:00
李伟 6fc53c56c7 气泡测量工具:增加圆形ROI 2026-05-06 14:01:56 +08:00
李伟 8dbc274e63 点点距测量工具:端点由点改为线段 2026-05-06 13:28:25 +08:00
李伟 7846445b33 气泡测量工具:打开面板时先清除ROIItems里的残留 2026-05-06 09:10:35 +08:00
李伟 6b35da4cc0 状态栏右下角显示图像像素坐标和灰度 2026-04-30 15:52:01 +08:00
李伟 4d5fa04920 手动测量工具:控制点改为2*2、线宽改为1 2026-04-30 14:01:56 +08:00
李伟 64c22fc088 加载新图像时会自动清除旧的测量结果、叠加层和ROI 2026-04-30 09:25:22 +08:00
李伟 b87480a30f BGA自动检测工具:BGA检测结果以半透明图层叠加在canvas上、添加图标,统一按钮样式 2026-04-29 09:32:21 +08:00
李伟 8b2cf01fe2 PolygonRoiCanvas: ROI右键删除顶点阻止菜单弹出、IsEditable属性控制编辑状态 2026-04-28 17:38:21 +08:00
李伟 9d059709bd 气泡测量: 修复清除后无法再次使用、VoidLimit同步、调整ROI后重新计算 2026-04-28 14:39:14 +08:00
李伟 fab0668da8 BGA辅助面板:气泡/焊球模式切换、VoidLimit面板调节、去掉标签右键编辑、未完成组气泡可拖拽调整 2026-04-27 14:29:54 +08:00
李伟 5a1a992abd 气泡测量:ROI上方显示空隙率和PASS/FAIL判定标签 2026-04-27 13:47:51 +08:00
李伟 68c779cfe1 气泡测量:画笔涂抹标记、橡皮擦清除、ROI外可正常拖动图像 2026-04-27 13:36:44 +08:00
李伟 179a6a6755 气泡测量第三步:魔棒flood fill,灰度阈值连通区域标记,空隙率实时计算 2026-04-27 13:11:00 +08:00
李伟 0c8d8afc51 气泡测量:工具面板UI、BubbleMeasure模式、矩形ROI绘制/拖动/右下角调整大小、工具切换联动 2026-04-27 11:32:06 +08:00
李伟 e7ae7085df BGA手动空隙测量:画气泡圆+焊球圆交互、拖拽调整、空隙率计算、VoidLimit编辑、右键删除 2026-04-27 10:38:56 +08:00
李伟 b593805f11 测量工具标号:各类测量标签显示序号,删除后自动重编号 2026-04-24 16:32:21 +08:00
李伟 5900907236 通孔填锡率:标签显示THTLimit参数,右键标签可编辑阈值,椭圆轴手柄调整 2026-04-24 16:18:06 +08:00
李伟 faa4e61d98 集成通孔填锡率测量:四椭圆交互、中心拖拽、长短轴手柄调整、填锡率实时计算与PASS/FAIL判定 2026-04-24 15:38:25 +08:00
李伟 7fdc6adb44 集成测量工具:点点距、点线距、角度测量;十字辅助线;右键菜单;图像自适应窗口优化 2026-04-24 14:36:52 +08:00
李伟 9e39447144 图像切换时十字辅助线跟随刷新 2026-04-24 11:01:17 +08:00
李伟 ef4e1f9eda 点线距测量工具实现 2026-04-24 10:53:51 +08:00
李伟 eefbd1d1c8 将十字线以及点点距ROI实现迁移到XP.ImageProcessing.RoiControl中 2026-04-24 09:26:30 +08:00
李伟 d5b421b811 使用像素尺寸,避免DPI不同导致DIP尺寸与实际像素不一致 2026-04-23 16:53:17 +08:00
李伟 3aa64843c8 去掉图像显示区的放大、缩小、适应按钮;改为鼠标右键弹出选择菜单 2026-04-23 16:16:49 +08:00
李伟 cd03e30bb8 修复注释乱码 2026-04-14 17:12:31 +08:00
李伟 ace1c70ddf 规范类名及命名空间名称 2026-04-13 14:36:18 +08:00