fix graph and white background added
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user