Commit Graph

1091 Commits

Author SHA1 Message Date
zhengxuan.zhang 1ae4e5547b 修正CNC弹窗提醒节点描述 2026-08-05 11:24:10 +08:00
ZHANG Zhengxuan 8ccce305dd 已合并 PR 220: NOVA设计规范与视图调整
- 1、NOVA 设计规范:新增主题配色,嵌入方正黑体
- 2、约 30 个视图/窗口从硬编码颜色切换为NOVA调整;修复了 Ribbon 折叠、图标不展开、焦点可见性等问题。
- 3、CNC 检测池功能:新增 xppool v2 自包含格式,对标yxlon 检测池xml文件
- 4、BGA/球检测与实时叠加:复用流水线 BGA 结果、绿色圆叠加显示、主界面实时预览、向导叠加层重构(WizardOverlayRenderer、DetectionOverlayRenderer)。
- 5、稳定性与修复:AppState 审计阶段一/二(功能阻塞、事件与内存压力)、CNC 执行中切换用户权限守卫失效、硬件故障状态与 UI 告警统一、直方图峰值标签与缩放改进。
2026-08-05 11:23:41 +08:00
zhengxuan.zhang 9426626593 移除机械参考点并统一图像对齐基准 2026-08-05 11:20:38 +08:00
zhengxuan.zhang 101626a1a0 修复图标,删除过时的UI规范 2026-08-05 11:10:23 +08:00
zhengxuan.zhang a3605c0912 新增CNC插入检测池选择功能 2026-08-05 11:07:10 +08:00
zhengxuan.zhang 5962717ded Merge branch 'Feature/TURBO-003-Cnc' Feature/TURBO-002-Cnc
Please enter a commit message to explain why this merge is necessary,
2026-08-05 10:19:25 +08:00
zhengxuan.zhang 37caf4d82a 统一XP专有文件保存命名流程 2026-08-05 10:16:40 +08:00
zhengxuan.zhang 186fe33214 修复XP文件中文序列化编码 2026-08-05 10:06:18 +08:00
zhengxuan.zhang 263e87bde5 Merge branch 'Develop/XP' into Feature/TURBO-002-Cnc 2026-08-05 09:59:20 +08:00
zhengxuan.zhang ff695d3ed9 完善矩阵总运行与单元格运行关联 2026-08-05 09:52:24 +08:00
LI Wei.lw 2e1075c6c2 Merged PR 216: 修复部分算子中英文显示问题,新增离群点去除算子
1.16位→8位图像显示转换改为固定0-65535线性映射,保证输入输出可横向对比真实灰度变化
2.删除已废弃的旧资源文件(XP.ImageProcessing.Processors/Resources)
3.新增RemoveOutliersProcessor(去除离群点算子),支持中英文,用于修复探测器坏点/坏线
2026-08-05 09:47:01 +08:00
ZHANG Zhengxuan 597ce5d1d8 已合并 PR 213: 累计功能更新
###  检测任务池向导(核心新增)
> 对标 YXLON 的新检测池 UI —— 非模态向导(Stage 0~8),替代旧的检测池窗口

- 新建 30+ 文件:`Models/Inspection/Task/`、`Services/Inspection/Task/`、`ViewModels/Inspection/TaskWizard/`、`Views/Inspection/TaskWizard/`
- 向导全流程:创建任务 → 图像调试(锁定位置+流水线+源/探测器参数) → BGA识别 → 分组设置 → 气泡参数 → 首件校准 → 自动扫描 → 结果输出
- 注入 `IInspectionTeachInService` 捕获硬件实时参数
- 注入流水线编辑器回调 (`GetCurrentPipeline`) 导出实时算子快照
- BGA 识别仿真数据(54 个仿真球,6x9 网格)
- 卡点日志增强(每个阶段输出 `CanGoNext=false` 原因)

