sn9000 support
This commit is contained in:
@@ -8,7 +8,7 @@ import time
|
||||
|
||||
import numpy as np
|
||||
|
||||
from python_app.hardware_full.multi_device_service import MultiDeviceLibreVnaService
|
||||
from python_app.hardware_full.matrix_radar_service import MatrixRadarService, create_matrix_radar_service
|
||||
from python_app.hardware_full.single_radar_service import create_single_radar_service
|
||||
from python_app.hardware_full.switch_service import SwitchService
|
||||
from python_app.models.dataset_model import ComboKey, SweepCollection, TraceData
|
||||
@@ -57,11 +57,12 @@ class SequentialCaptureSession:
|
||||
self._kind = kind
|
||||
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._combos = (
|
||||
RunConfigModel.build_multi_device_virtual_combos()
|
||||
if self._is_multi_device
|
||||
RunConfigModel.build_matrix_radar_virtual_combos()
|
||||
if self._is_matrix_radar
|
||||
else RunConfigModel.build_full_combos(config.input_switch.positions, config.output_switch.positions)
|
||||
)
|
||||
if not self._combos:
|
||||
@@ -71,14 +72,8 @@ class SequentialCaptureSession:
|
||||
self._next_index = 0
|
||||
self._opened = False
|
||||
|
||||
if self._is_multi_device:
|
||||
self._radar = MultiDeviceLibreVnaService(
|
||||
master_serial=config.radar.serial,
|
||||
slave_serials=list(config.radar.multi_device.slave_serials),
|
||||
force_external_reference=config.radar.multi_device.force_external_reference,
|
||||
recovery_attempts=config.radar.multi_device.recovery_attempts,
|
||||
backend_mode=config.radar.driver_mode,
|
||||
)
|
||||
if self._is_matrix_radar:
|
||||
self._radar: MatrixRadarService = create_matrix_radar_service(config)
|
||||
self._input_switch = None
|
||||
self._output_switch = None
|
||||
else:
|
||||
@@ -164,12 +159,12 @@ class SequentialCaptureSession:
|
||||
if combo is None:
|
||||
raise RuntimeError("Capture session is already complete")
|
||||
|
||||
if self._is_multi_device:
|
||||
if self._is_matrix_radar:
|
||||
collections: list[SweepCollection] = []
|
||||
for _ in range(self._median_sweep_count):
|
||||
collection = self._radar.acquire_collection(collection_id=1)
|
||||
if not collection.traces:
|
||||
raise RuntimeError("Multi-device capture returned no traces")
|
||||
raise RuntimeError("Matrix radar capture returned no traces")
|
||||
collections.append(collection)
|
||||
if self._manual_multi_device_capture:
|
||||
per_sweep_traces = [select_trace_for_combo(collection, combo) for collection in collections]
|
||||
@@ -213,9 +208,9 @@ class SequentialCaptureSession:
|
||||
if not self._traces or self._next_index <= 0:
|
||||
raise RuntimeError("No captured combo is available to undo")
|
||||
|
||||
if self._is_multi_device and not self._manual_multi_device_capture:
|
||||
if self._is_matrix_radar and not self._manual_multi_device_capture:
|
||||
if len(self._traces) != len(self._combos):
|
||||
raise RuntimeError("Capture session state is inconsistent; multi-device trace matrix is incomplete")
|
||||
raise RuntimeError("Capture session state is inconsistent; matrix radar trace matrix is incomplete")
|
||||
removed_trace = self._traces[-1]
|
||||
self._traces.clear()
|
||||
self._next_index = 0
|
||||
|
||||
Reference in New Issue
Block a user