Set sweep modes via sweep class

pull/305/head
Holger Müller 2020-07-27 18:36:09 +02:00
rodzic ec643ebefc
commit fd6aad74cf
2 zmienionych plików z 17 dodań i 17 usunięć

Wyświetl plik

@ -26,7 +26,7 @@ from PyQt5.QtCore import pyqtSlot, pyqtSignal
from NanoVNASaver.Calibration import correct_delay
from NanoVNASaver.RFTools import Datapoint
from NanoVNASaver.Settings import Sweep
from NanoVNASaver.Settings.Sweep import Sweep, SweepMode
logger = logging.getLogger(__name__)
@ -71,8 +71,6 @@ class SweepWorker(QtCore.QRunnable):
self.init_data()
self.stopped = False
self.running = False
self.continuousSweep = False
self.averaging = False
self.error_message = ""
self.offsetDelay = 0
@ -111,9 +109,9 @@ class SweepWorker(QtCore.QRunnable):
return
averages = 1
if self.averaging:
logger.info("%d averages", self.averages)
if sweep.properties.mode == SweepMode.AVERAGE:
averages = sweep.properties.averages[0]
logger.info("%d averages", averages)
if sweep != self.sweep: # parameters changed
self.sweep = sweep
@ -140,7 +138,7 @@ class SweepWorker(QtCore.QRunnable):
self.running = False
self.signals.sweepError.emit()
if not self.continuousSweep:
if not sweep.properties.mode == SweepMode.CONTINOUS:
finished = True
if self.sweep.segments > 1:
@ -319,8 +317,6 @@ class SweepWorker(QtCore.QRunnable):
f"device settings screen.")
return returndata
def setContinuousSweep(self, continuous_sweep: bool):
self.continuousSweep = continuous_sweep
def gui_error(self, message: str):
self.error_message = message

Wyświetl plik

@ -66,6 +66,8 @@ class SweepSettingsWindow(QtWidgets.QWidget):
settings_layout.addWidget(self.single_sweep_radiobutton)
self.single_sweep_radiobutton.setChecked(True)
self.single_sweep_radiobutton.clicked.connect(
lambda: self.update_mode(SweepMode.SINGLE))
settings_layout.addWidget(self.continuous_sweep_radiobutton)
settings_layout.addWidget(self.averaged_sweep_radiobutton)
@ -93,12 +95,12 @@ class SweepSettingsWindow(QtWidgets.QWidget):
# settings_layout.addRow(QtWidgets.QLabel(
# "Common values with un-un are 16.9 (49:1 2450) 9.54 (9:1 450)"))
self.continuous_sweep_radiobutton.toggled.connect(
lambda: self.app.worker.setContinuousSweep(
self.continuous_sweep_radiobutton.isChecked()))
self.averaged_sweep_radiobutton.toggled.connect(self.updateAveraging)
self.averages.editingFinished.connect(self.updateAveraging)
self.truncates.editingFinished.connect(self.updateAveraging)
self.continuous_sweep_radiobutton.clicked.connect(
lambda: self.update_mode(SweepMode.CONTINOUS))
self.averaged_sweep_radiobutton.clicked.connect(
lambda: self.update_mode(SweepMode.AVERAGE))
self.averages.editingFinished.connect(self.update_averaging)
self.truncates.editingFinished.connect(self.update_averaging)
self.s21att.editingFinished.connect(self.setS21Attenuator)
layout.addWidget(settings_box)
@ -204,7 +206,7 @@ class SweepSettingsWindow(QtWidgets.QWidget):
self.app.sweep_control.input_end.textEdited.emit(
self.app.sweep_control.input_end.text())
def updateAveraging(self):
def update_averaging(self):
try:
amount = int(self.averages.text())
truncates = int(self.truncates.text())
@ -217,10 +219,12 @@ class SweepSettingsWindow(QtWidgets.QWidget):
self.averages.setText("3")
self.truncates.setText("0")
with self.app.sweep.lock:
if self.averaged_sweep_radiobutton.isChecked():
self.app.sweep.properties.mode = SweepMode.AVERAGE
self.app.sweep.properties.averages = (amount, truncates)
def update_mode(self, mode: 'SweepMode'):
with self.app.sweep.lock:
self.app.sweep.properties.mode = mode
def update_title(self, title: str = ""):
self.app.sweep.properties.name = title
self.app.update_sweep_title()