###  CNC 编辑器增强
- SavePosition 插入时自动携带流水线算子作为检测模块
- "新建"默认创建一个参考点 + SavePosition 模板
- Transient ViewModel 添加 `SubscriptionToken` + `Cleanup` 防内存泄漏
- 修复编译错误(缺失 using、catch 块、孤立 #endregion)

###  实时流水线 & 图像处理
- 修复流水线处理结果被探测器实时帧覆盖(`_isLiveProcessedImageActive` 保护)
- BGA 空洞率算子 ROI=None 时添加全图检测日志
- MainViewportService 添加 `[LivePipelineDiag]` 诊断日志

###  架构清理 & 重构
- **MainViewModel**:按职责拆分为 3 个 partial 文件(CNC/测量/录制)
- **Eliminate Service Locator**:消除 `ContainerLocator.Resolve`(14 处 → 构造函数注入)
- **Converters 合并**:5 个单一转换器文件合并到 `Converters.cs`
- **Inspection 服务合并**:3 个小文件合并
- **Navigation 接口合并**:`INavigationService.cs` → `NavigationService.cs`
- **Debug ViewModels 合并**:`DebugPanelStateMetadata` → `Localization`;`SnapshotDiffViewModel` → `SnapshotManagerViewModel`
- 全局 `JsonSerializerOptions` 统一(`InspectionJsonDefaults` + `DomainJsonDefaults`)

### 死代码清理
- 移除旧 **SampleType** 全部代码(5 个文件 + DI 注册)
- 移除旧 **检测池 Pool/** 全部代码(27 个文件 + 5 个测试文件 + DI 注册)
- `MainViewModel` 中 6 个僵死命令(NavigateHome/NavigateInspect/OpenFile/Export/Clear/EditProperties)

###  中文注释全覆盖
57 个文件的头部中文注释 + 函数级中文 XML 注释:
- `Services/` 下 37 个文件
- `ViewModels/Cnc/` 下 16 个文件
- `ViewModels/Debug/` 下 7 个文件
- `ViewModels` 其他 27 个文件
- `Events/` 全部文件

### 配置变更
- **XP.Calibration**:`WinExe` → `Library`,删除 App.xaml(作为 Prism 模块加载,无需独立入口)
- **Ribbon**:禁用最小化/折叠按钮(`IsMinimizable=False`)
- **Ribbon 按钮**:"检测池" → "检测任务向导"; "样品类型" 移除
- **NuGet**:`CommunityToolkit.Mvvm` 已移除(统一使用 Prism.DryIoc)
2026-08-05 09:46:05 +08:00
zhengxuan.zhang 36350e36b2 整改检测参考图和全局资源目录 2026-08-05 09:37:57 +08:00
zhengxuan.zhang 7aa14b707c refactor(storage): organize XPData directories 2026-08-05 09:31:07 +08:00
zhengxuan.zhang ccd73c24d5 feat(cnc): store template assets with program 2026-08-05 09:30:02 +08:00
zhengxuan.zhang 8adc701c2b refactor: unify inspection pool plan persistence 2026-08-04 17:27:10 +08:00
zhengxuan.zhang f814e30e6c refactor: separate inspection pool definitions and plans 2026-08-04 17:02:51 +08:00
zhengxuan.zhang 88b6ae0e76 refactor: reorganize XPData workspace and dump archives 2026-08-04 16:56:13 +08:00
zhengxuan.zhang b6e00a0eda 更新项目专有文件后缀说明 2026-08-04 16:37:35 +08:00
zhengxuan.zhang f3b6813c71 refactor: rename project file extensions 2026-08-04 16:34:44 +08:00
zhengxuan.zhang 9811b1df3c fix: improve wizard final stage actions and preview 2026-08-04 16:23:32 +08:00
zhengxuan.zhang 00229d649d 新增加载已有的文件 2026-08-04 16:15:29 +08:00
zhengxuan.zhang ebbf56d6d9 fix: restore wizard stage navigation and result overlays 2026-08-04 16:00:22 +08:00
zhengxuan.zhang 627cafb00e fix: complete wizard ball labels and result list 2026-08-04 15:38:08 +08:00
zhengxuan.zhang 297b333bf0 fix: preserve wizard results and stage navigation 2026-08-04 15:25:52 +08:00
zhengxuan.zhang f009ae08c2 feat: add visual grid indexing selection 2026-08-04 15:19:06 +08:00
zhengxuan.zhang e63ac7a14e feat: add hierarchical bga block labels 2026-08-04 15:12:34 +08:00
zhengxuan.zhang d8fdb31f14 fix: center bga ball labels 2026-08-04 15:05:28 +08:00
zhengxuan.zhang fb7fac32ad fix: improve inspection pool grouping wizard flow 2026-08-04 15:02:16 +08:00
zhengxuan.zhang 2760bd6dac fix: auto run bga detection in task wizard 2026-08-04 14:47:40 +08:00
zhengxuan.zhang fd9d863494 feat: add automatic bga ball detection 2026-08-04 14:39:59 +08:00
zhengxuan.zhang 528f27f43e chore: stop tracking local audit document 2026-08-04 14:18:05 +08:00
zhengxuan.zhang 68b680027b feat: show histogram gray peaks and threshold lines 2026-08-04 14:14:24 +08:00
zhengxuan.zhang 09747e5f23 增加发布设置 2026-08-04 14:00:30 +08:00
zhengxuan.zhang 1612b32610 feat: improve histogram peak labels and zoom 2026-08-04 13:54:54 +08:00
zhengxuan.zhang 8794e3ef54 refactor: clarify cnc inspection pool task node 2026-08-04 13:24:26 +08:00
zhengxuan.zhang 7e99da4ff7 fix: remove legacy wizard ball detection and add overlay context 2026-08-04 13:02:00 +08:00
zhengxuan.zhang 53f7d1ae07 增加文档和NOVA设计,来自潘慧 2026-08-04 11:41:49 +08:00
zhengxuan.zhang 95ad567566 refactor: enforce pipeline ball detection and unify overlays 2026-08-04 11:40:27 +08:00
zhengxuan.zhang f6f8c40c63 feat: unify pool and cnc ball inspection pipeline 2026-08-04 11:26:19 +08:00
zhengxuan.zhang 84d5b11445 修复 CNC 执行中切换用户权限守卫失效(P1-5/P1-7)
PermissionService.CanSwitchUser 原本读 SystemState.OperationMode,但该字段
从未被写成非 Idle(唯一写入点 RecipeService 仍写 Idle),导致"CNC 执行中
禁止切换用户"从未真正生效。改为直接读 AppStateService.CncExecutionState.IsRunning,
这是 CncExecutionService 在开始/暂停/结束时真实维护的状态。
RibbonStatusAreaViewModel 同步改为订阅 CncExecutionStateChanged。

MainViewportService.IsCncRunning 与 CncExecutionState 仍是两套独立状态,
保持不变:SetCncRunning 内部的互斥检查(与检测池模式双向互斥)需要原子性,
直接改为读 CncExecutionState 会引入竞态窗口,不在本次修复范围内。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 11:07:19 +08:00
zhengxuan.zhang 98d0a5b64b fix: unify hardware fault state and UI alerts 2026-08-04 11:02:41 +08:00
zhengxuan.zhang d7f8f7c3f5 修复padding 2026-08-04 10:43:35 +08:00
zhengxuan.zhang d1c22e0229 修复检测池向导扫描仍为模拟流程的问题
ScanSchedulerService 接入 IInspectionAcquisitionService,逐 Block 真实
运动/设参/采图并调用 BGA 引擎检测,不再直接复用旧的 block.Balls。
同时修复 AnalyzeBlock 结果未回写检测池、AnalyzeTask 汇总时读取原始
Pending 球状态导致误判的问题。PoolTaskDefinitionMapper.BuildAcquisition
改为 internal 供扫描调度器复用,保证与 CNC 检测项目执行口径一致。
2026-08-04 10:42:25 +08:00
zhengxuan.zhang 1217519b54 更新问题排查文档 2026-08-04 10:26:40 +08:00
zhengxuan.zhang f2ca9cb611 修复 AppState 审计第一/第二阶段问题:功能阻塞与事件/内存压力
- BGA 检测:流水线复用失败时删除无条件 return 死代码,回退到真实检测路径(原有仿真数据兜底不变)
- MotionState 去重改用值比较(record Equals),避免设备静止时 100ms 轮询仍每次触发全量 UI 更新
- DetectorFramePipelineService 移除只写不读的 _acquireQueue,改为原子饱和计数器,不再让约 37MB/帧的图像常驻内存
- PerformanceMonitorViewModel 订阅事件改为具名处理器,Dispose 时完整反订阅,避免调试面板重复开关造成泄漏

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 10:20:38 +08:00
zhengxuan.zhang c17c76e90f 修复分组设置生成检测池后下一步按钮不刷新
Pool 属性 setter 只做 SetProperty,未触发 UpdateNavigationState,
而生成检测池时 CurrentStage 赋值前后相同不会触发导航状态刷新,
导致分组变蓝后 CanGoNext 停留在旧值,下一步按钮无法点击。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 09:49:17 +08:00
zhengxuan.zhang 0d1cda6403 修复流水线属性面板实时预览缺失叠加显示
CncInspectionModulePipelineViewModel.ExecutePreviewAsync 只推送了结果图,
未像 PipelineEditorViewModel 一样调用 PushDetectionOverlay,
导致调参实时预览时不会叠加显示 BGA 检测的圆形标注。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 09:35:13 +08:00
zhengxuan.zhang e3466d03f0 优化流水线属性检查器布局 2026-08-03 17:40:08 +08:00
zhengxuan.zhang 1ccf3e094f 修复 BGA 识别后下一步状态刷新 2026-08-03 17:29:43 +08:00