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
69 lines
1.6 KiB
C
69 lines
1.6 KiB
C
{
|
|
"Id": "ae903de4-4fbf-4465-ae6f-92f68ae23852",
|
|
"Name": "新建模块",
|
|
"DeviceId": "",
|
|
"CreatedAt": "2026-07-06T06:17:08.0393627Z",
|
|
"UpdatedAt": "2026-07-06T06:17:08.0411194Z",
|
|
"Nodes": [
|
|
{
|
|
"Id": "b9f36939-264b-40c1-956b-eb40354eb3e5",
|
|
"OperatorKey": "HistogramEqualization",
|
|
"Order": 0,
|
|
"IsEnabled": false,
|
|
"Parameters": {
|
|
"Method": "Global",
|
|
"ClipLimit": 2,
|
|
"TileSize": 8
|
|
}
|
|
},
|
|
{
|
|
"Id": "1c01a4b7-df1e-4241-a73c-c6398dd275a6",
|
|
"OperatorKey": "Contrast",
|
|
"Order": 1,
|
|
"IsEnabled": true,
|
|
"Parameters": {
|
|
"Contrast": 1,
|
|
"Brightness": 0,
|
|
"AutoContrast": false,
|
|
"UseCLAHE": false,
|
|
"ClipLimit": 2
|
|
}
|
|
},
|
|
{
|
|
"Id": "a0119120-944e-40ed-b2ff-2a9e99c004e5",
|
|
"OperatorKey": "Gamma",
|
|
"Order": 2,
|
|
"IsEnabled": true,
|
|
"Parameters": {
|
|
"Gamma": 1,
|
|
"Gain": 1
|
|
}
|
|
},
|
|
{
|
|
"Id": "b9e7a12d-5ade-4e7b-9ceb-f77dd98e4eab",
|
|
"OperatorKey": "Sharpen",
|
|
"Order": 3,
|
|
"IsEnabled": false,
|
|
"Parameters": {
|
|
"Method": "Laplacian",
|
|
"Strength": 1,
|
|
"KernelSize": 3
|
|
}
|
|
},
|
|
{
|
|
"Id": "c26953b7-df7f-4b54-b495-9a60a3d98636",
|
|
"OperatorKey": "HDREnhancement",
|
|
"Order": 4,
|
|
"IsEnabled": false,
|
|
"Parameters": {
|
|
"Method": "AdaptiveLog",
|
|
"Gamma": 1,
|
|
"Saturation": 1,
|
|
"DetailBoost": 1.5,
|
|
"SigmaSpace": 20,
|
|
"SigmaColor": 30,
|
|
"Bias": 0.85
|
|
}
|
|
}
|
|
]
|
|
} |