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
11 lines
733 B
JSON
11 lines
733 B
JSON
{
|
|
"HighQuality": { "BinningIndex": 0, "FrameRate": 1, "AvgFrames": 8, "Pga": 4 },
|
|
"MediumQuality": { "BinningIndex": 0, "FrameRate": 10, "AvgFrames": 4, "Pga": 4 },
|
|
"RealTime": { "BinningIndex": 1, "FrameRate": 30, "AvgFrames": 1, "Pga": 4 },
|
|
"HighSpeed": { "BinningIndex": 2, "FrameRate": 60, "AvgFrames": 1, "Pga": 4 },
|
|
"RealTimeFullRes": { "BinningIndex": 0, "FrameRate": 15, "AvgFrames": 1, "Pga": 4 },
|
|
"HighDynamicFullRes": { "BinningIndex": 0, "FrameRate": 3, "AvgFrames": 4, "Pga": 6 },
|
|
"HighDynamic": { "BinningIndex": 1, "FrameRate": 15, "AvgFrames": 2, "Pga": 6 },
|
|
"LowDosage": { "BinningIndex": 0, "FrameRate": 3, "AvgFrames": 1, "Pga": 2 }
|
|
}
|