added timing
This commit is contained in:
@@ -19,9 +19,9 @@ def capture_calibration_set(
|
||||
median_sweep_count: int = DEFAULT_CALIBRATION_MEDIAN_SWEEP_COUNT,
|
||||
) -> tuple[str, SweepCollection]:
|
||||
"""Capture all switch combinations and persist them as calibration set."""
|
||||
if config.is_multi_device:
|
||||
if config.is_matrix_radar:
|
||||
raise RuntimeError(
|
||||
"LibreVNA multi-device S21 through calibration is not supported by this one-shot full-set helper. "
|
||||
"Matrix-radar S21 through calibration is not supported by this one-shot full-set helper. "
|
||||
"Use the sequential preprocess capture flow so each virtual combo can be connected through "
|
||||
"and captured explicitly."
|
||||
)
|
||||
|
||||
@@ -16,7 +16,7 @@ from python_app.models.run_config_model import ComboModel, RunConfigModel
|
||||
from python_app.storage.npz_store import NpzStore
|
||||
from python_app.workflows.radar_config_variants import RadarConfigVariant
|
||||
from python_app.workflows.sequential_capture_workflow import (
|
||||
MULTI_DEVICE_MANUAL_CAPTURE_KINDS,
|
||||
MATRIX_RADAR_MANUAL_CAPTURE_KINDS,
|
||||
SequentialCaptureState,
|
||||
combine_collections_via_median,
|
||||
combine_traces_via_median,
|
||||
@@ -75,8 +75,9 @@ class MultiRadarSequentialCaptureSession:
|
||||
self._radar_variants = list(radar_variants)
|
||||
self._median_sweep_count = int(median_sweep_count)
|
||||
self._is_matrix_radar = base_config.is_matrix_radar
|
||||
self._is_multi_device = base_config.is_multi_device
|
||||
self._manual_multi_device_capture = self._is_multi_device and kind in MULTI_DEVICE_MANUAL_CAPTURE_KINDS
|
||||
self._manual_matrix_radar_capture = (
|
||||
self._is_matrix_radar and kind in MATRIX_RADAR_MANUAL_CAPTURE_KINDS
|
||||
)
|
||||
self._combos = (
|
||||
RunConfigModel.build_matrix_radar_virtual_combos()
|
||||
if self._is_matrix_radar
|
||||
@@ -169,7 +170,7 @@ class MultiRadarSequentialCaptureSession:
|
||||
set_name=self._set_name,
|
||||
captured_count=(
|
||||
self._next_index
|
||||
if self._is_matrix_radar and not self._manual_multi_device_capture
|
||||
if self._is_matrix_radar and not self._manual_matrix_radar_capture
|
||||
else len(self._captured_batches)
|
||||
),
|
||||
total_count=len(self._combos),
|
||||
@@ -177,7 +178,7 @@ class MultiRadarSequentialCaptureSession:
|
||||
can_undo=bool(self._captured_batches),
|
||||
is_complete=self.is_complete(),
|
||||
variant_count=len(self._radar_variants),
|
||||
supports_batch_capture=not self._manual_multi_device_capture,
|
||||
supports_batch_capture=not self._manual_matrix_radar_capture,
|
||||
)
|
||||
|
||||
def capture_current_combo(self) -> MultiRadarCaptureBatch:
|
||||
@@ -205,7 +206,7 @@ class MultiRadarSequentialCaptureSession:
|
||||
f"Matrix radar variant {variant.display_name} returned no traces"
|
||||
)
|
||||
collections.append(collection)
|
||||
if self._manual_multi_device_capture:
|
||||
if self._manual_matrix_radar_capture:
|
||||
per_sweep_traces = [select_trace_for_combo(collection, combo) for collection in collections]
|
||||
trace = combine_traces_via_median(per_sweep_traces)
|
||||
pending_traces_by_radar_key[variant.radar_key] = [trace]
|
||||
@@ -251,7 +252,7 @@ class MultiRadarSequentialCaptureSession:
|
||||
variant_labels=tuple(variant_labels),
|
||||
)
|
||||
self._captured_batches.append(batch)
|
||||
if self._is_matrix_radar and not self._manual_multi_device_capture:
|
||||
if self._is_matrix_radar and not self._manual_matrix_radar_capture:
|
||||
self._next_index = len(self._combos)
|
||||
else:
|
||||
self._next_index += 1
|
||||
@@ -264,7 +265,7 @@ class MultiRadarSequentialCaptureSession:
|
||||
if not self._captured_batches or self._next_index <= 0:
|
||||
raise RuntimeError("No captured combo is available to undo")
|
||||
|
||||
if self._is_matrix_radar and not self._manual_multi_device_capture:
|
||||
if self._is_matrix_radar and not self._manual_matrix_radar_capture:
|
||||
removed_batch = self._captured_batches[-1]
|
||||
for variant in self._radar_variants:
|
||||
traces = self._traces_by_radar_key[variant.radar_key]
|
||||
|
||||
@@ -15,7 +15,7 @@ from python_app.models.dataset_model import ComboKey, SweepCollection, TraceData
|
||||
from python_app.models.run_config_model import ComboModel, RunConfigModel
|
||||
from python_app.storage.npz_store import NpzStore, radar_key_from_config
|
||||
|
||||
MULTI_DEVICE_MANUAL_CAPTURE_KINDS = frozenset({"s21_calibration", "s11_open", "s11_short", "s11_load"})
|
||||
MATRIX_RADAR_MANUAL_CAPTURE_KINDS = frozenset({"s21_calibration", "s11_open", "s11_short", "s11_load"})
|
||||
DEFAULT_CALIBRATION_MEDIAN_SWEEP_COUNT = 5
|
||||
|
||||
|
||||
@@ -58,8 +58,9 @@ class SequentialCaptureSession:
|
||||
self._set_name = set_name
|
||||
self._median_sweep_count = int(median_sweep_count)
|
||||
self._is_matrix_radar = config.is_matrix_radar
|
||||
self._is_multi_device = config.is_multi_device
|
||||
self._manual_multi_device_capture = self._is_multi_device and kind in MULTI_DEVICE_MANUAL_CAPTURE_KINDS
|
||||
self._manual_matrix_radar_capture = (
|
||||
self._is_matrix_radar and kind in MATRIX_RADAR_MANUAL_CAPTURE_KINDS
|
||||
)
|
||||
self._combos = (
|
||||
RunConfigModel.build_matrix_radar_virtual_combos()
|
||||
if self._is_matrix_radar
|
||||
@@ -148,7 +149,7 @@ class SequentialCaptureSession:
|
||||
current_combo=current_combo,
|
||||
can_undo=bool(self._traces),
|
||||
is_complete=self.is_complete(),
|
||||
supports_batch_capture=not self._manual_multi_device_capture,
|
||||
supports_batch_capture=not self._manual_matrix_radar_capture,
|
||||
)
|
||||
|
||||
def capture_current_combo(self) -> TraceData:
|
||||
@@ -166,7 +167,7 @@ class SequentialCaptureSession:
|
||||
if not collection.traces:
|
||||
raise RuntimeError("Matrix radar capture returned no traces")
|
||||
collections.append(collection)
|
||||
if self._manual_multi_device_capture:
|
||||
if self._manual_matrix_radar_capture:
|
||||
per_sweep_traces = [select_trace_for_combo(collection, combo) for collection in collections]
|
||||
trace = combine_traces_via_median(per_sweep_traces)
|
||||
self._traces.append(trace)
|
||||
@@ -208,7 +209,7 @@ class SequentialCaptureSession:
|
||||
if not self._traces or self._next_index <= 0:
|
||||
raise RuntimeError("No captured combo is available to undo")
|
||||
|
||||
if self._is_matrix_radar and not self._manual_multi_device_capture:
|
||||
if self._is_matrix_radar and not self._manual_matrix_radar_capture:
|
||||
if len(self._traces) != len(self._combos):
|
||||
raise RuntimeError("Capture session state is inconsistent; matrix radar trace matrix is incomplete")
|
||||
removed_trace = self._traces[-1]
|
||||
|
||||
Reference in New Issue
Block a user