Polish GUI design
This commit is contained in:
@@ -64,8 +64,13 @@ controls, processing settings and a copy of the live plot through an embedded we
|
||||
(default 2 cm). The radar motion is corrected from each trace's capture
|
||||
timestamps, so the sweep timing needs no parameters.
|
||||
|
||||
The desktop uses a light theme with dark 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.
|
||||
|
||||
For B-scans on every radar model, **B-scan pair** selects a pair from the displayed
|
||||
history independently of the run combinations. **Next combination** advances output
|
||||
history independently of the run combinations. **Next Combination** advances output
|
||||
first, then input, and wraps to the first recorded pair; it is enabled with at least
|
||||
two pairs. Desktop and browser selectors redraw the cached B-scan immediately.
|
||||
|
||||
@@ -186,7 +191,7 @@ The preprocessor still requires S21 calibration/reference sets. Start the GUI:
|
||||
./start.sh --profile run_config.json
|
||||
```
|
||||
|
||||
Open **Preprocessing**, use **Create Neutral S21 Sets**, then **Start**. This makes
|
||||
Open **Preprocessing…**, use **Create Neutral S21 Sets**, then **Start**. This makes
|
||||
identity calibration + zero reference, preserving the simulated S21 samples.
|
||||
|
||||
**Dataset replay (recorded scene).** When
|
||||
@@ -220,18 +225,18 @@ The embedded server listens at `http://<host>:8080`; set
|
||||
`RADAR_SYSTEM_WEBUI_PORT` to use another port. It is available in desktop and
|
||||
headless mode. Browser actions are:
|
||||
|
||||
- **Start**, **Single Capture**, **Stop**, **Tmp Reference** and **Remove Last Measurement**;
|
||||
- **Start**, **Single Capture**, **Stop**, **Capture Temporary Reference** and **Remove Last Measurement**;
|
||||
- load a profile from `run_configs/*.json` using **Load**;
|
||||
- **Save Last 1000** and **Start + Record** with a path, optional name and recording count;
|
||||
- edit processor settings and antenna tables with **Apply**, or clear history with **Reset history**;
|
||||
- select a **B-scan pair** or advance with **Next combination**.
|
||||
- **Save Last 1000** and **Start + Record to Disk** with a path, optional name and recording count;
|
||||
- edit processor settings and antenna tables with **Apply**, or clear history with **Clear Runtime History**;
|
||||
- select a **B-scan pair** or advance with **Next Combination**.
|
||||
|
||||
Copy profiles from `run_config_examples/` into `run_configs/` to offer them in the
|
||||
browser. JSON export and calibration dialogs are desktop actions. PNG capture
|
||||
runs only while a browser is connected and the plot has changed, including zoom
|
||||
and resize, at most five times per second. Each client retains the latest frame,
|
||||
status and settings independently; reconnecting refreshes settings, and **Apply**
|
||||
sends only edited fields.
|
||||
sends only edited fields. Field labels, units and checkboxes match the desktop form.
|
||||
|
||||
## Data and preprocessing
|
||||
|
||||
@@ -243,7 +248,7 @@ The limit is fixed; legacy profile `save_count` values are ignored. Saving
|
||||
keeps an active disk recording running.
|
||||
Without raw/preprocessed taps, result snapshots remain available, but S21 JSON
|
||||
requires retained traces.
|
||||
**Start + Record to Disk** (**Start + Record** in the browser) has a separate count
|
||||
**Start + Record to Disk** has a separate count
|
||||
for future results. It keeps collections received after arming until that count,
|
||||
Stop, or exhaustion of the bounded writer queue. If storage falls behind,
|
||||
recording stops accepting data, drains the queue and final chunk, and reports the limit.
|
||||
@@ -264,7 +269,7 @@ and actual `speed_m_s` (including speed supplied by the locator). Settings
|
||||
changed while acquisition is stopped are recorded for the reprocessed results as well.
|
||||
**Remove Last Measurement** uses capture order and removes matching collections
|
||||
from every stage; the processor suppresses that sweep if it is still pending.
|
||||
**Clear Runtime History** (**Reset history** in the browser) clears all retained
|
||||
**Clear Runtime History** clears all retained
|
||||
stages and rejects late results from before the cutoff. These actions leave saved
|
||||
files intact. A sweep is identified by `(collection_id, capture_start_ns)`; all
|
||||
stages preserve the producer's capture window. `monotonic_ns` is diagnostic only.
|
||||
@@ -287,15 +292,17 @@ are retained; new files and directories respect the process umask. Earlier NPZ/J
|
||||
remain supported. Invalid trace shapes, duplicate combinations and non-finite
|
||||
calibration/reference values are rejected before a saved set is replaced.
|
||||
Median captures also require identical frequency axes and channel coverage.
|
||||
Open **Preprocessing** to create or select the ordinary S21 calibration and
|
||||
Open **Preprocessing…** to create or select the ordinary S21 calibration and
|
||||
empty-scene reference. The processing order is through calibration → calibrated
|
||||
reference subtraction → notch → object correction → the selected processor.
|
||||
|
||||
### Object calibration
|
||||
|
||||
**Create…** in the **Object Calibration** row opens a separate dialog. Use
|
||||
**Capture data** to take fresh preprocessed sweeps, then enter the measured
|
||||
reflector centre X/Y/Z in metres and use **Calculate and save**.
|
||||
**Create…** in the **Object calibration** row opens a separate dialog. Use
|
||||
**Capture Data** to take fresh preprocessed sweeps, then enter the measured
|
||||
reflector centre X/Y/Z in metres and use **Calculate and Save**. The optional
|
||||
**Calculation Settings** section expands inside the scrollable dialog body;
|
||||
the calculation, cancellation and close buttons remain visible below it.
|
||||
Coordinates follow the notebook: X across the array, Y above the ground, Z along
|
||||
the ground.
|
||||
Height above ground, radar pitch and sphere radius follow `MIMO_calibration.ipynb`;
|
||||
@@ -490,11 +497,11 @@ filtering before object correction.
|
||||
Object capture checks both acquisition processes and releases its pause only after
|
||||
completion or cancellation; losing the producer reports a failure immediately.
|
||||
`SnapshotController` coordinates manual exports, paused Clear/Remove operations
|
||||
and Start + Record.
|
||||
and Start + Record to Disk.
|
||||
History deletion is retained before publishing it to the processor, so a failed
|
||||
settings write can be retried without restoring deleted sweeps. `RecordingController`
|
||||
owns a bounded writer session; its disk thread receives data and storage only.
|
||||
A processor restart during Start + Record does not finish the newly armed session.
|
||||
A processor restart during Start + Record to Disk does not finish the newly armed session.
|
||||
Temporary references and neutral sets clear retained processing history without
|
||||
restarting the locator while the pipeline is paused.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user