fix graph and white background added

This commit is contained in:
Ayzen
2026-10-15 14:46:06 +03:00
parent 5102ed751c
commit 9a9b8ce5c7
35 changed files with 730 additions and 463 deletions
+14 -8
View File
@@ -14,8 +14,9 @@ and a **Python application** for supervision, visualization and control.
The pipeline runs as three independent processes connected by lock-free POSIX
shared-memory ring buffers. Each stage advances on its own, and a slow consumer
never blocks a producer — the rings are latest-wins, so a reader that falls behind
skips overwritten frames and continues from the retained tail:
never blocks a producer — the rings are latest-wins: a full ring overwrites its oldest
unread frame, a reader that falls behind continues with the frames still retained, and
one overtaken during a read resumes at the newest frame:
1. **Acquisition** — Python producers configure the radar, acquire frequency sweeps,
and publish raw S21 traces. Both single and multi-device LibreVNA use
@@ -65,7 +66,8 @@ controls, processing settings and a copy of the live plot through an embedded we
## Processing modes
- **pass_through** — magnitude and phase of S21 for each combo.
- **bscan** — depth-versus-sweep B-scan heatmap.
- **bscan** — depth-versus-sweep B-scan heatmap. A band selecting fewer than two
sweep points gives no range profile, and such sweeps are left out of the image.
- **gpr** — coherent back-projection on the ground plane, as in `Horns_motion_4x4_ground.py`,
with object detection. Radar height and look angle define the slice in radar X/Z axes;
the wave speed is 3×10⁸ m/s (air).
@@ -100,7 +102,7 @@ peak; its size follows the contiguous half-maximum width along the volume axes
(FWHM, at least one voxel). This measures the imaged response rather than the
reflector's physical dimensions.
The desktop uses a light theme with dark plot canvases. **Mode** stays below the
The desktop uses a light theme with white plot canvases. **Mode** stays below the
**Actions** buttons while the settings sections scroll; the settings panel and
runtime log can be collapsed with their arrow buttons. SAR3D status, peak
coordinates and level appear above the projections.
@@ -522,10 +524,14 @@ Profile loading blocks editor signals until all settings are populated.
`HistoryController` owns retained acquisitions; `PlotController` selects the view
and supplies independent B-scan, GPR, trace and SAR renderers with typed settings.
Renderers own their plots and display caches, without access to the acquisition
processes. Stopped B-scan replay uses the last run's ring, matches exact acquisition
keys and the requested settings revision, and cancels when that run changes. With
no retained preprocessed sweeps (including disabled taps), the processor recomputes
its own retained history. Capture previews preserve the selected processing view.
processes. Every plot change passes through `PlotController`, which counts changes
of the shown image for the browser stream. The display shows the newest acquisition,
including results read while stopping. Stopped B-scan replay uses the last run's
ring, matches exact acquisition keys and the requested settings revision, and
cancels when that run changes; sweeps the processor does not return are left out
rather than mixing settings in one image. With no retained preprocessed sweeps
(including disabled taps), the processor recomputes its own retained history.
Capture previews preserve the selected processing view.
`PipelineController` owns processes, ring readers, polling/recovery, Single Capture
and replay. Its pause prevents recovery from starting a producer over a hardware
capture; Stop or Close cancels any pending resumption, including during a drain.