Files
XplorePlane/.codebuddy/memory/MEMORY.md
T
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

2.4 KiB
Raw Blame History

长期记忆(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.csServices/Inspection/SampleType/JsonSampleTypeRepository.csViewModels/Inspection/SampleType/SampleTypeViewModel.csViews/Inspection/SampleType/SampleTypeWindow.xaml(.cs)App.xaml.cs 注册 ISampleTypeRepositoryMainViewModel 加 OpenSampleTypeCommandMainWindow.xaml Ribbon 加"样品类型"按钮。Run = 组装含 InspectionDefinitionNode 的 CncProgram + 由 Grid 生成 MatrixLayout + RunAsync。
  • 任务2 BGA 引导式弹窗:已完成。新增 ViewModels/Inspection/Pool/Bga/BgaWizardViewModel.csViews/Inspection/Pool/Bga/BgaWizardWindow.xaml(.cs)Views/Inspection/Pool/Bga/StepIndexToVisibilityConverter.csInspectionPoolPageViewModelOpenBgaWizardCommand+ApplyBgaGrid,页面 BGA 步骤改为按钮+摘要。BgaGridGeometry.Pitch 为 double(勿取整);HasValidBgaConfig 页级额外依赖 TileRows.Count>0。

关键命名空间

  • IInspectionDefinitionRepository / JsonInspectionDefinitionRepository / InspectionJsonDefaultsXplorePlane.Services.Inspection
  • IMatrixExecutionCoordinator / MatrixCellExecutionProgressXplorePlane.Services.Cnc.Matrix
  • IXpDataPathServiceXplorePlane.Services.Storage
  • CncProgram / CncNode / InspectionDefinitionNode / MatrixLayout / MatrixCell / MatrixCellStatusXplorePlane.Models.Cnc
  • IApplicationDialogServiceXplorePlane.Views.Dialogs(注意:部分基线文件误用 XplorePlane.Services.Dialogs

构建注意

  • 本机 dotnet build CLI 会在 WPF 临时项目 (_wpftmp) 报 IReadOnlyList<>/IApplicationDialogService/XplorePlane.Converters 找不到(基线文件),疑似环境假象;语言服务器对改动文件报 0 诊断。建议在 Visual Studio 中验证完整构建。