added pass through s11

This commit is contained in:
Ayzen
2026-03-26 17:21:25 +03:00
parent 24f7ebb2fb
commit 9ddbde22bd
38 changed files with 945 additions and 291 deletions
@@ -2,6 +2,7 @@
from __future__ import annotations
from PyQt6.QtCore import Qt
from PyQt6.QtWidgets import QGroupBox, QHBoxLayout, QLabel, QLineEdit, QPushButton, QSpinBox, QVBoxLayout
@@ -11,16 +12,13 @@ def build_data_actions_group(owner) -> QGroupBox:
layout = QVBoxLayout(group)
layout.setSpacing(8)
save_row = QHBoxLayout()
save_row.setSpacing(8)
save_button = QPushButton("Save Numpy Snapshot")
save_button = QPushButton("Save Snapshot")
save_button.clicked.connect(owner._save_snapshot)
save_vna_json_button = QPushButton("Save VNA History JSON")
save_vna_json_button = QPushButton("Save VNA JSON")
save_vna_json_button.clicked.connect(owner._save_vna_history_json)
remove_last_button = QPushButton("Remove Last Runtime Measurement")
remove_last_button = QPushButton("Remove Last Measurement")
remove_last_button.clicked.connect(owner._remove_last_runtime_history)
clear_history_button = QPushButton("Clear ALL Runtime History")
clear_history_button = QPushButton("Clear Runtime History")
clear_history_button.clicked.connect(owner._clear_all_runtime_history)
owner._save_count = QSpinBox()
owner._save_count.setMinimum(1)
@@ -35,14 +33,20 @@ def build_data_actions_group(owner) -> QGroupBox:
owner._vna_json_output_index.setMaximum(65_535)
owner._vna_json_output_index.setValue(0)
save_row.addWidget(save_button)
save_row.addWidget(save_vna_json_button)
save_row.addWidget(remove_last_button)
save_row.addWidget(clear_history_button)
save_row.addWidget(QLabel("Last N"))
save_row.addWidget(owner._save_count)
save_row.addStretch(1)
layout.addLayout(save_row)
button_column = QVBoxLayout()
button_column.setSpacing(8)
button_column.addWidget(save_button, alignment=Qt.AlignmentFlag.AlignLeft)
button_column.addWidget(save_vna_json_button, alignment=Qt.AlignmentFlag.AlignLeft)
button_column.addWidget(remove_last_button, alignment=Qt.AlignmentFlag.AlignLeft)
button_column.addWidget(clear_history_button, alignment=Qt.AlignmentFlag.AlignLeft)
layout.addLayout(button_column)
count_row = QHBoxLayout()
count_row.setSpacing(8)
count_row.addWidget(QLabel("Last N"))
count_row.addWidget(owner._save_count)
count_row.addStretch(1)
layout.addLayout(count_row)
json_row = QHBoxLayout()
json_row.setSpacing(8)
@@ -2,24 +2,25 @@
from __future__ import annotations
from PyQt6.QtWidgets import QGroupBox, QHBoxLayout, QPushButton
from PyQt6.QtCore import Qt
from PyQt6.QtWidgets import QGroupBox, QPushButton, QVBoxLayout
def build_hardware_actions_group(owner) -> QGroupBox:
"""Create hardware action buttons section."""
group = QGroupBox("Hardware Actions")
layout = QHBoxLayout(group)
layout = QVBoxLayout(group)
layout.setSpacing(8)
apply_radar_button = QPushButton("Apply Radar Settings")
apply_radar_button = QPushButton("Apply Radar")
apply_radar_button.clicked.connect(owner._apply_radar_settings)
layout.addWidget(apply_radar_button)
layout.addWidget(apply_radar_button, alignment=Qt.AlignmentFlag.AlignLeft)
save_config_button = QPushButton("Save Current Config")
save_config_button = QPushButton("Save Config")
save_config_button.clicked.connect(owner._save_current_config)
layout.addWidget(save_config_button)
layout.addWidget(save_config_button, alignment=Qt.AlignmentFlag.AlignLeft)
preprocess_button = QPushButton("Preprocessing Panel")
preprocess_button = QPushButton("Preprocessing")
preprocess_button.clicked.connect(owner._open_preprocess_panel)
layout.addWidget(preprocess_button)
layout.addWidget(preprocess_button, alignment=Qt.AlignmentFlag.AlignLeft)
return group
@@ -2,7 +2,8 @@
from __future__ import annotations
from PyQt6.QtWidgets import QGroupBox, QHBoxLayout, QLabel, QPushButton, QVBoxLayout
from PyQt6.QtCore import Qt
from PyQt6.QtWidgets import QGroupBox, QLabel, QPushButton, QVBoxLayout
def build_pipeline_group(owner) -> QGroupBox:
@@ -11,22 +12,17 @@ def build_pipeline_group(owner) -> QGroupBox:
layout = QVBoxLayout(group)
layout.setSpacing(8)
action_row = QHBoxLayout()
action_row.setSpacing(8)
start_button = QPushButton("Start")
start_button.clicked.connect(owner._start_run)
action_row.addWidget(start_button)
layout.addWidget(start_button, alignment=Qt.AlignmentFlag.AlignLeft)
single_button = QPushButton("Single Capture")
single_button.clicked.connect(owner._start_single_capture)
action_row.addWidget(single_button)
layout.addWidget(single_button, alignment=Qt.AlignmentFlag.AlignLeft)
stop_button = QPushButton("Stop")
stop_button.clicked.connect(owner._stop_run)
action_row.addWidget(stop_button)
layout.addLayout(action_row)
layout.addWidget(stop_button, alignment=Qt.AlignmentFlag.AlignLeft)
hint = QLabel("Start continuous run or single processed collection capture.")
hint.setObjectName("hintLabel")
@@ -61,6 +61,9 @@ def build_processing_group(owner) -> QGroupBox:
owner._processing_phase_deg.setSingleStep(1.0)
owner._processing_phase_deg.setValue(0.0)
owner._pass_through_channel = QComboBox()
owner._pass_through_channel.addItems(["s21", "s11"])
owner._show_magnitude_checkbox = QCheckBox("Show magnitude")
owner._show_magnitude_checkbox.setChecked(True)
@@ -91,6 +94,7 @@ def build_processing_group(owner) -> QGroupBox:
pass_through_form.addRow("Gain dB (live)", owner._processing_gain_db)
pass_through_form.addRow("Phase deg (live)", owner._processing_phase_deg)
pass_through_form.addRow("Channel", owner._pass_through_channel)
pass_through_form.addRow(owner._show_magnitude_checkbox)
pass_through_form.addRow(owner._show_phase_checkbox)
pass_through_form.addRow(owner._pass_through_fixed_y_enabled)
@@ -206,6 +210,7 @@ def build_processing_group(owner) -> QGroupBox:
owner._processing_mode.currentTextChanged.connect(owner._on_processing_mode_changed)
owner._processing_gain_db.valueChanged.connect(owner._on_processing_live_settings_changed)
owner._processing_phase_deg.valueChanged.connect(owner._on_processing_live_settings_changed)
owner._pass_through_channel.currentTextChanged.connect(owner._on_processing_live_settings_changed)
owner._show_magnitude_checkbox.toggled.connect(owner._on_trace_visibility_changed)
owner._show_phase_checkbox.toggled.connect(owner._on_trace_visibility_changed)
owner._pass_through_fixed_y_enabled.toggled.connect(sync_pass_through_y_controls)