957157ae80
## 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
2.4 KiB
2.4 KiB
长期记忆(XplorePlane 检测池 YXLON 对标)
架构结论(2026-07-24)
- 核心检测池(按单元格执行)= R1 风险,已在执行层打通:
MatrixExecutionCoordinator.RunAsync → MatrixLayout.BuildCells → 对每个 cell 偏移 + ApplyOffset(对 InspectionDefinitionNode 叠加 X/Y) → CncExecutionService L368 case InspectionDefinitionNode → IInspectionExecutionCoordinator.ExecuteAsync。无需重构核心。 - 当前 XplorePlane 与 YXLON 差异仅在外层入口(样品类型 + 绑定检测程序 + 阵列),以及无独立 BGA 向导。
方案 B 实施状态
- 任务1 样品类型一体化 UI:已完成。新增
Models/Inspection/SampleTypeDefinition.cs、Services/Inspection/SampleType/JsonSampleTypeRepository.cs、ViewModels/Inspection/SampleType/SampleTypeViewModel.cs、Views/Inspection/SampleType/SampleTypeWindow.xaml(.cs);App.xaml.cs注册 ISampleTypeRepository;MainViewModel加 OpenSampleTypeCommand;MainWindow.xamlRibbon 加"样品类型"按钮。Run = 组装含 InspectionDefinitionNode 的 CncProgram + 由 Grid 生成 MatrixLayout + RunAsync。 - 任务2 BGA 引导式弹窗:已完成。新增
ViewModels/Inspection/Pool/Bga/BgaWizardViewModel.cs、Views/Inspection/Pool/Bga/BgaWizardWindow.xaml(.cs)、Views/Inspection/Pool/Bga/StepIndexToVisibilityConverter.cs;InspectionPoolPageViewModel加OpenBgaWizardCommand+ApplyBgaGrid,页面 BGA 步骤改为按钮+摘要。BgaGridGeometry.Pitch 为 double(勿取整);HasValidBgaConfig 页级额外依赖 TileRows.Count>0。
关键命名空间
- IInspectionDefinitionRepository / JsonInspectionDefinitionRepository / InspectionJsonDefaults:XplorePlane.Services.Inspection
- IMatrixExecutionCoordinator / MatrixCellExecutionProgress:XplorePlane.Services.Cnc.Matrix
- IXpDataPathService:XplorePlane.Services.Storage
- CncProgram / CncNode / InspectionDefinitionNode / MatrixLayout / MatrixCell / MatrixCellStatus:XplorePlane.Models.Cnc
- IApplicationDialogService:XplorePlane.Views.Dialogs(注意:部分基线文件误用 XplorePlane.Services.Dialogs)
构建注意
- 本机
dotnet buildCLI 会在 WPF 临时项目 (_wpftmp) 报 IReadOnlyList<>/IApplicationDialogService/XplorePlane.Converters 找不到(基线文件),疑似环境假象;语言服务器对改动文件报 0 诊断。建议在 Visual Studio 中验证完整构建。