From 174276174606af00d70cd880fefe546dbf79d496 Mon Sep 17 00:00:00 2001 From: Patrick Winnertz Date: Fri, 1 Mar 2024 09:18:08 +0100 Subject: [PATCH 01/17] Extend the self.workingDir variable to an array This helps if the QtTinySA.py is called from a different directory as this could cause issues if the user is working like so: python QtTinySA/QtTinySA.py or if the qttinysa python file is found in /usr/share/qttinysa and symlinked to /usr/bin/qttinysa The array consists of the directory where called script is found - and if this is a symlink the path where the symlink points too and of course of the current working directory. --- QtTinySA.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/QtTinySA.py b/QtTinySA.py index abdac37..ec7e283 100755 --- a/QtTinySA.py +++ b/QtTinySA.py @@ -735,7 +735,7 @@ def __init__(self): self.dbName = "QtTSAprefs.db" self.personalDir = platformdirs.user_config_dir(appname=app.applicationName(), ensure_exists=True) self.globalDir = platformdirs.site_config_dir(appname=app.applicationName()) - self.workingDir = os.getcwd() + self.workingDirs = [os.path.dirname(__file__), os.path.dirname(os.path.realpath(__file__)), os.getcwd()] self.dbpath = self._getPersonalisedPath() def _getPersonalisedPath(self): @@ -754,10 +754,12 @@ def _getPersonalisedPath(self): if returnpath is None: # no config database file found in personal or global directories logging.info(f'No configuration database file exists in {self.personalDir} or {self.globalDir}') - # Look for one in the current working folder - if os.path.exists(os.path.join(self.workingDir, self.dbName)): - logging.info(f'Copying configuration database from {self.workingDir}') - c = shutil.copy(os.path.join(self.workingDir, self.dbName), self.personalDir) + # Look for one in the current working folder and in the folder where the python file is stored (or linked to): + # In case QtTinySA is called from outside the stored folder. + for workingDir in self.workingDirs: + if os.path.exists(os.path.join(workingDir, self.dbName)): + logging.info(f'Copying configuration database from {self.workingDir}') + c = shutil.copy(os.path.join(self.workingDir, self.dbName), self.personalDir) if os.path.exists(os.path.join(self.personalDir, self.dbName)): returnpath = self.personalDir logging.info(f'Personal configuration database created at {c}') From 4d122bb9e87149feb6ba6b1fdaee816b55b5f20b Mon Sep 17 00:00:00 2001 From: Patrick Winnertz Date: Fri, 1 Mar 2024 09:27:23 +0100 Subject: [PATCH 02/17] Rename two more occurences of self.workingDir to local var workingDir --- QtTinySA.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/QtTinySA.py b/QtTinySA.py index ec7e283..5a647f3 100755 --- a/QtTinySA.py +++ b/QtTinySA.py @@ -758,8 +758,8 @@ def _getPersonalisedPath(self): # In case QtTinySA is called from outside the stored folder. for workingDir in self.workingDirs: if os.path.exists(os.path.join(workingDir, self.dbName)): - logging.info(f'Copying configuration database from {self.workingDir}') - c = shutil.copy(os.path.join(self.workingDir, self.dbName), self.personalDir) + logging.info(f'Copying configuration database from {workingDir}') + c = shutil.copy(os.path.join(workingDir, self.dbName), self.personalDir) if os.path.exists(os.path.join(self.personalDir, self.dbName)): returnpath = self.personalDir logging.info(f'Personal configuration database created at {c}') From 95ca44a922fdd185b5e134478f2b82c0919a2a4e Mon Sep 17 00:00:00 2001 From: G4IXT Date: Mon, 11 Mar 2024 22:39:03 +0000 Subject: [PATCH 03/17] v0.10.2 wip wip --- QtTSApreferences.py | 318 ++++++------- QtTSAprefs.db | Bin 131072 -> 0 bytes QtTinySA-folder.spec | 44 ++ QtTinySA.py | 22 +- QtTinySA.spec | 26 +- QtTinySpectrum.ui | 123 ++--- Screenshots/RF_mic-markers.png | Bin 0 -> 70078 bytes Screenshots/RF_mic.png | Bin 0 -> 193049 bytes nuitka-build.txt | 42 ++ preferences.ui | 793 +++++++++++++++++---------------- 10 files changed, 765 insertions(+), 603 deletions(-) delete mode 100644 QtTSAprefs.db create mode 100644 QtTinySA-folder.spec create mode 100644 Screenshots/RF_mic-markers.png create mode 100644 Screenshots/RF_mic.png create mode 100644 nuitka-build.txt diff --git a/QtTSApreferences.py b/QtTSApreferences.py index 72f9480..14d2a6e 100644 --- a/QtTSApreferences.py +++ b/QtTSApreferences.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Form implementation generated from reading ui file 'preferences.ui' +# Form implementation generated from reading ui file 'preferences-l.ui' # # Created by: PyQt5 UI code generator 5.15.10 # @@ -14,117 +14,112 @@ class Ui_Preferences(object): def setupUi(self, Preferences): Preferences.setObjectName("Preferences") - Preferences.resize(412, 701) - self.gridLayout_2 = QtWidgets.QGridLayout(Preferences) - self.gridLayout_2.setObjectName("gridLayout_2") - self.gridLayout = QtWidgets.QGridLayout() + Preferences.resize(800, 600) + self.layoutWidget = QtWidgets.QWidget(Preferences) + self.layoutWidget.setGeometry(QtCore.QRect(10, 10, 411, 572)) + self.layoutWidget.setObjectName("layoutWidget") + self.gridLayout = QtWidgets.QGridLayout(self.layoutWidget) + self.gridLayout.setContentsMargins(0, 0, 0, 0) self.gridLayout.setObjectName("gridLayout") - self.lowLO = QtWidgets.QRadioButton(Preferences) - self.lowLO.setChecked(True) - self.lowLO.setObjectName("lowLO") - self.buttonGroup = QtWidgets.QButtonGroup(Preferences) - self.buttonGroup.setObjectName("buttonGroup") - self.buttonGroup.addButton(self.lowLO) - self.gridLayout.addWidget(self.lowLO, 17, 3, 1, 1) - self.label_3 = QtWidgets.QLabel(Preferences) - self.label_3.setObjectName("label_3") - self.gridLayout.addWidget(self.label_3, 14, 0, 1, 2) - self.label_14 = QtWidgets.QLabel(Preferences) + self.label_5 = QtWidgets.QLabel(self.layoutWidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_5.sizePolicy().hasHeightForWidth()) + self.label_5.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setBold(True) font.setWeight(75) - self.label_14.setFont(font) - self.label_14.setObjectName("label_14") - self.gridLayout.addWidget(self.label_14, 16, 0, 1, 2) - self.freqBands = QtWidgets.QTableView(Preferences) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) + self.label_5.setFont(font) + self.label_5.setObjectName("label_5") + self.gridLayout.addWidget(self.label_5, 0, 0, 1, 3) + self.addRow = QtWidgets.QPushButton(self.layoutWidget) + self.addRow.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.addRow.sizePolicy().hasHeightForWidth()) + self.addRow.setSizePolicy(sizePolicy) + self.addRow.setObjectName("addRow") + self.gridLayout.addWidget(self.addRow, 4, 2, 1, 1) + self.freqBands = QtWidgets.QTableView(self.layoutWidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.freqBands.sizePolicy().hasHeightForWidth()) self.freqBands.setSizePolicy(sizePolicy) + self.freqBands.setMinimumSize(QtCore.QSize(0, 450)) self.freqBands.setObjectName("freqBands") - self.gridLayout.addWidget(self.freqBands, 2, 0, 2, 4) - self.deleteRow = QtWidgets.QPushButton(Preferences) + self.gridLayout.addWidget(self.freqBands, 1, 0, 2, 4) + self.deleteRow = QtWidgets.QPushButton(self.layoutWidget) self.deleteRow.setEnabled(True) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.deleteRow.sizePolicy().hasHeightForWidth()) self.deleteRow.setSizePolicy(sizePolicy) self.deleteRow.setObjectName("deleteRow") - self.gridLayout.addWidget(self.deleteRow, 5, 3, 1, 1) - self.label = QtWidgets.QLabel(Preferences) - self.label.setObjectName("label") - self.gridLayout.addWidget(self.label, 13, 0, 1, 2) - self.label_2 = QtWidgets.QLabel(Preferences) - self.label_2.setObjectName("label_2") - self.gridLayout.addWidget(self.label_2, 11, 0, 1, 2) - self.label_10 = QtWidgets.QLabel(Preferences) - self.label_10.setObjectName("label_10") - self.gridLayout.addWidget(self.label_10, 8, 0, 1, 2) - self.addRow = QtWidgets.QPushButton(Preferences) - self.addRow.setEnabled(True) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + self.gridLayout.addWidget(self.deleteRow, 4, 3, 1, 1) + self.deleteAll = QtWidgets.QPushButton(self.layoutWidget) + self.deleteAll.setObjectName("deleteAll") + self.gridLayout.addWidget(self.deleteAll, 5, 3, 1, 1) + self.label_12 = QtWidgets.QLabel(self.layoutWidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.addRow.sizePolicy().hasHeightForWidth()) - self.addRow.setSizePolicy(sizePolicy) - self.addRow.setObjectName("addRow") - self.gridLayout.addWidget(self.addRow, 5, 2, 1, 1) - self.label_11 = QtWidgets.QLabel(Preferences) - self.label_11.setObjectName("label_11") - self.gridLayout.addWidget(self.label_11, 7, 0, 1, 2) - self.label_13 = QtWidgets.QLabel(Preferences) - self.label_13.setObjectName("label_13") - self.gridLayout.addWidget(self.label_13, 17, 0, 1, 2) - self.label_12 = QtWidgets.QLabel(Preferences) + sizePolicy.setHeightForWidth(self.label_12.sizePolicy().hasHeightForWidth()) + self.label_12.setSizePolicy(sizePolicy) self.label_12.setObjectName("label_12") - self.gridLayout.addWidget(self.label_12, 1, 0, 1, 1) - self.zeroLine = QtWidgets.QCheckBox(Preferences) - self.zeroLine.setChecked(False) - self.zeroLine.setObjectName("zeroLine") - self.gridLayout.addWidget(self.zeroLine, 8, 3, 1, 1) - self.highLO = QtWidgets.QRadioButton(Preferences) - self.highLO.setObjectName("highLO") - self.buttonGroup.addButton(self.highLO) - self.gridLayout.addWidget(self.highLO, 17, 2, 1, 1) - self.neg25Line = QtWidgets.QCheckBox(Preferences) - self.neg25Line.setChecked(False) - self.neg25Line.setObjectName("neg25Line") - self.gridLayout.addWidget(self.neg25Line, 9, 3, 1, 1) - self.label_7 = QtWidgets.QLabel(Preferences) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.label_7.setFont(font) - self.label_7.setObjectName("label_7") - self.gridLayout.addWidget(self.label_7, 10, 0, 1, 2) - self.importButton = QtWidgets.QPushButton(Preferences) + self.gridLayout.addWidget(self.label_12, 3, 0, 1, 1) + self.filterBox = QtWidgets.QComboBox(self.layoutWidget) + self.filterBox.setObjectName("filterBox") + self.gridLayout.addWidget(self.filterBox, 3, 1, 1, 1) + self.exportButton = QtWidgets.QPushButton(self.layoutWidget) + self.exportButton.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.exportButton.sizePolicy().hasHeightForWidth()) + self.exportButton.setSizePolicy(sizePolicy) + self.exportButton.setObjectName("exportButton") + self.gridLayout.addWidget(self.exportButton, 4, 1, 1, 1) + self.importButton = QtWidgets.QPushButton(self.layoutWidget) self.importButton.setEnabled(True) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.importButton.sizePolicy().hasHeightForWidth()) self.importButton.setSizePolicy(sizePolicy) self.importButton.setObjectName("importButton") - self.gridLayout.addWidget(self.importButton, 5, 0, 1, 1) - self.filterBox = QtWidgets.QComboBox(Preferences) - self.filterBox.setObjectName("filterBox") - self.gridLayout.addWidget(self.filterBox, 1, 1, 1, 1) - self.label_4 = QtWidgets.QLabel(Preferences) - self.label_4.setObjectName("label_4") - self.gridLayout.addWidget(self.label_4, 15, 0, 1, 2) - self.label_9 = QtWidgets.QLabel(Preferences) - self.label_9.setObjectName("label_9") - self.gridLayout.addWidget(self.label_9, 9, 0, 1, 2) - self.label_5 = QtWidgets.QLabel(Preferences) + self.gridLayout.addWidget(self.importButton, 4, 0, 1, 1) + self.layoutWidget1 = QtWidgets.QWidget(Preferences) + self.layoutWidget1.setGeometry(QtCore.QRect(440, 10, 351, 571)) + self.layoutWidget1.setObjectName("layoutWidget1") + self.gridLayout_2 = QtWidgets.QGridLayout(self.layoutWidget1) + self.gridLayout_2.setContentsMargins(0, 0, 0, 0) + self.gridLayout_2.setObjectName("gridLayout_2") + self.zeroLine = QtWidgets.QCheckBox(self.layoutWidget1) + self.zeroLine.setChecked(False) + self.zeroLine.setObjectName("zeroLine") + self.gridLayout_2.addWidget(self.zeroLine, 2, 1, 1, 1) + self.label = QtWidgets.QLabel(self.layoutWidget1) + self.label.setObjectName("label") + self.gridLayout_2.addWidget(self.label, 7, 0, 1, 1) + self.minPoints = QtWidgets.QSpinBox(self.layoutWidget1) + self.minPoints.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) + self.minPoints.setMinimum(25) + self.minPoints.setMaximum(450) + self.minPoints.setProperty("value", 450) + self.minPoints.setObjectName("minPoints") + self.gridLayout_2.addWidget(self.minPoints, 8, 1, 1, 1) + self.label_14 = QtWidgets.QLabel(self.layoutWidget1) font = QtGui.QFont() font.setBold(True) font.setWeight(75) - self.label_5.setFont(font) - self.label_5.setObjectName("label_5") - self.gridLayout.addWidget(self.label_5, 0, 0, 1, 2) - self.peakThreshold = QtWidgets.QSpinBox(Preferences) + self.label_14.setFont(font) + self.label_14.setObjectName("label_14") + self.gridLayout_2.addWidget(self.label_14, 10, 0, 1, 2) + self.peakThreshold = QtWidgets.QSpinBox(self.layoutWidget1) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -139,64 +134,89 @@ def setupUi(self, Preferences): self.peakThreshold.setMaximum(-20) self.peakThreshold.setProperty("value", -90) self.peakThreshold.setObjectName("peakThreshold") - self.gridLayout.addWidget(self.peakThreshold, 11, 3, 1, 1) - self.maxPoints = QtWidgets.QSpinBox(Preferences) - self.maxPoints.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) - self.maxPoints.setMinimum(25) - self.maxPoints.setMaximum(100000) - self.maxPoints.setProperty("value", 30000) - self.maxPoints.setObjectName("maxPoints") - self.gridLayout.addWidget(self.maxPoints, 15, 3, 1, 1) - self.plus6Line = QtWidgets.QCheckBox(Preferences) - self.plus6Line.setChecked(False) - self.plus6Line.setObjectName("plus6Line") - self.gridLayout.addWidget(self.plus6Line, 7, 3, 1, 1) - self.minPoints = QtWidgets.QSpinBox(Preferences) - self.minPoints.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) - self.minPoints.setMinimum(25) - self.minPoints.setMaximum(450) - self.minPoints.setProperty("value", 450) - self.minPoints.setObjectName("minPoints") - self.gridLayout.addWidget(self.minPoints, 14, 3, 1, 1) - self.rbw_x = QtWidgets.QSpinBox(Preferences) + self.gridLayout_2.addWidget(self.peakThreshold, 5, 1, 1, 1) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_2.addItem(spacerItem, 16, 0, 1, 1) + self.freqLO = QtWidgets.QDoubleSpinBox(self.layoutWidget1) + self.freqLO.setDecimals(6) + self.freqLO.setMinimum(0.0) + self.freqLO.setMaximum(100000.0) + self.freqLO.setProperty("value", 0.0) + self.freqLO.setObjectName("freqLO") + self.gridLayout_2.addWidget(self.freqLO, 12, 1, 1, 1) + self.rbw_x = QtWidgets.QSpinBox(self.layoutWidget1) self.rbw_x.setMinimum(2) self.rbw_x.setMaximum(10) self.rbw_x.setProperty("value", 3) self.rbw_x.setObjectName("rbw_x") - self.gridLayout.addWidget(self.rbw_x, 13, 3, 1, 1) - self.label_8 = QtWidgets.QLabel(Preferences) + self.gridLayout_2.addWidget(self.rbw_x, 7, 1, 1, 1) + self.label_4 = QtWidgets.QLabel(self.layoutWidget1) + self.label_4.setObjectName("label_4") + self.gridLayout_2.addWidget(self.label_4, 9, 0, 1, 1) + self.label_8 = QtWidgets.QLabel(self.layoutWidget1) font = QtGui.QFont() font.setBold(True) font.setWeight(75) self.label_8.setFont(font) self.label_8.setObjectName("label_8") - self.gridLayout.addWidget(self.label_8, 12, 0, 1, 2) - self.label_6 = QtWidgets.QLabel(Preferences) + self.gridLayout_2.addWidget(self.label_8, 6, 0, 1, 1) + self.label_6 = QtWidgets.QLabel(self.layoutWidget1) font = QtGui.QFont() font.setBold(True) font.setWeight(75) self.label_6.setFont(font) self.label_6.setObjectName("label_6") - self.gridLayout.addWidget(self.label_6, 6, 0, 1, 3) - self.exportButton = QtWidgets.QPushButton(Preferences) - self.exportButton.setEnabled(True) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.exportButton.sizePolicy().hasHeightForWidth()) - self.exportButton.setSizePolicy(sizePolicy) - self.exportButton.setObjectName("exportButton") - self.gridLayout.addWidget(self.exportButton, 5, 1, 1, 1) - self.label_15 = QtWidgets.QLabel(Preferences) + self.gridLayout_2.addWidget(self.label_6, 0, 0, 1, 2) + self.neg25Line = QtWidgets.QCheckBox(self.layoutWidget1) + self.neg25Line.setChecked(False) + self.neg25Line.setObjectName("neg25Line") + self.gridLayout_2.addWidget(self.neg25Line, 3, 1, 1, 1) + self.label_11 = QtWidgets.QLabel(self.layoutWidget1) + self.label_11.setObjectName("label_11") + self.gridLayout_2.addWidget(self.label_11, 1, 0, 1, 1) + self.label_9 = QtWidgets.QLabel(self.layoutWidget1) + self.label_9.setObjectName("label_9") + self.gridLayout_2.addWidget(self.label_9, 3, 0, 1, 1) + self.label_15 = QtWidgets.QLabel(self.layoutWidget1) self.label_15.setObjectName("label_15") - self.gridLayout.addWidget(self.label_15, 18, 0, 1, 2) - self.freqLO = QtWidgets.QDoubleSpinBox(Preferences) - self.freqLO.setDecimals(6) - self.freqLO.setMaximum(100000.0) - self.freqLO.setProperty("value", 0.0) - self.freqLO.setObjectName("freqLO") - self.gridLayout.addWidget(self.freqLO, 18, 2, 1, 2) - self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1) + self.gridLayout_2.addWidget(self.label_15, 11, 0, 1, 1) + self.plus6Line = QtWidgets.QCheckBox(self.layoutWidget1) + self.plus6Line.setChecked(False) + self.plus6Line.setObjectName("plus6Line") + self.gridLayout_2.addWidget(self.plus6Line, 1, 1, 1, 1) + self.label_13 = QtWidgets.QLabel(self.layoutWidget1) + self.label_13.setText("") + self.label_13.setObjectName("label_13") + self.gridLayout_2.addWidget(self.label_13, 13, 0, 1, 1) + self.label_2 = QtWidgets.QLabel(self.layoutWidget1) + self.label_2.setObjectName("label_2") + self.gridLayout_2.addWidget(self.label_2, 5, 0, 1, 1) + self.label_10 = QtWidgets.QLabel(self.layoutWidget1) + self.label_10.setObjectName("label_10") + self.gridLayout_2.addWidget(self.label_10, 2, 0, 1, 1) + self.maxPoints = QtWidgets.QSpinBox(self.layoutWidget1) + self.maxPoints.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons) + self.maxPoints.setMinimum(25) + self.maxPoints.setMaximum(100000) + self.maxPoints.setProperty("value", 30000) + self.maxPoints.setObjectName("maxPoints") + self.gridLayout_2.addWidget(self.maxPoints, 9, 1, 1, 1) + self.label_7 = QtWidgets.QLabel(self.layoutWidget1) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.label_7.setFont(font) + self.label_7.setObjectName("label_7") + self.gridLayout_2.addWidget(self.label_7, 4, 0, 1, 1) + self.label_3 = QtWidgets.QLabel(self.layoutWidget1) + self.label_3.setObjectName("label_3") + self.gridLayout_2.addWidget(self.label_3, 8, 0, 1, 1) + self.label_16 = QtWidgets.QLabel(self.layoutWidget1) + self.label_16.setObjectName("label_16") + self.gridLayout_2.addWidget(self.label_16, 12, 0, 1, 1) + self.highLO = QtWidgets.QCheckBox(self.layoutWidget1) + self.highLO.setObjectName("highLO") + self.gridLayout_2.addWidget(self.highLO, 11, 1, 1, 1) self.retranslateUi(Preferences) QtCore.QMetaObject.connectSlotsByName(Preferences) @@ -204,29 +224,29 @@ def setupUi(self, Preferences): def retranslateUi(self, Preferences): _translate = QtCore.QCoreApplication.translate Preferences.setWindowTitle(_translate("Preferences", "Preferences")) - self.lowLO.setText(_translate("Preferences", "Low")) - self.label_3.setText(_translate("Preferences", "Auto minimum points")) - self.label_14.setText(_translate("Preferences", "Frequency Settings")) - self.deleteRow.setText(_translate("Preferences", "Delete Row")) - self.label.setText(_translate("Preferences", "Points / Resolution Bandwidth")) - self.label_2.setText(_translate("Preferences", "Detection Threshold")) - self.label_10.setText(_translate("Preferences", "Max with auto attenuator")) + self.label_5.setText(_translate("Preferences", "Preset Bands and Markers")) self.addRow.setText(_translate("Preferences", "Add Row")) - self.label_11.setText(_translate("Preferences", "Absolute maximum")) - self.label_13.setText(_translate("Preferences", "LO Offset")) - self.label_12.setText(_translate("Preferences", "Filter table on")) - self.zeroLine.setText(_translate("Preferences", " 0dBm")) - self.highLO.setText(_translate("Preferences", "High")) - self.neg25Line.setText(_translate("Preferences", "-25dBm")) - self.label_7.setText(_translate("Preferences", "Peak Marker Settings")) + self.deleteRow.setText(_translate("Preferences", "Delete Row")) + self.deleteAll.setText(_translate("Preferences", "Delete All")) + self.label_12.setText(_translate("Preferences", "Filter on:")) + self.exportButton.setText(_translate("Preferences", "Export")) self.importButton.setText(_translate("Preferences", "Import")) - self.label_4.setText(_translate("Preferences", "Auto maximum points")) - self.label_9.setText(_translate("Preferences", "Max for best accuracy")) - self.label_5.setText(_translate("Preferences", "Preset Bands and Markers")) + self.zeroLine.setText(_translate("Preferences", " 0dBm")) + self.label.setText(_translate("Preferences", "Points / Resolution Bandwidth")) + self.label_14.setText(_translate("Preferences", "Frequency Offset ")) self.peakThreshold.setSuffix(_translate("Preferences", "dBm")) - self.plus6Line.setText(_translate("Preferences", "+6dBm")) + self.freqLO.setSuffix(_translate("Preferences", "MHz")) + self.label_4.setText(_translate("Preferences", "Auto maximum points")) self.label_8.setText(_translate("Preferences", "Scan Points Settings")) self.label_6.setText(_translate("Preferences", "Signal Level Reminder lines")) - self.exportButton.setText(_translate("Preferences", "Export")) - self.label_15.setText(_translate("Preferences", "Offset frequency")) - self.freqLO.setSuffix(_translate("Preferences", "MHz")) + self.neg25Line.setText(_translate("Preferences", "-25dBm")) + self.label_11.setText(_translate("Preferences", "Absolute maximum")) + self.label_9.setText(_translate("Preferences", "Max for best accuracy")) + self.label_15.setText(_translate("Preferences", "External LO above IF")) + self.plus6Line.setText(_translate("Preferences", "+6dBm")) + self.label_2.setText(_translate("Preferences", "Detection Threshold")) + self.label_10.setText(_translate("Preferences", "Max with auto attenuator")) + self.label_7.setText(_translate("Preferences", "Peak Marker Settings")) + self.label_3.setText(_translate("Preferences", "Auto minimum points")) + self.label_16.setText(_translate("Preferences", "External LO Frequency")) + self.highLO.setText(_translate("Preferences", "True")) diff --git a/QtTSAprefs.db b/QtTSAprefs.db deleted file mode 100644 index 19de68362a0bd34200d33523cdb69f749b40f3b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131072 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 F_)ngrQ?UR5 diff --git a/QtTinySA-folder.spec b/QtTinySA-folder.spec new file mode 100644 index 0000000..bf513fa --- /dev/null +++ b/QtTinySA-folder.spec @@ -0,0 +1,44 @@ +# -*- mode: python ; coding: utf-8 -*- + + +a = Analysis( + ['QtTinySA.py'], + pathex=[], + binaries=[], + datas=[('QtTSAprefs.db', '.')], + hiddenimports=[], + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=['pandas','setuptools', 'tk', 'wheel', 'zipp', 'pyyaml', 'packaging', 'altgraph', 'mkl', 'fortran', 'matlab'], + noarchive=False, +) +pyz = PYZ(a.pure) + +exe = EXE( + pyz, + a.scripts, + [], + exclude_binaries=True, + name='QtTinySA', + icon=['tinySA.ico'], + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + console=True, + disable_windowed_traceback=False, + argv_emulation=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None, +) +coll = COLLECT( + exe, + a.binaries, + a.datas, + strip=False, + upx=True, + upx_exclude=[], + name='QtTinySA', +) diff --git a/QtTinySA.py b/QtTinySA.py index 5a647f3..b723fc5 100755 --- a/QtTinySA.py +++ b/QtTinySA.py @@ -26,7 +26,7 @@ from platform import system from PyQt5 import QtWidgets, QtCore, QtGui from PyQt5.QtWidgets import QMessageBox, QDataWidgetMapper, QFileDialog -from PyQt5.QtSql import QSqlDatabase, QSqlRelation, QSqlRelationalTableModel, QSqlRelationalDelegate +from PyQt5.QtSql import QSqlDatabase, QSqlRelation, QSqlRelationalTableModel, QSqlRelationalDelegate, QSqlQuery import pyqtgraph import QtTinySpectrum # the GUI import QtTSApreferences # the GUI preferences window @@ -37,7 +37,7 @@ # For 3D import pyqtgraph.opengl as pyqtgl -os.environ['PYOPENGL_PLATFORM'] = 'egl' +# os.environ['PYOPENGL_PLATFORM'] = 'egl' # Defaults to non local configuration/data dirs - needed for packaging if system() == "Linux": @@ -774,7 +774,7 @@ def connect(self): self.db.setDatabaseName(os.path.join(self.dbpath, self.dbName)) self.db.open() logging.info(f'Database open: {self.db.isOpen()}') - self.db.exec('PRAGMA foreign_keys = ON') # exec() is deprecated # + self.db.exec('PRAGMA foreign_keys = ON;') else: logging.info('Database file is missing') popUp('Database file is missing', QMessageBox.Ok, QMessageBox.Critical) @@ -808,8 +808,12 @@ def addRow(self): # adds a blank row to the frequency bands table widget def saveChanges(self): self.dwm.submit() - def deleteRow(self): # deletes row selected by the up/down arrows on the frequency bands table widget - self.tm.removeRow(self.currentRow) + def deleteRow(self, single=True): # deletes rows in the frequency bands table widget + if single: + self.tm.removeRow(self.currentRow) + else: + for i in range(0, self.tm.rowCount()): + self.tm.removeRow(i) self.tm.select() self.tm.layoutChanged.emit() self.dwm.submit() @@ -830,6 +834,7 @@ def insertData(self, name, typeF, startF, stopF, colour): colours.tm.select() record.setValue('colour', colours.tm.record(0).value('ID')) self.tm.insertRecord(-1, record) + bandstype.tm.setFilter('') self.tm.select() self.tm.layoutChanged.emit() self.dwm.submit() @@ -1084,7 +1089,7 @@ def importData(): app = QtWidgets.QApplication([]) # create QApplication for the GUI app.setApplicationName('QtTinySA') -app.setApplicationVersion(' v0.10.1') +app.setApplicationVersion(' v0.10.2') window = QtWidgets.QMainWindow() ui = QtTinySpectrum.Ui_MainWindow() ui.setupUi(window) @@ -1217,7 +1222,8 @@ def importData(): preferences.zeroLine.stateChanged.connect(lambda: S2.hEnable(preferences.zeroLine)) preferences.plus6Line.stateChanged.connect(lambda: S3.hEnable(preferences.plus6Line)) preferences.addRow.clicked.connect(bands.addRow) -preferences.deleteRow.clicked.connect(bands.deleteRow) +preferences.deleteRow.clicked.connect(lambda: bands.deleteRow(True)) +preferences.deleteAll.clicked.connect(lambda: bands.deleteRow(False)) preferences.freqBands.clicked.connect(bands.tableClicked) preferences.filterBox.currentTextChanged.connect(lambda: bands.filterType(True)) ui.actionPreferences.triggered.connect(dialogPrefs) # open preferences dialogue when its menu is clicked @@ -1334,7 +1340,7 @@ def importData(): window.show() window.setWindowTitle(app.applicationName() + app.applicationVersion()) -window.setWindowIcon(QtGui.QIcon(os.path.join(basedir, 'tinySAsmall.png'))) +# window.setWindowIcon(QtGui.QIcon(os.path.join(basedir, 'tinySAsmall.png'))) ############################################################################### # run the application until the user closes it diff --git a/QtTinySA.spec b/QtTinySA.spec index bf513fa..10a7182 100644 --- a/QtTinySA.spec +++ b/QtTinySA.spec @@ -1,31 +1,40 @@ # -*- mode: python ; coding: utf-8 -*- +block_cipher = None + + a = Analysis( ['QtTinySA.py'], pathex=[], binaries=[], - datas=[('QtTSAprefs.db', '.')], + datas=[], hiddenimports=[], hookspath=[], hooksconfig={}, runtime_hooks=[], excludes=['pandas','setuptools', 'tk', 'wheel', 'zipp', 'pyyaml', 'packaging', 'altgraph', 'mkl', 'fortran', 'matlab'], + win_no_prefer_redirects=False, + win_private_assemblies=False, + cipher=block_cipher, noarchive=False, ) -pyz = PYZ(a.pure) +pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE( pyz, a.scripts, + a.binaries, + a.zipfiles, + a.datas, [], - exclude_binaries=True, name='QtTinySA', - icon=['tinySA.ico'], debug=False, bootloader_ignore_signals=False, strip=False, upx=True, + upx_exclude=[], + runtime_tmpdir=None, console=True, disable_windowed_traceback=False, argv_emulation=False, @@ -33,12 +42,3 @@ exe = EXE( codesign_identity=None, entitlements_file=None, ) -coll = COLLECT( - exe, - a.binaries, - a.datas, - strip=False, - upx=True, - upx_exclude=[], - name='QtTinySA', -) diff --git a/QtTinySpectrum.ui b/QtTinySpectrum.ui index 8567e81..1984b1c 100644 --- a/QtTinySpectrum.ui +++ b/QtTinySpectrum.ui @@ -228,27 +228,6 @@ - - - - - 0 - 0 - - - - - 7 - 75 - true - false - - - - Trace Averaging - - - @@ -436,45 +415,6 @@ - - - - - 0 - 0 - - - - - 7 - - - - - - - 1 - - - 100 - - - 10 - - - Qt::Horizontal - - - false - - - false - - - QSlider::TicksAbove - - - @@ -573,6 +513,69 @@ + + + + + 0 + 0 + + + + + 7 + + + + + + + 1 + + + 101 + + + 10 + + + Qt::Horizontal + + + false + + + false + + + QSlider::TicksAbove + + + 10 + + + + + + + + 0 + 0 + + + + + 7 + 75 + true + false + + + + Trace Averaging 1 - 101 + + + diff --git a/Screenshots/RF_mic-markers.png b/Screenshots/RF_mic-markers.png new file mode 100644 index 0000000000000000000000000000000000000000..ae71144ce376f4d7de8accef93cbbf76f9f52d95 GIT binary patch literal 70078 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%0DPw*0^HB(ki{{njnPNY2F~7bVW*( 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 z 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 z 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 Nd=ZrqDG}E3`CrZC&}IMt literal 0 HcmV?d00001 diff --git a/Screenshots/RF_mic.png b/Screenshots/RF_mic.png new file mode 100644 index 0000000000000000000000000000000000000000..db3ccb7f4baeef54938d8592d3e350cce866ecd4 GIT binary patch literal 193049 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ǃ@A`+@pz>L!3+-qd4`9u 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ð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 R=G^{~`)UtW3vQde{9i~9ci#X2 literal 0 HcmV?d00001 diff --git a/nuitka-build.txt b/nuitka-build.txt new file mode 100644 index 0000000..2a379c1 --- /dev/null +++ b/nuitka-build.txt @@ -0,0 +1,42 @@ +(base) ian@Study:~$ source tinySA/bin/activate +(tinySA) (base) ian@Study:~$ cd Documents/GitHub/QtTinySA +(tinySA) (base) ian@Study:~/Documents/GitHub/QtTinySA$ python -m nuitka --standalone QtTinySA.py +Nuitka-Options: Used command line options: --standalone QtTinySA.py +Nuitka: Starting Python compilation with Nuitka '2.1' on Python '3.11' commercial grade 'not installed'. +Nuitka-Plugins:WARNING: Use '--enable-plugin=pyqt5' for: Inclusion of Qt plugins. +Nuitka-Plugins:WARNING: anti-bloat: Undesirable import of 'pytest' in 'bottleneck._pytesttester' (at +Nuitka-Plugins:WARNING: '/home/ian/anaconda3/lib/python3.11/site-packages/bottleneck/_pytesttester.py:34') encountered. It may slow down compilation. +Nuitka-Plugins:WARNING: Complex topic! More information can be found at https://nuitka.net/info/unwanted-module.html +Nuitka-Plugins:anti-bloat: Not including '_bisect' automatically in order to avoid bloat, but this may cause: may slow down by using fallback +Nuitka-Plugins:anti-bloat: implementation. +Nuitka-Plugins:anti-bloat: Not including '_json' automatically in order to avoid bloat, but this may cause: may slow down by using fallback implementation. +Nuitka-Plugins:anti-bloat: Not including 'PIL.ImageQt' automatically in order to avoid bloat, but this may cause: PIL will not be able to create Qt image +Nuitka-Plugins:anti-bloat: objects. +Nuitka-Plugins:matplotlib: Using configuration file or default backend 'QtAgg'. +Nuitka: Completed Python level compilation and optimization. +Nuitka: Generating source code for C backend compiler. +Nuitka: Running data composer tool for optimal constant value handling. +Nuitka: Running C compilation via Scons. +Nuitka-Scons: Backend C compiler: gcc (gcc 11). +Nuitka-Scons: Backend linking program with 1126 files (no progress information available for this stage). +Nuitka-Scons: Compiled 1125 C files using ccache. +Nuitka-Scons: Cached C files (using ccache) with result 'cache miss': 1125 +Nuitka-Plugins:data-files: Included data file 'PyQt5/Qt5/.keep_dir.txt' due to empty dir needed for 'PyQt5'. +Nuitka-Plugins:data-files: Included data file 'PyQt5/Qt/.keep_dir.txt' due to empty dir needed for 'PyQt5'. +Nuitka-Plugins:data-files: Included data file 'certifi/cacert.pem' due to package data for 'certifi'. +Nuitka-Plugins:matplotlib: Included 182 data files due to package data for 'matplotlib. +Nuitka-Plugins:matplotlib: Included data file 'matplotlib/mpl-data/matplotlibrc' due to updated matplotlib config file with backend to use. +Nuitka-Plugins:data-files: Included 72 data files due to package data directory 'colors' for 'pyqtgraph'. +Nuitka-Plugins:data-files: Included data file 'pyqtgraph/icons/auto.png' due to package data directory 'icons' for 'pyqtgraph'. +Nuitka-Plugins:data-files: Included data file 'pyqtgraph/icons/ctrl.png' due to package data directory 'icons' for 'pyqtgraph'. +Nuitka-Plugins:data-files: Included data file 'pyqtgraph/icons/default.png' due to package data directory 'icons' for 'pyqtgraph'. +Nuitka-Plugins:data-files: Included data file 'pyqtgraph/icons/icons.svg' due to package data directory 'icons' for 'pyqtgraph'. +Nuitka-Plugins:data-files: Included data file 'pyqtgraph/icons/invisibleEye.svg' due to package data directory 'icons' for 'pyqtgraph'. +Nuitka-Plugins:data-files: Included data file 'pyqtgraph/icons/lock.png' due to package data directory 'icons' for 'pyqtgraph'. +Nuitka-Plugins:data-files: Included data file 'scipy/stats/_sobol_direction_numbers.npz' due to package data for 'scipy'. +Nuitka-Plugins:dll-files: Found 1 file DLLs from kiwisolver installation. +Nuitka-Plugins:WARNING: dll-files: DLL configuration by filename code for 'numpy' did not give a result. Either conditions are missing, or this version of +Nuitka-Plugins:WARNING: the module needs treatment added. +Nuitka: Keeping build directory 'QtTinySA.build'. +Nuitka: Successfully created 'QtTinySA.dist/QtTinySA.bin'. +(tinySA) (base) ian@Study:~/Documents/GitHub/QtTinySA$ diff --git a/preferences.ui b/preferences.ui index 8f85af1..c9c8905 100644 --- a/preferences.ui +++ b/preferences.ui @@ -6,385 +6,432 @@ 0 0 - 412 - 701 + 800 + 600 Preferences - - - - - - - Low - - - true - - - buttonGroup - - - - - - - Auto minimum points - - - - - - - - 75 - true - - - - Frequency Settings - - - - - - - - 0 - 0 - - - - - - - - true - - - - 0 - 0 - - - - Delete Row - - - - - - - Points / Resolution Bandwidth - - - - - - - Detection Threshold - - - - - - - Max with auto attenuator - - - - - - - true - - - - 0 - 0 - - - - Add Row - - - - - - - Absolute maximum - - - - - - - LO offset from wanted freq - - - - - - - Filter table on - - - - - - - 0dBm - - - false - - - - - - - High - - - buttonGroup - - - - - - - -25dBm - - - false - - - - - - - - 75 - true - - - - Peak Marker Settings - - - - - - - true - - - - 0 - 0 - - - - Import - - - - - - - - - - Auto maximum points - - - - - - - Max for best accuracy - - - - - - - - 75 - true - - - - Preset Bands and Markers - - - - - - - - 0 - 0 - - - - - 83 - 16777215 - - - - - 9 - - - - dBm - - - - - - -120 - - - -20 - - - -90 - - - - - - - QAbstractSpinBox::NoButtons - - - 25 - - - 100000 - - - 30000 - - - - - - - +6dBm - - - false - - - - - - - QAbstractSpinBox::NoButtons - - - 25 - - - 450 - - - 450 - - - - - - - 2 - - - 10 - - - 3 - - - - - - - - 75 - true - - - - Scan Points Settings - - - - - - - - 75 - true - - - - Signal Level Reminder lines - - - - - - - true - - - - 0 - 0 - - - - Export - - - - - - - LO frequency - - - - - - - MHz - - - 6 - - - 100000.000000000000000 - - - 0.000000000000000 - - - - - - + + + + 10 + 10 + 411 + 572 + + + + + + + + 0 + 0 + + + + + 75 + true + + + + Preset Bands and Markers + + + + + + + true + + + + 0 + 0 + + + + Add Row + + + + + + + + 0 + 0 + + + + + 0 + 450 + + + + + + + + true + + + + 0 + 0 + + + + Delete Row + + + + + + + Delete All + + + + + + + + 0 + 0 + + + + Filter on: + + + + + + + + + + true + + + + 0 + 0 + + + + Export + + + + + + + true + + + + 0 + 0 + + + + Import + + + + + + + + + 440 + 10 + 351 + 571 + + + + + + + 0dBm + + + false + + + + + + + Points / Resolution Bandwidth + + + + + + + QAbstractSpinBox::NoButtons + + + 25 + + + 450 + + + 450 + + + + + + + + 75 + true + + + + Frequency Offset + + + + + + + + 0 + 0 + + + + + 83 + 16777215 + + + + + 9 + + + + dBm + + + + + + -120 + + + -20 + + + -90 + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + MHz + + + 6 + + + 0.000000000000000 + + + 100000.000000000000000 + + + 0.000000000000000 + + + + + + + 2 + + + 10 + + + 3 + + + + + + + Auto maximum points + + + + + + + + 75 + true + + + + Scan Points Settings + + + + + + + + 75 + true + + + + Signal Level Reminder lines + + + + + + + -25dBm + + + false + + + + + + + Absolute maximum + + + + + + + Max for best accuracy + + + + + + + External LO above IF + + + + + + + +6dBm + + + false + + + + + + + + + + + + + + Detection Threshold + + + + + + + Max with auto attenuator + + + + + + + QAbstractSpinBox::NoButtons + + + 25 + + + 100000 + + + 30000 + + + + + + + + 75 + true + + + + Peak Marker Settings + + + + + + + Auto minimum points + + + + + + + External LO Frequency + + + + + + + True + + + + + - - - From c480c0bb8750de98c5b24d950da21f23515805f3 Mon Sep 17 00:00:00 2001 From: G4IXT Date: Wed, 13 Mar 2024 09:28:05 +0000 Subject: [PATCH 04/17] v0.10.2 wip wip --- QtTSApreferences.py | 10 +- QtTinySA.py | 55 ++- QtTinySpectrum.py | 704 +++++++++++++++---------------- QtTinySpectrum.ui | 986 +++++++++++++++++++++++--------------------- preferences.ui | 8 +- 5 files changed, 923 insertions(+), 840 deletions(-) diff --git a/QtTSApreferences.py b/QtTSApreferences.py index 14d2a6e..2f0a4f1 100644 --- a/QtTSApreferences.py +++ b/QtTSApreferences.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Form implementation generated from reading ui file 'preferences-l.ui' +# Form implementation generated from reading ui file 'preferences.ui' # # Created by: PyQt5 UI code generator 5.15.10 # @@ -93,7 +93,7 @@ def setupUi(self, Preferences): self.importButton.setObjectName("importButton") self.gridLayout.addWidget(self.importButton, 4, 0, 1, 1) self.layoutWidget1 = QtWidgets.QWidget(Preferences) - self.layoutWidget1.setGeometry(QtCore.QRect(440, 10, 351, 571)) + self.layoutWidget1.setGeometry(QtCore.QRect(440, 10, 356, 571)) self.layoutWidget1.setObjectName("layoutWidget1") self.gridLayout_2 = QtWidgets.QGridLayout(self.layoutWidget1) self.gridLayout_2.setContentsMargins(0, 0, 0, 0) @@ -233,7 +233,7 @@ def retranslateUi(self, Preferences): self.importButton.setText(_translate("Preferences", "Import")) self.zeroLine.setText(_translate("Preferences", " 0dBm")) self.label.setText(_translate("Preferences", "Points / Resolution Bandwidth")) - self.label_14.setText(_translate("Preferences", "Frequency Offset ")) + self.label_14.setText(_translate("Preferences", "External Mixer / LNB")) self.peakThreshold.setSuffix(_translate("Preferences", "dBm")) self.freqLO.setSuffix(_translate("Preferences", "MHz")) self.label_4.setText(_translate("Preferences", "Auto maximum points")) @@ -242,11 +242,11 @@ def retranslateUi(self, Preferences): self.neg25Line.setText(_translate("Preferences", "-25dBm")) self.label_11.setText(_translate("Preferences", "Absolute maximum")) self.label_9.setText(_translate("Preferences", "Max for best accuracy")) - self.label_15.setText(_translate("Preferences", "External LO above IF")) + self.label_15.setText(_translate("Preferences", "LO above displayed Freq")) self.plus6Line.setText(_translate("Preferences", "+6dBm")) self.label_2.setText(_translate("Preferences", "Detection Threshold")) self.label_10.setText(_translate("Preferences", "Max with auto attenuator")) self.label_7.setText(_translate("Preferences", "Peak Marker Settings")) self.label_3.setText(_translate("Preferences", "Auto minimum points")) - self.label_16.setText(_translate("Preferences", "External LO Frequency")) + self.label_16.setText(_translate("Preferences", "LO Frequency")) self.highLO.setText(_translate("Preferences", "True")) diff --git a/QtTinySA.py b/QtTinySA.py index b723fc5..1e86d79 100755 --- a/QtTinySA.py +++ b/QtTinySA.py @@ -271,6 +271,17 @@ def freq_changed(self, centre=False): ui.graphWidget.setXRange(startF, stopF) self.resume() + def freqOffset(self, frequency): # for mixers or LNBs external to TinySA + if preferences.highLO.isChecked() and preferences.freqLO != 0: + f = preferences.freqLO.value() * 1e6 - frequency + else: + f = frequency - preferences.freqLO.value() * 1e6 + if f <= 0: + self.sweeping = False + f = 30000000 + logging.info(f'frequency offset error, check preferences') + return f + def setRBW(self): # may be called by measurement thread as well as normally rbw = ui.rbw_box.currentText() # ui values are discrete ones in kHz logging.debug(f'rbw = {rbw}') @@ -321,7 +332,13 @@ def measurement(self, frequencies, readings): # runs in a separate thread while self.sweeping: try: self.usb.timeout = self.sweepTimeout(frequencies) - command = f'scanraw {int(frequencies[0])} {int(frequencies[-1])} {int(points)}\r'.encode() + if preferences.freqLO != 0: + startF = self.freqOffset(frequencies[0]) + stopF = self.freqOffset(frequencies[-1]) + command = f'scanraw {int(startF)} {int(stopF)} {int(points)}\r'.encode() + else: + command = f'scanraw {int(frequencies[0])} {int(frequencies[-1])} {int(points)}\r'.encode() + logging.debug(f'measurement: command = {command}') self.usb.write(command) index = 0 # self.runTimer.start() # debug @@ -695,12 +712,12 @@ def delFreqMarkers(self): for i in range(0, self.fifo.qsize()): ui.graphWidget.removeItem(self.fifo.get()) # remove the marker and its corresponding object in the queue - def freqOffset(self, frequencies): # for mixers external to TinySA # future feature - if preferences.highLO.isChecked() and preferences.freqLO != 0: - f = preferences.freqLO.value() - frequencies - else: - f = preferences.freqLO.value() + frequencies - return f + # def freqOffset(self, frequencies): # for mixers external to TinySA # future feature + # if preferences.highLO.isChecked() and preferences.freqLO != 0: + # f = preferences.freqLO.value() - frequencies + # else: + # f = preferences.freqLO.value() + frequencies + # return f class WorkerSignals(QtCore.QObject): @@ -904,7 +921,11 @@ def findCols(self, header): def band_changed(): index = ui.band_box.currentIndex() - if bands.tm.record(index).value('preset') == 'band': + # if bands.tm.record(index).value('preset') == 'Mixer / LNB': + # ui.mixer.setChecked(True) + # else: + # ui.mixer.setChecked(False) + if bands.tm.record(index).value('preset') == 'band' or bands.tm.record(index).value('preset') == 'Mixer / LNB': startF = bands.tm.record(index).value('StartF') stopF = bands.tm.record(index).value('StopF') ui.start_freq.setValue(startF) @@ -999,6 +1020,7 @@ def setPreferences(): S1.delFreqMarkers() S2.delFreqMarkers() freqMarkers() + isMixerMode() def dialogPrefs(): @@ -1082,6 +1104,19 @@ def importData(): bands.readCSV(filename[0]) +def isMixerMode(): + if preferences.freqLO.value() == 0: + ui.mixerMode.setVisible(False) + ui.start_freq.setStyleSheet('background-color:None') + ui.stop_freq.setStyleSheet('background-color:None') + ui.centre_freq.setStyleSheet('background-color:None') + else: + ui.mixerMode.setVisible(True) + ui.start_freq.setStyleSheet('background-color:lightGreen') + ui.stop_freq.setStyleSheet('background-color:lightGreen') + ui.centre_freq.setStyleSheet('background-color:lightGreen') + bands.tm.setFilter('preset = "Mixer / LNB"') + ############################################################################### # Instantiate classes @@ -1149,6 +1184,8 @@ def importData(): S4.hline.setMovable(True) S4.hline.label.setFormat("{value:.1f}") +# ui.mixerMode.setStyleSheet('background-color:lightGreen') + ############################################################################### # Connect signals from buttons and sliders. Connections for freq and rbw boxes are in 'initialise' Fn @@ -1296,6 +1333,7 @@ def importData(): checkboxes.dwm.addMapping(ui.marker4, 14) checkboxes.dwm.addMapping(ui.lna_box, 15) checkboxes.dwm.addMapping(ui.points_auto, 16) +checkboxes.dwm.addMapping(preferences.highLO, 17) checkboxes.tm.select() checkboxes.dwm.setCurrentIndex(0) # 0 = (last used) default settings @@ -1306,6 +1344,7 @@ def importData(): numbers.dwm.addMapping(ui.start_freq, 5) numbers.dwm.addMapping(ui.stop_freq, 6) numbers.dwm.addMapping(preferences.peakThreshold, 7) +numbers.dwm.addMapping(preferences.freqLO, 8) numbers.tm.select() numbers.dwm.setCurrentIndex(0) markers.createTableModel() diff --git a/QtTinySpectrum.py b/QtTinySpectrum.py index 5c6316d..89f16a1 100644 --- a/QtTinySpectrum.py +++ b/QtTinySpectrum.py @@ -14,7 +14,7 @@ class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") - MainWindow.resize(1024, 600) + MainWindow.resize(1027, 600) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -45,46 +45,70 @@ def setupUi(self, MainWindow): self.gridLayout.setObjectName("gridLayout") self.gridLayout_3 = QtWidgets.QGridLayout() self.gridLayout_3.setObjectName("gridLayout_3") - self.version = QtWidgets.QLabel(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - self.version.setFont(font) - self.version.setObjectName("version") - self.gridLayout_3.addWidget(self.version, 17, 0, 1, 2) - self.label = QtWidgets.QLabel(self.analyserTab) + self.label_7 = QtWidgets.QLabel(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) font.setBold(True) - font.setUnderline(False) font.setWeight(75) - self.label.setFont(font) - self.label.setObjectName("label") - self.gridLayout_3.addWidget(self.label, 14, 0, 1, 2) - self.t1_type = QtWidgets.QComboBox(self.analyserTab) + self.label_7.setFont(font) + self.label_7.setObjectName("label_7") + self.gridLayout_3.addWidget(self.label_7, 3, 0, 1, 1) + self.t2_type = QtWidgets.QComboBox(self.analyserTab) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.t1_type.sizePolicy().hasHeightForWidth()) - self.t1_type.setSizePolicy(sizePolicy) + sizePolicy.setHeightForWidth(self.t2_type.sizePolicy().hasHeightForWidth()) + self.t2_type.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setPointSize(7) - self.t1_type.setFont(font) - self.t1_type.setModelColumn(0) - self.t1_type.setObjectName("t1_type") - self.gridLayout_3.addWidget(self.t1_type, 8, 1, 1, 1) - self.label_3 = QtWidgets.QLabel(self.analyserTab) + self.t2_type.setFont(font) + self.t2_type.setObjectName("t2_type") + self.gridLayout_3.addWidget(self.t2_type, 9, 1, 1, 1) + self.points_box = QtWidgets.QSpinBox(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) - self.label_3.setFont(font) - self.label_3.setObjectName("label_3") - self.gridLayout_3.addWidget(self.label_3, 5, 0, 1, 1) - self.lna_box = QtWidgets.QCheckBox(self.analyserTab) + self.points_box.setFont(font) + self.points_box.setSuffix("") + self.points_box.setMinimum(1) + self.points_box.setMaximum(30000) + self.points_box.setSingleStep(100) + self.points_box.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) + self.points_box.setProperty("value", 400) + self.points_box.setObjectName("points_box") + self.gridLayout_3.addWidget(self.points_box, 6, 1, 1, 1) + self.memSlider = QtWidgets.QSlider(self.analyserTab) + self.memSlider.setMinimum(1) + self.memSlider.setMaximum(200) + self.memSlider.setProperty("value", 50) + self.memSlider.setOrientation(QtCore.Qt.Horizontal) + self.memSlider.setTickPosition(QtWidgets.QSlider.TicksAbove) + self.memSlider.setObjectName("memSlider") + self.gridLayout_3.addWidget(self.memSlider, 15, 0, 1, 2) + self.label_8 = QtWidgets.QLabel(self.analyserTab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_8.sizePolicy().hasHeightForWidth()) + self.label_8.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setPointSize(7) - self.lna_box.setFont(font) - self.lna_box.setText("") - self.lna_box.setObjectName("lna_box") - self.gridLayout_3.addWidget(self.lna_box, 2, 1, 1, 1) + font.setBold(True) + font.setUnderline(False) + font.setWeight(75) + self.label_8.setFont(font) + self.label_8.setObjectName("label_8") + self.gridLayout_3.addWidget(self.label_8, 12, 0, 1, 2) + self.t3_type = QtWidgets.QComboBox(self.analyserTab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.t3_type.sizePolicy().hasHeightForWidth()) + self.t3_type.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setPointSize(7) + self.t3_type.setFont(font) + self.t3_type.setObjectName("t3_type") + self.gridLayout_3.addWidget(self.t3_type, 10, 1, 1, 1) self.spur_box = QtWidgets.QCheckBox(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) @@ -94,17 +118,17 @@ def setupUi(self, MainWindow): self.spur_box.setTristate(True) self.spur_box.setObjectName("spur_box") self.gridLayout_3.addWidget(self.spur_box, 3, 1, 1, 1) - self.t2_type = QtWidgets.QComboBox(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.t2_type.sizePolicy().hasHeightForWidth()) - self.t2_type.setSizePolicy(sizePolicy) + self.atten_box = QtWidgets.QSpinBox(self.analyserTab) + self.atten_box.setEnabled(False) font = QtGui.QFont() font.setPointSize(7) - self.t2_type.setFont(font) - self.t2_type.setObjectName("t2_type") - self.gridLayout_3.addWidget(self.t2_type, 9, 1, 1, 1) + self.atten_box.setFont(font) + self.atten_box.setReadOnly(False) + self.atten_box.setMinimum(0) + self.atten_box.setMaximum(31) + self.atten_box.setProperty("value", 0) + self.atten_box.setObjectName("atten_box") + self.gridLayout_3.addWidget(self.atten_box, 1, 1, 1, 1) self.rbw_box = QtWidgets.QComboBox(self.analyserTab) self.rbw_box.setEnabled(True) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) @@ -118,53 +142,60 @@ def setupUi(self, MainWindow): self.rbw_box.setEditable(True) self.rbw_box.setObjectName("rbw_box") self.gridLayout_3.addWidget(self.rbw_box, 5, 1, 1, 1) - self.label_10 = QtWidgets.QLabel(self.analyserTab) + self.version = QtWidgets.QLabel(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) - font.setBold(True) - font.setUnderline(False) - font.setWeight(75) - self.label_10.setFont(font) - self.label_10.setObjectName("label_10") - self.gridLayout_3.addWidget(self.label_10, 7, 0, 1, 2) - self.trace3 = QtWidgets.QCheckBox(self.analyserTab) + self.version.setFont(font) + self.version.setObjectName("version") + self.gridLayout_3.addWidget(self.version, 18, 0, 1, 2) + self.avgSlider = QtWidgets.QSlider(self.analyserTab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.avgSlider.sizePolicy().hasHeightForWidth()) + self.avgSlider.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setPointSize(7) - font.setBold(True) - font.setWeight(75) - self.trace3.setFont(font) - self.trace3.setObjectName("trace3") - self.gridLayout_3.addWidget(self.trace3, 10, 0, 1, 1) - self.atten_auto = QtWidgets.QCheckBox(self.analyserTab) + self.avgSlider.setFont(font) + self.avgSlider.setToolTip("") + self.avgSlider.setMinimum(1) + self.avgSlider.setMaximum(101) + self.avgSlider.setProperty("value", 10) + self.avgSlider.setOrientation(QtCore.Qt.Horizontal) + self.avgSlider.setInvertedAppearance(False) + self.avgSlider.setInvertedControls(False) + self.avgSlider.setTickPosition(QtWidgets.QSlider.TicksAbove) + self.avgSlider.setTickInterval(10) + self.avgSlider.setObjectName("avgSlider") + self.gridLayout_3.addWidget(self.avgSlider, 13, 0, 1, 2) + self.label_3 = QtWidgets.QLabel(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) - self.atten_auto.setFont(font) - self.atten_auto.setChecked(True) - self.atten_auto.setObjectName("atten_auto") - self.gridLayout_3.addWidget(self.atten_auto, 1, 0, 1, 1) - self.label_8 = QtWidgets.QLabel(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + self.label_3.setFont(font) + self.label_3.setObjectName("label_3") + self.gridLayout_3.addWidget(self.label_3, 5, 0, 1, 1) + self.t1_type = QtWidgets.QComboBox(self.analyserTab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_8.sizePolicy().hasHeightForWidth()) - self.label_8.setSizePolicy(sizePolicy) + sizePolicy.setHeightForWidth(self.t1_type.sizePolicy().hasHeightForWidth()) + self.t1_type.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setPointSize(7) - font.setBold(True) - font.setUnderline(False) - font.setWeight(75) - self.label_8.setFont(font) - self.label_8.setObjectName("label_8") - self.gridLayout_3.addWidget(self.label_8, 12, 0, 1, 2) - self.trace2 = QtWidgets.QCheckBox(self.analyserTab) + self.t1_type.setFont(font) + self.t1_type.setModelColumn(0) + self.t1_type.setObjectName("t1_type") + self.gridLayout_3.addWidget(self.t1_type, 8, 1, 1, 1) + self.trace3 = QtWidgets.QCheckBox(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) font.setBold(True) font.setWeight(75) - self.trace2.setFont(font) - self.trace2.setTristate(False) - self.trace2.setObjectName("trace2") - self.gridLayout_3.addWidget(self.trace2, 9, 0, 1, 1) + self.trace3.setFont(font) + self.trace3.setObjectName("trace3") + self.gridLayout_3.addWidget(self.trace3, 10, 0, 1, 1) + spacerItem = QtWidgets.QSpacerItem(17, 13, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_3.addItem(spacerItem, 16, 0, 1, 1) self.label_2 = QtWidgets.QLabel(self.analyserTab) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) @@ -179,61 +210,23 @@ def setupUi(self, MainWindow): self.label_2.setFont(font) self.label_2.setObjectName("label_2") self.gridLayout_3.addWidget(self.label_2, 4, 0, 1, 2) - self.atten_box = QtWidgets.QSpinBox(self.analyserTab) - self.atten_box.setEnabled(False) - font = QtGui.QFont() - font.setPointSize(7) - self.atten_box.setFont(font) - self.atten_box.setReadOnly(False) - self.atten_box.setMinimum(0) - self.atten_box.setMaximum(31) - self.atten_box.setProperty("value", 0) - self.atten_box.setObjectName("atten_box") - self.gridLayout_3.addWidget(self.atten_box, 1, 1, 1, 1) - self.battery = QtWidgets.QLabel(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - self.battery.setFont(font) - self.battery.setObjectName("battery") - self.gridLayout_3.addWidget(self.battery, 18, 1, 1, 1) - self.points_auto = QtWidgets.QCheckBox(self.analyserTab) - self.points_auto.setEnabled(True) - font = QtGui.QFont() - font.setPointSize(7) - self.points_auto.setFont(font) - self.points_auto.setChecked(True) - self.points_auto.setObjectName("points_auto") - self.gridLayout_3.addWidget(self.points_auto, 6, 0, 1, 1) - spacerItem = QtWidgets.QSpacerItem(17, 13, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) - self.gridLayout_3.addItem(spacerItem, 16, 0, 1, 1) - self.label_5 = QtWidgets.QLabel(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_5.sizePolicy().hasHeightForWidth()) - self.label_5.setSizePolicy(sizePolicy) + self.lna_label = QtWidgets.QLabel(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) font.setBold(True) - font.setUnderline(False) font.setWeight(75) - self.label_5.setFont(font) - self.label_5.setObjectName("label_5") - self.gridLayout_3.addWidget(self.label_5, 0, 0, 1, 2) - self.trace4 = QtWidgets.QCheckBox(self.analyserTab) + self.lna_label.setFont(font) + self.lna_label.setObjectName("lna_label") + self.gridLayout_3.addWidget(self.lna_label, 2, 0, 1, 1) + self.label_10 = QtWidgets.QLabel(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) font.setBold(True) + font.setUnderline(False) font.setWeight(75) - self.trace4.setFont(font) - self.trace4.setObjectName("trace4") - self.gridLayout_3.addWidget(self.trace4, 11, 0, 1, 1) - self.label_6 = QtWidgets.QLabel(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - self.label_6.setFont(font) - self.label_6.setObjectName("label_6") - self.gridLayout_3.addWidget(self.label_6, 18, 0, 1, 1) + self.label_10.setFont(font) + self.label_10.setObjectName("label_10") + self.gridLayout_3.addWidget(self.label_10, 7, 0, 1, 2) self.t4_type = QtWidgets.QComboBox(self.analyserTab) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) @@ -245,72 +238,43 @@ def setupUi(self, MainWindow): self.t4_type.setFont(font) self.t4_type.setObjectName("t4_type") self.gridLayout_3.addWidget(self.t4_type, 11, 1, 1, 1) - self.lna_label = QtWidgets.QLabel(self.analyserTab) + self.label = QtWidgets.QLabel(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) font.setBold(True) + font.setUnderline(False) font.setWeight(75) - self.lna_label.setFont(font) - self.lna_label.setObjectName("lna_label") - self.gridLayout_3.addWidget(self.lna_label, 2, 0, 1, 1) - self.avgSlider = QtWidgets.QSlider(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.avgSlider.sizePolicy().hasHeightForWidth()) - self.avgSlider.setSizePolicy(sizePolicy) + self.label.setFont(font) + self.label.setObjectName("label") + self.gridLayout_3.addWidget(self.label, 14, 0, 1, 2) + self.lna_box = QtWidgets.QCheckBox(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) - self.avgSlider.setFont(font) - self.avgSlider.setToolTip("") - self.avgSlider.setMinimum(1) - self.avgSlider.setMaximum(100) - self.avgSlider.setProperty("value", 10) - self.avgSlider.setOrientation(QtCore.Qt.Horizontal) - self.avgSlider.setInvertedAppearance(False) - self.avgSlider.setInvertedControls(False) - self.avgSlider.setTickPosition(QtWidgets.QSlider.TicksAbove) - self.avgSlider.setObjectName("avgSlider") - self.gridLayout_3.addWidget(self.avgSlider, 13, 0, 1, 3) - self.points_box = QtWidgets.QSpinBox(self.analyserTab) + self.lna_box.setFont(font) + self.lna_box.setText("") + self.lna_box.setObjectName("lna_box") + self.gridLayout_3.addWidget(self.lna_box, 2, 1, 1, 1) + self.atten_auto = QtWidgets.QCheckBox(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) - self.points_box.setFont(font) - self.points_box.setSuffix("") - self.points_box.setMinimum(1) - self.points_box.setMaximum(30000) - self.points_box.setSingleStep(100) - self.points_box.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) - self.points_box.setProperty("value", 400) - self.points_box.setObjectName("points_box") - self.gridLayout_3.addWidget(self.points_box, 6, 1, 1, 1) - self.t3_type = QtWidgets.QComboBox(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + self.atten_auto.setFont(font) + self.atten_auto.setChecked(True) + self.atten_auto.setObjectName("atten_auto") + self.gridLayout_3.addWidget(self.atten_auto, 1, 0, 1, 1) + self.label_5 = QtWidgets.QLabel(self.analyserTab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.t3_type.sizePolicy().hasHeightForWidth()) - self.t3_type.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(7) - self.t3_type.setFont(font) - self.t3_type.setObjectName("t3_type") - self.gridLayout_3.addWidget(self.t3_type, 10, 1, 1, 1) - self.memSlider = QtWidgets.QSlider(self.analyserTab) - self.memSlider.setMinimum(1) - self.memSlider.setMaximum(200) - self.memSlider.setProperty("value", 50) - self.memSlider.setOrientation(QtCore.Qt.Horizontal) - self.memSlider.setTickPosition(QtWidgets.QSlider.TicksAbove) - self.memSlider.setObjectName("memSlider") - self.gridLayout_3.addWidget(self.memSlider, 15, 0, 1, 2) - self.label_7 = QtWidgets.QLabel(self.analyserTab) + sizePolicy.setHeightForWidth(self.label_5.sizePolicy().hasHeightForWidth()) + self.label_5.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setPointSize(7) font.setBold(True) + font.setUnderline(False) font.setWeight(75) - self.label_7.setFont(font) - self.label_7.setObjectName("label_7") - self.gridLayout_3.addWidget(self.label_7, 3, 0, 1, 1) + self.label_5.setFont(font) + self.label_5.setObjectName("label_5") + self.gridLayout_3.addWidget(self.label_5, 0, 0, 1, 2) self.trace1 = QtWidgets.QCheckBox(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) @@ -321,103 +285,62 @@ def setupUi(self, MainWindow): self.trace1.setTristate(False) self.trace1.setObjectName("trace1") self.gridLayout_3.addWidget(self.trace1, 8, 0, 1, 1) - self.gridLayout.addLayout(self.gridLayout_3, 0, 0, 1, 1) - self.gridLayout_2 = QtWidgets.QGridLayout() - self.gridLayout_2.setObjectName("gridLayout_2") - self.span_freq = QtWidgets.QDoubleSpinBox(self.analyserTab) - self.span_freq.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.span_freq.setButtonSymbols(QtWidgets.QAbstractSpinBox.PlusMinus) - self.span_freq.setCorrectionMode(QtWidgets.QAbstractSpinBox.CorrectToNearestValue) - self.span_freq.setPrefix("") - self.span_freq.setSuffix("") - self.span_freq.setDecimals(3) - self.span_freq.setMaximum(6000.0) - self.span_freq.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) - self.span_freq.setProperty("value", 20.0) - self.span_freq.setObjectName("span_freq") - self.gridLayout_2.addWidget(self.span_freq, 3, 13, 1, 1) - spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) - self.gridLayout_2.addItem(spacerItem1, 2, 5, 1, 1) - self.marker4 = QtWidgets.QCheckBox(self.analyserTab) - self.marker4.setObjectName("marker4") - self.gridLayout_2.addWidget(self.marker4, 2, 10, 1, 1) - self.marker3 = QtWidgets.QCheckBox(self.analyserTab) - self.marker3.setObjectName("marker3") - self.gridLayout_2.addWidget(self.marker3, 2, 9, 1, 1) - self.graphWidget = PlotWidget(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.graphWidget.sizePolicy().hasHeightForWidth()) - self.graphWidget.setSizePolicy(sizePolicy) - self.graphWidget.setAutoFillBackground(False) - self.graphWidget.setStyleSheet("") - self.graphWidget.setObjectName("graphWidget") - self.gridLayout_2.addWidget(self.graphWidget, 0, 1, 1, 14) - self.scan_button = QtWidgets.QPushButton(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.scan_button.sizePolicy().hasHeightForWidth()) - self.scan_button.setSizePolicy(sizePolicy) - self.scan_button.setToolTip("") - self.scan_button.setCheckable(False) - self.scan_button.setObjectName("scan_button") - self.gridLayout_2.addWidget(self.scan_button, 2, 14, 1, 1) - self.start_freq = QtWidgets.QDoubleSpinBox(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.start_freq.sizePolicy().hasHeightForWidth()) - self.start_freq.setSizePolicy(sizePolicy) - self.start_freq.setFrame(True) - self.start_freq.setCorrectionMode(QtWidgets.QAbstractSpinBox.CorrectToNearestValue) - self.start_freq.setPrefix("") - self.start_freq.setSuffix("") - self.start_freq.setDecimals(6) - self.start_freq.setMinimum(0.1) - self.start_freq.setMaximum(6000.0) - self.start_freq.setSingleStep(1.0) - self.start_freq.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) - self.start_freq.setProperty("value", 87.5) - self.start_freq.setObjectName("start_freq") - self.gridLayout_2.addWidget(self.start_freq, 2, 3, 1, 1) - self.m3_type = QtWidgets.QComboBox(self.analyserTab) - self.m3_type.setMaximumSize(QtCore.QSize(55, 16777215)) + self.points_auto = QtWidgets.QCheckBox(self.analyserTab) + self.points_auto.setEnabled(True) font = QtGui.QFont() font.setPointSize(7) - self.m3_type.setFont(font) - self.m3_type.setObjectName("m3_type") - self.gridLayout_2.addWidget(self.m3_type, 3, 9, 1, 1) - self.m1_type = QtWidgets.QComboBox(self.analyserTab) - self.m1_type.setMaximumSize(QtCore.QSize(55, 16777215)) + self.points_auto.setFont(font) + self.points_auto.setChecked(True) + self.points_auto.setObjectName("points_auto") + self.gridLayout_3.addWidget(self.points_auto, 6, 0, 1, 1) + self.trace4 = QtWidgets.QCheckBox(self.analyserTab) font = QtGui.QFont() - font.setFamily("Sans Serif") font.setPointSize(7) - self.m1_type.setFont(font) - self.m1_type.setObjectName("m1_type") - self.gridLayout_2.addWidget(self.m1_type, 3, 7, 1, 1) - self.presetLabel = QtWidgets.QCheckBox(self.analyserTab) - self.presetLabel.setObjectName("presetLabel") - self.gridLayout_2.addWidget(self.presetLabel, 3, 11, 1, 1) - self.stop_freq = QtWidgets.QDoubleSpinBox(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.stop_freq.sizePolicy().hasHeightForWidth()) - self.stop_freq.setSizePolicy(sizePolicy) - self.stop_freq.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.stop_freq.setCorrectionMode(QtWidgets.QAbstractSpinBox.CorrectToNearestValue) - self.stop_freq.setPrefix("") - self.stop_freq.setSuffix("") - self.stop_freq.setDecimals(6) - self.stop_freq.setMinimum(0.1) - self.stop_freq.setMaximum(6000.0) - self.stop_freq.setSingleStep(1.0) - self.stop_freq.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) - self.stop_freq.setProperty("value", 108.0) - self.stop_freq.setObjectName("stop_freq") - self.gridLayout_2.addWidget(self.stop_freq, 2, 13, 1, 1) + font.setBold(True) + font.setWeight(75) + self.trace4.setFont(font) + self.trace4.setObjectName("trace4") + self.gridLayout_3.addWidget(self.trace4, 11, 0, 1, 1) + self.battery = QtWidgets.QLabel(self.analyserTab) + font = QtGui.QFont() + font.setPointSize(7) + self.battery.setFont(font) + self.battery.setObjectName("battery") + self.gridLayout_3.addWidget(self.battery, 19, 1, 1, 1) + self.label_6 = QtWidgets.QLabel(self.analyserTab) + font = QtGui.QFont() + font.setPointSize(7) + self.label_6.setFont(font) + self.label_6.setObjectName("label_6") + self.gridLayout_3.addWidget(self.label_6, 19, 0, 1, 1) + self.trace2 = QtWidgets.QCheckBox(self.analyserTab) + font = QtGui.QFont() + font.setPointSize(7) + font.setBold(True) + font.setWeight(75) + self.trace2.setFont(font) + self.trace2.setTristate(False) + self.trace2.setObjectName("trace2") + self.gridLayout_3.addWidget(self.trace2, 9, 0, 1, 1) + self.mixerMode = QtWidgets.QLabel(self.analyserTab) + self.mixerMode.setAutoFillBackground(False) + self.mixerMode.setStyleSheet("background-color:lightGreen") + self.mixerMode.setFrameShape(QtWidgets.QFrame.Box) + self.mixerMode.setFrameShadow(QtWidgets.QFrame.Sunken) + self.mixerMode.setAlignment(QtCore.Qt.AlignCenter) + self.mixerMode.setObjectName("mixerMode") + self.gridLayout_3.addWidget(self.mixerMode, 17, 0, 1, 2) + self.gridLayout.addLayout(self.gridLayout_3, 0, 0, 1, 1) + self.gridLayout_2 = QtWidgets.QGridLayout() + self.gridLayout_2.setObjectName("gridLayout_2") + self.label_16 = QtWidgets.QLabel(self.analyserTab) + font = QtGui.QFont() + font.setPointSize(7) + font.setBold(True) + font.setWeight(75) + self.label_16.setFont(font) + self.label_16.setObjectName("label_16") + self.gridLayout_2.addWidget(self.label_16, 1, 1, 1, 2) self.m2_type = QtWidgets.QComboBox(self.analyserTab) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) @@ -434,6 +357,20 @@ def setupUi(self, MainWindow): self.m2_type.setPlaceholderText("") self.m2_type.setObjectName("m2_type") self.gridLayout_2.addWidget(self.m2_type, 3, 8, 1, 1) + self.marker2 = QtWidgets.QCheckBox(self.analyserTab) + self.marker2.setAutoFillBackground(False) + self.marker2.setObjectName("marker2") + self.gridLayout_2.addWidget(self.marker2, 2, 8, 1, 1) + self.graphWidget = PlotWidget(self.analyserTab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.graphWidget.sizePolicy().hasHeightForWidth()) + self.graphWidget.setSizePolicy(sizePolicy) + self.graphWidget.setAutoFillBackground(False) + self.graphWidget.setStyleSheet("") + self.graphWidget.setObjectName("graphWidget") + self.gridLayout_2.addWidget(self.graphWidget, 0, 1, 1, 14) self.label_19 = QtWidgets.QLabel(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) @@ -442,37 +379,19 @@ def setupUi(self, MainWindow): self.label_19.setFont(font) self.label_19.setObjectName("label_19") self.gridLayout_2.addWidget(self.label_19, 1, 6, 1, 2) - self.mkr_start = QtWidgets.QToolButton(self.analyserTab) - self.mkr_start.setArrowType(QtCore.Qt.LeftArrow) - self.mkr_start.setObjectName("mkr_start") - self.gridLayout_2.addWidget(self.mkr_start, 2, 6, 1, 1) - self.marker2 = QtWidgets.QCheckBox(self.analyserTab) - self.marker2.setAutoFillBackground(False) - self.marker2.setObjectName("marker2") - self.gridLayout_2.addWidget(self.marker2, 2, 8, 1, 1) - self.m4_type = QtWidgets.QComboBox(self.analyserTab) - self.m4_type.setMaximumSize(QtCore.QSize(55, 16777215)) + self.mToBand = QtWidgets.QToolButton(self.analyserTab) + self.mToBand.setObjectName("mToBand") + self.gridLayout_2.addWidget(self.mToBand, 2, 1, 1, 1) + self.marker3 = QtWidgets.QCheckBox(self.analyserTab) + self.marker3.setObjectName("marker3") + self.gridLayout_2.addWidget(self.marker3, 2, 9, 1, 1) + self.m3_type = QtWidgets.QComboBox(self.analyserTab) + self.m3_type.setMaximumSize(QtCore.QSize(55, 16777215)) font = QtGui.QFont() font.setPointSize(7) - self.m4_type.setFont(font) - self.m4_type.setObjectName("m4_type") - self.gridLayout_2.addWidget(self.m4_type, 3, 10, 1, 1) - self.marker1 = QtWidgets.QCheckBox(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.marker1.sizePolicy().hasHeightForWidth()) - self.marker1.setSizePolicy(sizePolicy) - self.marker1.setObjectName("marker1") - self.gridLayout_2.addWidget(self.marker1, 2, 7, 1, 1) - self.mkr_centre = QtWidgets.QToolButton(self.analyserTab) - self.mkr_centre.setToolTipDuration(1) - self.mkr_centre.setArrowType(QtCore.Qt.UpArrow) - self.mkr_centre.setObjectName("mkr_centre") - self.gridLayout_2.addWidget(self.mkr_centre, 3, 6, 1, 1) - self.presetMarker = QtWidgets.QCheckBox(self.analyserTab) - self.presetMarker.setObjectName("presetMarker") - self.gridLayout_2.addWidget(self.presetMarker, 2, 11, 1, 1) + self.m3_type.setFont(font) + self.m3_type.setObjectName("m3_type") + self.gridLayout_2.addWidget(self.m3_type, 3, 9, 1, 1) self.centre_freq = QtWidgets.QDoubleSpinBox(self.analyserTab) self.centre_freq.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) self.centre_freq.setButtonSymbols(QtWidgets.QAbstractSpinBox.PlusMinus) @@ -481,11 +400,45 @@ def setupUi(self, MainWindow): self.centre_freq.setSuffix("") self.centre_freq.setDecimals(3) self.centre_freq.setMinimum(0.1) - self.centre_freq.setMaximum(6000.0) + self.centre_freq.setMaximum(100000.0) self.centre_freq.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) self.centre_freq.setProperty("value", 98.0) self.centre_freq.setObjectName("centre_freq") self.gridLayout_2.addWidget(self.centre_freq, 3, 3, 1, 1) + self.band_box = QtWidgets.QComboBox(self.analyserTab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.band_box.sizePolicy().hasHeightForWidth()) + self.band_box.setSizePolicy(sizePolicy) + self.band_box.setMaximumSize(QtCore.QSize(90, 16777215)) + self.band_box.setEditable(False) + self.band_box.setCurrentText("") + self.band_box.setInsertPolicy(QtWidgets.QComboBox.InsertAtBottom) + self.band_box.setModelColumn(1) + self.band_box.setObjectName("band_box") + self.gridLayout_2.addWidget(self.band_box, 2, 2, 1, 1) + self.stop_freq = QtWidgets.QDoubleSpinBox(self.analyserTab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.stop_freq.sizePolicy().hasHeightForWidth()) + self.stop_freq.setSizePolicy(sizePolicy) + self.stop_freq.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.stop_freq.setCorrectionMode(QtWidgets.QAbstractSpinBox.CorrectToNearestValue) + self.stop_freq.setPrefix("") + self.stop_freq.setSuffix("") + self.stop_freq.setDecimals(6) + self.stop_freq.setMinimum(0.1) + self.stop_freq.setMaximum(100000.0) + self.stop_freq.setSingleStep(1.0) + self.stop_freq.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) + self.stop_freq.setProperty("value", 108.0) + self.stop_freq.setObjectName("stop_freq") + self.gridLayout_2.addWidget(self.stop_freq, 2, 13, 1, 1) + self.marker4 = QtWidgets.QCheckBox(self.analyserTab) + self.marker4.setObjectName("marker4") + self.gridLayout_2.addWidget(self.marker4, 2, 10, 1, 1) self.label_15 = QtWidgets.QLabel(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) @@ -494,6 +447,56 @@ def setupUi(self, MainWindow): self.label_15.setFont(font) self.label_15.setObjectName("label_15") self.gridLayout_2.addWidget(self.label_15, 1, 13, 1, 1) + self.mkr_centre = QtWidgets.QToolButton(self.analyserTab) + self.mkr_centre.setToolTipDuration(1) + self.mkr_centre.setArrowType(QtCore.Qt.UpArrow) + self.mkr_centre.setObjectName("mkr_centre") + self.gridLayout_2.addWidget(self.mkr_centre, 3, 6, 1, 1) + self.marker1 = QtWidgets.QCheckBox(self.analyserTab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.marker1.sizePolicy().hasHeightForWidth()) + self.marker1.setSizePolicy(sizePolicy) + self.marker1.setObjectName("marker1") + self.gridLayout_2.addWidget(self.marker1, 2, 7, 1, 1) + self.m1_type = QtWidgets.QComboBox(self.analyserTab) + self.m1_type.setMaximumSize(QtCore.QSize(55, 16777215)) + font = QtGui.QFont() + font.setFamily("Sans Serif") + font.setPointSize(7) + self.m1_type.setFont(font) + self.m1_type.setObjectName("m1_type") + self.gridLayout_2.addWidget(self.m1_type, 3, 7, 1, 1) + spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.gridLayout_2.addItem(spacerItem1, 2, 5, 1, 1) + self.scan_button = QtWidgets.QPushButton(self.analyserTab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.scan_button.sizePolicy().hasHeightForWidth()) + self.scan_button.setSizePolicy(sizePolicy) + self.scan_button.setToolTip("") + self.scan_button.setCheckable(False) + self.scan_button.setObjectName("scan_button") + self.gridLayout_2.addWidget(self.scan_button, 2, 14, 1, 1) + self.presetLabel = QtWidgets.QCheckBox(self.analyserTab) + self.presetLabel.setObjectName("presetLabel") + self.gridLayout_2.addWidget(self.presetLabel, 3, 11, 1, 1) + self.m4_type = QtWidgets.QComboBox(self.analyserTab) + self.m4_type.setMaximumSize(QtCore.QSize(55, 16777215)) + font = QtGui.QFont() + font.setPointSize(7) + self.m4_type.setFont(font) + self.m4_type.setObjectName("m4_type") + self.gridLayout_2.addWidget(self.m4_type, 3, 10, 1, 1) + self.presetMarker = QtWidgets.QCheckBox(self.analyserTab) + self.presetMarker.setObjectName("presetMarker") + self.gridLayout_2.addWidget(self.presetMarker, 2, 11, 1, 1) + self.mkr_start = QtWidgets.QToolButton(self.analyserTab) + self.mkr_start.setArrowType(QtCore.Qt.LeftArrow) + self.mkr_start.setObjectName("mkr_start") + self.gridLayout_2.addWidget(self.mkr_start, 2, 6, 1, 1) self.label_9 = QtWidgets.QLabel(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) @@ -502,32 +505,38 @@ def setupUi(self, MainWindow): self.label_9.setFont(font) self.label_9.setObjectName("label_9") self.gridLayout_2.addWidget(self.label_9, 1, 3, 1, 1) - spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) - self.gridLayout_2.addItem(spacerItem2, 2, 12, 1, 1) - self.band_box = QtWidgets.QComboBox(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) + self.span_freq = QtWidgets.QDoubleSpinBox(self.analyserTab) + self.span_freq.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.span_freq.setButtonSymbols(QtWidgets.QAbstractSpinBox.PlusMinus) + self.span_freq.setCorrectionMode(QtWidgets.QAbstractSpinBox.CorrectToNearestValue) + self.span_freq.setPrefix("") + self.span_freq.setSuffix("") + self.span_freq.setDecimals(3) + self.span_freq.setMaximum(100000.0) + self.span_freq.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) + self.span_freq.setProperty("value", 20.0) + self.span_freq.setObjectName("span_freq") + self.gridLayout_2.addWidget(self.span_freq, 3, 13, 1, 1) + self.start_freq = QtWidgets.QDoubleSpinBox(self.analyserTab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.band_box.sizePolicy().hasHeightForWidth()) - self.band_box.setSizePolicy(sizePolicy) - self.band_box.setMaximumSize(QtCore.QSize(90, 16777215)) - self.band_box.setEditable(False) - self.band_box.setCurrentText("") - self.band_box.setInsertPolicy(QtWidgets.QComboBox.InsertAtBottom) - self.band_box.setModelColumn(1) - self.band_box.setObjectName("band_box") - self.gridLayout_2.addWidget(self.band_box, 2, 2, 1, 1) - self.mToBand = QtWidgets.QToolButton(self.analyserTab) - self.mToBand.setObjectName("mToBand") - self.gridLayout_2.addWidget(self.mToBand, 2, 1, 1, 1) - self.label_16 = QtWidgets.QLabel(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - font.setBold(True) - font.setWeight(75) - self.label_16.setFont(font) - self.label_16.setObjectName("label_16") - self.gridLayout_2.addWidget(self.label_16, 1, 1, 1, 2) + sizePolicy.setHeightForWidth(self.start_freq.sizePolicy().hasHeightForWidth()) + self.start_freq.setSizePolicy(sizePolicy) + self.start_freq.setFrame(True) + self.start_freq.setCorrectionMode(QtWidgets.QAbstractSpinBox.CorrectToNearestValue) + self.start_freq.setPrefix("") + self.start_freq.setSuffix("") + self.start_freq.setDecimals(6) + self.start_freq.setMinimum(0.1) + self.start_freq.setMaximum(100000.0) + self.start_freq.setSingleStep(1.0) + self.start_freq.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) + self.start_freq.setProperty("value", 87.5) + self.start_freq.setObjectName("start_freq") + self.gridLayout_2.addWidget(self.start_freq, 2, 3, 1, 1) + spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.gridLayout_2.addItem(spacerItem2, 2, 12, 1, 1) self.gridLayout.addLayout(self.gridLayout_2, 0, 1, 1, 1) self.tabWidget.addTab(self.analyserTab, "") self.TimeTab = QtWidgets.QWidget() @@ -909,7 +918,7 @@ def setupUi(self, MainWindow): self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.menuBar = QtWidgets.QMenuBar(MainWindow) - self.menuBar.setGeometry(QtCore.QRect(0, 0, 1024, 23)) + self.menuBar.setGeometry(QtCore.QRect(0, 0, 1027, 23)) self.menuBar.setObjectName("menuBar") self.menu_Help = QtWidgets.QMenu(self.menuBar) self.menu_Help.setObjectName("menu_Help") @@ -939,52 +948,53 @@ def setupUi(self, MainWindow): def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate - self.version.setText(_translate("MainWindow", "Not Connected")) - self.label.setText(_translate("MainWindow", "Scan Memory Size")) - self.label_3.setText(_translate("MainWindow", "RBW kHz")) - self.lna_box.setToolTip(_translate("MainWindow", "Enable Low Noise Amplifier")) + self.label_7.setText(_translate("MainWindow", "Spur")) + self.memSlider.setToolTip(_translate("MainWindow", "Sweep scan store size")) + self.label_8.setText(_translate("MainWindow", "Trace Averaging 1 - 101")) self.spur_box.setToolTip(_translate("MainWindow", "Spur removal")) + self.atten_box.setSuffix(_translate("MainWindow", "dB")) self.rbw_box.setToolTip(_translate("MainWindow", "Resolution bandwidth")) - self.label_10.setText(_translate("MainWindow", "Trace Settings")) + self.version.setText(_translate("MainWindow", "Not Connected")) + self.label_3.setText(_translate("MainWindow", "RBW kHz")) self.trace3.setText(_translate("MainWindow", "T3")) - self.atten_auto.setText(_translate("MainWindow", "Auto")) - self.label_8.setText(_translate("MainWindow", "Trace Averaging")) - self.trace2.setText(_translate("MainWindow", "T2")) self.label_2.setText(_translate("MainWindow", "Resolution BW & Scan Points")) - self.atten_box.setSuffix(_translate("MainWindow", "dB")) - self.battery.setText(_translate("MainWindow", "Battery")) + self.lna_label.setText(_translate("MainWindow", "LNA")) + self.label_10.setText(_translate("MainWindow", "Trace Settings")) + self.label.setText(_translate("MainWindow", "Scan Memory Size")) + self.lna_box.setToolTip(_translate("MainWindow", "Enable Low Noise Amplifier")) + self.atten_auto.setText(_translate("MainWindow", "Auto")) + self.label_5.setText(_translate("MainWindow", " Attenuator")) + self.trace1.setText(_translate("MainWindow", "T1")) self.points_auto.setToolTip(_translate("MainWindow", "Set points to suit RBW")) self.points_auto.setText(_translate("MainWindow", "Auto Points")) - self.label_5.setText(_translate("MainWindow", " Attenuator")) self.trace4.setText(_translate("MainWindow", "T4")) + self.battery.setText(_translate("MainWindow", "Battery")) self.label_6.setText(_translate("MainWindow", "Battery:")) - self.lna_label.setText(_translate("MainWindow", "LNA")) - self.memSlider.setToolTip(_translate("MainWindow", "Sweep scan store size")) - self.label_7.setText(_translate("MainWindow", "Spur")) - self.trace1.setText(_translate("MainWindow", "T1")) - self.marker4.setText(_translate("MainWindow", "M4")) + self.trace2.setText(_translate("MainWindow", "T2")) + self.mixerMode.setText(_translate("MainWindow", "Mixer/LNB Mode")) + self.label_16.setText(_translate("MainWindow", "Preset freq")) + self.m2_type.setToolTip(_translate("MainWindow", "Marker type")) + self.marker2.setText(_translate("MainWindow", "M2")) + self.label_19.setText(_translate("MainWindow", "Markers")) + self.mToBand.setToolTip(_translate("MainWindow", "Add Band preset from M1 and M2")) + self.mToBand.setText(_translate("MainWindow", "+")) self.marker3.setText(_translate("MainWindow", "M3")) - self.scan_button.setText(_translate("MainWindow", "Run")) self.m3_type.setToolTip(_translate("MainWindow", "Marker type")) + self.band_box.setToolTip(_translate("MainWindow", "Set Frequency Band")) + self.marker4.setText(_translate("MainWindow", "M4")) + self.label_15.setText(_translate("MainWindow", "Stop / Span MHz")) + self.mkr_centre.setToolTip(_translate("MainWindow", "Set markers in range")) + self.mkr_centre.setText(_translate("MainWindow", "...")) + self.marker1.setText(_translate("MainWindow", "M1")) self.m1_type.setToolTip(_translate("MainWindow", "Marker type")) + self.scan_button.setText(_translate("MainWindow", "Run")) self.presetLabel.setToolTip(_translate("MainWindow", "Label preset freqs")) self.presetLabel.setText(_translate("MainWindow", "Labels")) - self.m2_type.setToolTip(_translate("MainWindow", "Marker type")) - self.label_19.setText(_translate("MainWindow", "Markers")) - self.mkr_start.setToolTip(_translate("MainWindow", "Set markers to start frequency")) - self.mkr_start.setText(_translate("MainWindow", "...")) - self.marker2.setText(_translate("MainWindow", "M2")) - self.marker1.setText(_translate("MainWindow", "M1")) - self.mkr_centre.setToolTip(_translate("MainWindow", "Set markers in range")) - self.mkr_centre.setText(_translate("MainWindow", "...")) self.presetMarker.setToolTip(_translate("MainWindow", "Mark preset freqs")) self.presetMarker.setText(_translate("MainWindow", "Presets")) - self.label_15.setText(_translate("MainWindow", "Stop / Span MHz")) + self.mkr_start.setToolTip(_translate("MainWindow", "Set markers to start frequency")) + self.mkr_start.setText(_translate("MainWindow", "...")) self.label_9.setText(_translate("MainWindow", "Start / Centre MHz")) - self.band_box.setToolTip(_translate("MainWindow", "Set Frequency Band")) - self.mToBand.setToolTip(_translate("MainWindow", "Add Band preset from M1 and M2")) - self.mToBand.setText(_translate("MainWindow", "+")) - self.label_16.setText(_translate("MainWindow", "Preset freq")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.analyserTab), _translate("MainWindow", "Analyser")) self.label_14.setText(_translate("MainWindow", "Shade = (Colour * dBm + const) ^ exponent")) self.glSmooth.setText(_translate("MainWindow", "Smooth")) diff --git a/QtTinySpectrum.ui b/QtTinySpectrum.ui index 1984b1c..8bb0080 100644 --- a/QtTinySpectrum.ui +++ b/QtTinySpectrum.ui @@ -7,7 +7,7 @@ 0 0 - 1024 + 1027 600 @@ -52,35 +52,22 @@ - - - - - 7 - - - - Not Connected - - - - - + + 7 75 true - false - Scan Memory Size + Spur - - + + 0 @@ -92,35 +79,90 @@ 7 - - 0 - - - + + 7 - - RBW kHz + + + + + 1 + + + 30000 + + + 100 + + + QAbstractSpinBox::AdaptiveDecimalStepType + + + 400 - - + + + + Sweep scan store size + + + 1 + + + 200 + + + 50 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + + + + + + 0 + 0 + + 7 + 75 + true + false - - Enable Low Noise Amplifier - - + Trace Averaging 1 - 101 + + + + + + + + 0 + 0 + + + + + 7 + @@ -145,19 +187,31 @@ - - - - - 0 - 0 - + + + + false 7 + + false + + + dB + + + 0 + + + 31 + + + 0 + @@ -184,52 +238,92 @@ - - + + 7 - 75 - true - false - Trace Settings + Not Connected - - + + + + + 0 + 0 + + 7 - 75 - true - - T3 + + + + + 1 + + + 101 + + + 10 + + + Qt::Horizontal + + + false + + + false + + + QSlider::TicksAbove + + + 10 - - + + 7 - Auto + RBW kHz - - true + + + + + + + 0 + 0 + + + + + 7 + + + + 0 - - + + 7 @@ -238,13 +332,23 @@ - T2 - - - false + T3 + + + + Qt::Vertical + + + + 17 + 13 + + + + @@ -266,87 +370,52 @@ - - - - false - + + 7 + 75 + true - - false - - - dB - - - 0 - - - 31 - - - 0 + + LNA - - + + 7 + 75 + true + false - Battery + Trace Settings - - - - true + + + + + 0 + 0 + 7 - - Set points to suit RBW - - - Auto Points - - - true - - - - - Qt::Vertical - - - - 17 - 13 - - - - - - - - - 0 - 0 - - + + 7 @@ -356,40 +425,44 @@ - Attenuator + Scan Memory Size - - + + 7 - 75 - true + + Enable Low Noise Amplifier + - T4 + - - + + 7 - Battery: + Auto + + + true - - + + - + 0 0 @@ -397,12 +470,18 @@ 7 + 75 + true + false + + Attenuator + - - + + 7 @@ -411,90 +490,77 @@ - LNA + T1 + + + true + + + false - - + + + + true + 7 - - - - - 1 - - - 30000 - - - 100 + + Set points to suit RBW - - QAbstractSpinBox::AdaptiveDecimalStepType + + Auto Points - - 400 + + true - - - - - 0 - 0 - - + + 7 + 75 + true + + T4 + - - - - Sweep scan store size - - - 1 - - - 200 - - - 50 - - - Qt::Horizontal + + + + + 7 + - - QSlider::TicksAbove + + Battery - - + + 7 - 75 - true - Spur + Battery: - - + + 7 @@ -503,138 +569,111 @@ - T1 - - - true + T2 false - - + + - + 0 0 - - - 7 - - - - - - - 1 - - - 101 + + + 0 + 0 + - - 10 + + false - - Qt::Horizontal + + background-color:lightGreen - - false + + QFrame::Box - - false + + QFrame::Sunken - - QSlider::TicksAbove + + Mixer/LNB Mode - - 10 + + Qt::AlignCenter - - - - - 0 - 0 - - + + + + + + 7 75 true - false - Trace Averaging 1 - 101 + Preset freq - - - - - - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - QAbstractSpinBox::PlusMinus + + + + + 0 + 0 + - - QAbstractSpinBox::CorrectToNearestValue + + + 55 + 16777215 + - - - - - - - - 3 - - - 6000.000000000000000 + + + 7 + - - QAbstractSpinBox::AdaptiveDecimalStepType + + Marker type - - 20.000000000000000 + + QComboBox::AdjustToContentsOnFirstShow - - - - - - Qt::Horizontal + + 0 - + - 40 - 20 + 16 + 16 - - - - - - M4 + + - - + + + + false + - M3 + M2 @@ -654,35 +693,62 @@ - - - - - 0 - 0 - + + + + + 7 + 75 + true + + + + Markers + + + + - + Add Band preset from M1 and M2 - Run + + - - false + + + + + + M3 - - - - - 0 - 0 - + + + + + 55 + 16777215 + - - true + + + 7 + + + + Marker type + + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + QAbstractSpinBox::PlusMinus QAbstractSpinBox::CorrectToNearestValue @@ -694,69 +760,50 @@ - 6 + 3 0.100000000000000 - 6000.000000000000000 - - - 1.000000000000000 + 100000.000000000000000 QAbstractSpinBox::AdaptiveDecimalStepType - 87.500000000000000 + 98.000000000000000 - - + + + + + 0 + 0 + + - 55 + 90 16777215 - - - 7 - - - Marker type - - - - - - - - 55 - 16777215 - + Set Frequency Band - - - Sans Serif - 7 - + + false - - Marker type + + - - - - - - Label preset freqs + + QComboBox::InsertAtBottom - - Labels + + 1 @@ -787,7 +834,7 @@ 0.100000000000000 - 6000.000000000000000 + 100000.000000000000000 1.000000000000000 @@ -800,14 +847,58 @@ - - + + + + M4 + + + + + + + + 7 + 75 + true + + + + Stop / Span MHz + + + + + + + Set markers in range + + + 1 + + + ... + + + Qt::UpArrow + + + + + - + 0 0 + + M1 + + + + + 55 @@ -816,63 +907,54 @@ + Sans Serif 7 Marker type - - QComboBox::AdjustToContentsOnFirstShow - - - 0 + + + + + + Qt::Horizontal - + - 16 - 16 + 40 + 20 - - - - + - - - - - 7 - 75 - true - - - - Markers + + + + + 0 + 0 + - - - - - Set markers to start frequency + - ... + Run - - Qt::LeftArrow + + false - - - - false + + + + Label preset freqs - M2 + Labels @@ -891,47 +973,45 @@ - - - - - 0 - 0 - + + + + Mark preset freqs - M1 + Presets - - + + - Set markers in range - - - 1 + Set markers to start frequency ... - Qt::UpArrow + Qt::LeftArrow - - - - Mark preset freqs + + + + + 7 + 75 + true + - Presets + Start / Centre MHz - - + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter @@ -950,115 +1030,69 @@ 3 - - 0.100000000000000 - - 6000.000000000000000 + 100000.000000000000000 QAbstractSpinBox::AdaptiveDecimalStepType - 98.000000000000000 - - - - - - - - 7 - 75 - true - - - - Stop / Span MHz - - - - - - - - 7 - 75 - true - - - - Start / Centre MHz + 20.000000000000000 - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - + + - + 0 0 - - - 90 - 16777215 - + + true - - Set Frequency Band + + QAbstractSpinBox::CorrectToNearestValue - - false + + - + - - QComboBox::InsertAtBottom + + 6 - - 1 + + 0.100000000000000 - - - - - - Add Band preset from M1 and M2 + + 100000.000000000000000 - - + + + 1.000000000000000 + + + QAbstractSpinBox::AdaptiveDecimalStepType + + + 87.500000000000000 - - - - - 7 - 75 - true - + + + + Qt::Horizontal - - Preset freq + + + 40 + 20 + - + @@ -1874,7 +1908,7 @@ 0 0 - 1024 + 1027 23 diff --git a/preferences.ui b/preferences.ui index c9c8905..6a2c8d8 100644 --- a/preferences.ui +++ b/preferences.ui @@ -152,7 +152,7 @@ 440 10 - 351 + 356 571 @@ -199,7 +199,7 @@ - Frequency Offset + External Mixer / LNB @@ -344,7 +344,7 @@ - External LO above IF + LO above displayed Freq @@ -418,7 +418,7 @@ - External LO Frequency + LO Frequency From cfd3141ebb1d3747680cf5b2dca6ccf7dd9db284 Mon Sep 17 00:00:00 2001 From: G4IXT Date: Wed, 13 Mar 2024 09:30:30 +0000 Subject: [PATCH 05/17] v0.10.2 wip wip --- QtTSAprefs.db | Bin 0 -> 131072 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 QtTSAprefs.db diff --git a/QtTSAprefs.db b/QtTSAprefs.db new file mode 100644 index 0000000000000000000000000000000000000000..70c53b3aa408e6dc07fe9fd329602ca7749cd87a GIT binary patch literal 131072 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 literal 0 HcmV?d00001 From 4036cec957ef291f225525379afd638e9af25632 Mon Sep 17 00:00:00 2001 From: G4IXT Date: Fri, 15 Mar 2024 14:13:40 +0000 Subject: [PATCH 06/17] v0.10.2 wip fixed high LO bug, broken import/export --- QtTSAprefs.db | Bin 131072 -> 131072 bytes QtTinySA.py | 78 ++-- QtTinySpectrum.py | 668 +++++++++++++++---------------- QtTinySpectrum.ui | 970 +++++++++++++++++++++++----------------------- 4 files changed, 869 insertions(+), 847 deletions(-) diff --git a/QtTSAprefs.db b/QtTSAprefs.db index 70c53b3aa408e6dc07fe9fd329602ca7749cd87a..3f66f89dec18e7199c0ac9d907036156c52aedb6 100644 GIT binary patch delta 8906 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 gjQ6z06d|$%kUpjpM52r3HO#lD@ delta 8556 zcmb7}dw5jUwZP}h^E_t~$(cEs#4zCzpkhd7LKq9eWQI%}&byg;C13=GnHno^*BXPd2%% zt|v{(a8=&T5@#vq+E;e8uWswz)UlRlEd^Z9`tG)lHEVN3%S3bMnvVO{cl5Nc>R2mW zIIzFbzI@`b|C#Q4;Bv%u9%;|B*iD?v;|Mf$tXLfg9sA>^ONmv^1Lt2U2|dr0F*&Ma zIbpibveV=mbNz?wRoA1gEv}`mxvojB9OqT%Ip@DQpLBlTx!M_XmOJyLFQh+6zmT4h zwo5Ce1yZS$EB;-4Pdp+%Ar6S`VpNPUd-gE<1Utyy&DOK!tlROmaBQ1c-~xHRqtzG+1uG^3vGY#1pJ)boUgZlKE@2V zVb$6WUq_E`ZF@&ght2#Nh$g6L{Pwsn(GsguV>KZAR44k`oTtZGQ!ZYzwHzMb9Y8;F zuHMX=JXmGCsj9i!X5J^u`a)`5Q?wqwTSLB^uQ#!#0<5Ag(dw(KZU8ows8{qx2m)qR z@pxT4VGC_jzrkL~UOmQ|Zp5s%)E91Sj#mNwlt7Q(fDAyPh}2d`<3K(l%X#&BDi&|7 z2bI+bp2wk(J^BJFM(hr4J3$rRmLe)c(XWX{k6uTGnyQ;4NZo7HwOZ<0q@}L4880=0 zU4wAc&~QW=n?dHmAH&aMU_z8?YpsqYkhZOqR3oBdr>g7g8v$)1cDwcYtVt$us!t%W zj(|KpV&umUkJk`yWIaq5uSV(I)`h>m*{fI4;MA<|Si8a(+G5FjZmu;{y4a2CM% zRPvTASP3vhVK58M1b8b>!)8^{XVIdJ)-Cpxfh$A1u%AIiugpLYf}wxKjsTjOfgp54 zgE;DdDl!nne5ju)3}hfMQXN`PHTp9ccsH~LI{+HXGY~{&sE2AS%Rms#q19C3jC52E zX&72cO)RBIMNXF^rxTRjOc_SV>1Mjv^bCZYuA__Hl!1`bQ6eSl-=WoscZ#7Z9Qj~@ zK8-bvS8D?Q%JUwO3449huGrP6$(>}B6tJ#BIs3h52Yzlq}NG( zbZ0?i5l^EoXF(Jl2VFET3qpwuqMH<)pk95P0ad&)&V-yKzoj|3!Jq^}Hj`gdy}4Ns z>L7WQnwygap@Nb|dAYJ6RA%yuN}X|LQ3z72g z(kNS=HL2vxC9$6gK}uerdbv!|3KXOFC}guBijh(Ajx2~`^gHUPJp-z~3KXQ1RIiQF zRIQ*Oy@f@CUfpUyvR$AU9mA4~yt*X|q8Po2!vN5n1yPLNKx);KK$$Fxf^>xHHKoJG z<_Ho!giB?SS5vbfl01mBwkTigr`Ltl`3kHHvtYi~mtrbIAkw-LTO0Ih_ZwQtTZ$rd zS1JhF)+~sEy8;^vl3TJMO3N~;c5@a)301#GUg11#6QbzaNFopCh507XxG_@*9Tmyc zQQ_4#WI^P`LTbzUEQk^kBer<7b=U7-Xd42wfEbditwjhK5(nb9nWqIk+8TO`LeG$* z`6L_#+I?_{;4`Ey7Ed&{5MA_$(eBNr$ilhAhytw_>OWH$sh&*?k+mKqj0~ZwD{ST| zK}GAP2TY{a7jHtgR}gCytt$h;Vgnyjk5{L;5N`r9hKRW{IGV#;bD2xrqrYUVId;Z% z+2p!>AUEfn>&60RoT-3gIF^O~SdQc1!`{`=xnh0SI?LWy8K2Vz^~AWoLRFRP`sxsL zXrHrs&qvflP*eU zq*Kyy>8P|v8kI(*y{?d?Njs$-Qopo8>XAC7Wm2mYlcLgGsS?__5~)aXOHRoyUK6j1 zSHv;#qIgC;B_0=#ilgF)xL4dGYT{0DhuAM}5PQTviZST;=8BbKsaPTwiEhy; z+J$SvRpE*-CR`NG2&aVO!ck#V7!mdgdjw6`DeMsXg$+WF&2VC zBEc;<1v`I@zsg_X$M}o<8U7T1oIlEs@+16Seh;tlJNX@aKXj2jyxPex<6HR{ALZxr zm3%2*!WZ#w-pSj!Yur`t3OB}G)|@NWn3#4 z?k|J?q&C|8oQI-!S=Ho97jtX zNB=*6_9q8zR<_6V)Nt}~tF+e^g3kWo<)2y$g$u$3hsA6b&I{-9-{*vL`0umA*+Y-5 zWJH_Qan^BG-`C9)9y-;{Y+*#G3@iRhrBJEY_A-YHQL(@eDxLB0@xkXt_!Pk>=TPAQ z^U-(@{L{{rm|UkJ^5y(D+#OsAdyqZ2Kl!HJ%Kn`>JDe=Bvj1TA?@zwUFh3hk_Sk0@ z*gbU<^__bdMgQO>Mwy}v6?z?>i4&Ra>bezeT^(tIhqQlsbl=O&5&ggu%y|9&eN2wN zWQ6f+Bg{?u>K7SFe|?0RVw3Hjnqs2)+Y!d?a0l`-o(TH9R~SK%zrS*v!&6+$3>WCL zUtsc?yhAN7Fn!FSFMr0oZPrh}!pu-5aBP^VWn3S-PPkrk>8_2gMXp+x-{o^TonJGx z&JUfZod=yyJ0EmzcHRx|%q*wR$w{9{?@F&rPs1CrPFf;`p#DYiui{y#_7}xraie&L z7=clSOZXh}^QQ2;@Izs(aJw*1m@EkVU-j!U~Q*JKl91aXjhR=2+#3Im#V*_J7#V+ka)> zYk$DrWpA|m?Xv9)+XuE|w&!g>uyxy-Yyq3w`la=K>oMyK)?L;O);p{b>olv&^10=L zwR9N!O*UXpAZ=3gAR?&SA%>!Vw z95{!`W{Q1tRTU(X};Cvrg3Z-c>fl+s)0kBpbSWMP&YfIAz zGPi{|sAw>PN{v;z*7f3WH4_&V4UL`1Bmp55FVc$3iUxD7G=w5nPi#;$7)ep2f*7)| zmU;_QDKg)QbaZu*)vAdh`5H{7(izejCYI!DFqTSZNas8fjC>8oQiMgj*01aE!RTjT z4zVR))nF!-4#NP0#2Al;2UB>2(z^ybK9iW@(O^84niv5=e*1|b9t{Rmge000xFBZ` zGdvoMr>+xJkkA>aC@UTfrc>7u%J5X0l?IxXL>OzEK&uNTQ)Gw(04W)BAs?}eL{E=zUjj0s5Ng~E#pX|ekDX* z{RYF$UJXW5=`a9A-M^1Qm`-6xFQ@@{b^D*gzJVwVsM19%Ak+O1V*dcbkSYU$Mg7~c zwE$sMl>s3D{oNF1&8sRPY-;~XTnQkG2UaNADM!JgzITaeo`&aD=#?cfP-$b{2bru% zl^@=yzEjkTTQhC(Lv;FnPHjm|s#L160>abx0<|S;QssvL^!=2IW=*OBaMA92g2Jpx zl^>$h_c&D>%(N&FgaJk0qlD&ZFsUL}^puaYY|J_E5vEk>Aq^l~$W#d+%&9UUTCSJc z0+Xr?2+8QXn?jgX0aUMt6tdCRMr=`b!4`pQl?#U>zWG&QN2se}%Lg?hc}fzxYuG(t zpj{IVMB-s{XmsG4sh|J*E?G%JYi*zf)h!5p3Ke$}5H!{XipClc`eb|2VYL|;^wkDi z(ol`qA3@<#K+shiC?1I*^xq?STRs2;EwzCfYq7>LlzKqWP#dVBb_tSt2U!mY+GzuU z^{P3vZ}^LapKKow47zE9)mKLmqIN(peH}G{9s7na9tJUxf=1dv*!q3Lr;%%bpp79?(D=2nYX}Vro6K&jzZm zj+;Zz6jSS=c{Wfuj?p=&gU4h=O+xQ%uy_PBY9lnx27-AK()gQH@S$xs5O(^R;y3Pn z_B|dnrV(uXGsP+6pzRS%H4}{~$u3SvClEcz5K_u+FWr0-dr! zs$w-r-5;jnI)paaAhDV{MD~zmL62;ZNEBpL18qt}^INcWyGX8}M>d37;tP;E{3^%_ zG{^>Nh`_6`JA#4$#zA*%kZ3bRb$0}BOR@s3u|ewQs}R-Q5m*PkKhPQ*2#0QW1WF85 z5;VvLsYfr?RtGF|?{l&O4YEP7uUj3X)la|urmR47Y!GbRRtM->_^GTwV@!z}z@gjf zn0No5hF8i8G{qDJqOsf2LLh_coV3N{wQs3~THb0$`@vROAzd*ci%_`RT#qE}lirsV zXo?MO*tj-V*MpHqlClDKN=)GV2?wxsZ7#D|cVwBYz>U%nidVOSI_FylZ&{opD{!MU z2sXRT+5hE*38!TRZj=UTMaH#BP(D+y$_iX44bl*vZw@USA_uhs7s`D21xacnL&dN# zd1Tqld3~}1SIX-`D6b2Xc-xc}xKkPgo3JnmK|uQvTq+F`uBt*Z5Q7;7vI192gDi?K z1~RbbRo}74<=o}03Wy;lgj*Jyqp|{5O5@x0)y?Km-R!%T6u!jD3fw6Tf}>eCd&2KN zS{{}axKtXXxdAG)?z^enz@^e4ILviH6w5YQA-763wKg)iZf2?oVDrxsGNG!zPgdY| zXb@t8Y3PO?{fDvwcSC~^6HHYP%v$gpITvn*89w@D1ulfCFRS6e;syxtoVrc#{PS<4 zvI5sZLr+x|1Z&RxpZxT4{0muuE1yAPi;&Db92r@Gi=9ERlXGUl%kk`cvJCgSaUA2| z7=Kx}Gc^4GPJKd#OC5P!p_X+!LWTI%>`cgTbtBKqXLie>nQO_{J#cZ8IS0d;%PY&e z=iv+1iIZm2P!62F<2W-kPL=K5?i)Ol6FG3?k|(#ccZ(lNFD3H)aFXKh_-lNNRz+9A zpy8oJZaGp3k}6XkXz%9i@T{N=PGruEjD<(Ocsy*&3GEK!6FHGPBPD>L^{nmYgj|Zw zXtX+R+ZKh{sb5dCByy+IZ_X-f?`B4r!-<@ms8w*1n_e-EC33z4zd*q2oBiFUADJF9 zJ)AcUJwman=#GXKK1J4*rsAgzxY+HlNEA(hi!$dxHdZv$ZV3f1<83Gu{3qV`5=AAH zmj@B|yYSW)@}muI>9j=QWMm1F50rI>CIteEQHVp6>haN+kS8LHY$z}5E)3mzfFz)B t0+kAa6q + + + + Sweep scan store size + + + 1 + + + 200 + + + 50 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + @@ -66,10 +88,10 @@ - - + + - + 0 0 @@ -77,93 +99,119 @@ 7 + 75 + true + false + + Resolution BW & Scan Points + - - + + + + Qt::Vertical + + + + 17 + 13 + + + + + + 7 - - - - - 1 + + Auto - - 30000 + + true - - 100 + + + + + + + 7 + 75 + true + - - QAbstractSpinBox::AdaptiveDecimalStepType + + T2 - - 400 + + false - - - - Sweep scan store size - - - 1 - - - 200 + + + + + 7 + 75 + true + false + - - 50 + + Scan Memory Size - - Qt::Horizontal + + + + + + + 7 + - - QSlider::TicksAbove + + RBW kHz - - - - - 0 - 0 - - + + 7 - 75 - true - false - Trace Averaging 1 - 101 + Battery: - - - - - 0 - 0 - + + + + true 7 + + Set points to suit RBW + + + Auto Points + + + true + @@ -187,6 +235,21 @@ + + + + + 7 + 75 + true + false + + + + Trace Settings + + + @@ -214,11 +277,8 @@ - - - - true - + + 0 @@ -230,23 +290,60 @@ 7 - - Resolution bandwidth + + + + + + + 0 + 0 + - + + + 7 + 75 + true + false + + + + Attenuator + + + + + + + + 7 + 75 + true + + + + T1 + + true + + false + - - + + 7 + 75 + true - Not Connected + LNA @@ -292,86 +389,64 @@ - - + + 7 - - RBW kHz + + - - - - - - - 0 - 0 - + + 1 - - - 7 - + + 30000 - - 0 + + 100 - - - - + + QAbstractSpinBox::AdaptiveDecimalStepType + + + 400 + + + + + 7 - 75 - true + + Enable Low Noise Amplifier + - T3 + - - - - Qt::Vertical - - - - 17 - 13 - - - - - - - - - 0 - 0 - - + + 7 75 true - false - Resolution BW & Scan Points + T4 - - + + 7 @@ -380,42 +455,30 @@ - LNA + T3 - - + + 7 - 75 - true - false - Trace Settings + Not Connected - - + + - + 0 0 - - - 7 - - - - - - 7 @@ -425,44 +488,41 @@ - Scan Memory Size + Trace Averaging 1 - 101 - - + + + + + 0 + 0 + + 7 - - Enable Low Noise Amplifier - - - - - - + + 7 - Auto - - - true + Battery - - + + - + 0 0 @@ -470,59 +530,58 @@ 7 - 75 - true - false - - Attenuator - - - + + + + true + + + + 0 + 0 + + 7 - 75 - true - - T1 + + Resolution bandwidth - + true - - false - - - - - true + + + + + 0 + 0 + 7 - - Set points to suit RBW - - - Auto Points - - - true + + 0 - - + + + + + + 7 @@ -531,89 +590,90 @@ - T4 + Stop / Span MHz - - - - - 7 - + + + + Set markers in range + + + 1 - Battery + ... + + + Qt::UpArrow - - + + 7 + 75 + true - Battery: + Markers - - - - - 7 - 75 - true - + + + + Mark preset freqs - T2 - - - false + Presets - - + + - + 0 0 - - - 0 - 0 - + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - false + + QAbstractSpinBox::CorrectToNearestValue - - background-color:lightGreen + + - - QFrame::Box + + - - QFrame::Sunken + + 6 - - Mixer/LNB Mode + + 0.100000000000000 - - Qt::AlignCenter + + 100000.000000000000000 + + + 1.000000000000000 + + + QAbstractSpinBox::AdaptiveDecimalStepType + + + 108.000000000000000 - - - - @@ -628,14 +688,49 @@ - - - - - 0 - 0 - + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + QAbstractSpinBox::PlusMinus + + + QAbstractSpinBox::CorrectToNearestValue + + + + + + + + + 3 + + 0.100000000000000 + + + 100000.000000000000000 + + + QAbstractSpinBox::AdaptiveDecimalStepType + + + 98.000000000000000 + + + + + + + M3 + + + + + 55 @@ -644,106 +739,120 @@ + Sans Serif 7 Marker type - - QComboBox::AdjustToContentsOnFirstShow - - - 0 - - - - 16 - 16 - - - - + + + + + + M4 - - - - false + + + + + 55 + 16777215 + - - M2 + + + 7 + - - + + - + 0 0 - - false - - - + + M1 - - + + + + + 55 + 16777215 + + 7 - 75 - true - - Markers + + Marker type - - - - Add Band preset from M1 and M2 + + + + Qt::Horizontal - - + + + + 40 + 20 + - + - - + + + + false + - M3 + M2 - - - - - 55 - 16777215 - - + + 7 + 75 + true - - Marker type + + Start / Centre MHz - - + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter @@ -762,9 +871,6 @@ 3 - - 0.100000000000000 - 100000.000000000000000 @@ -772,7 +878,17 @@ QAbstractSpinBox::AdaptiveDecimalStepType - 98.000000000000000 + 20.000000000000000 + + + + + + + Add Band preset from M1 and M2 + + + + @@ -807,98 +923,14 @@ - - - - - 0 - 0 - - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - QAbstractSpinBox::CorrectToNearestValue - - - - - - - - - 6 - - - 0.100000000000000 - - - 100000.000000000000000 - - - 1.000000000000000 - - - QAbstractSpinBox::AdaptiveDecimalStepType - - - 108.000000000000000 - - - - - - - M4 - - - - - - - - 7 - 75 - true - - - - Stop / Span MHz - - - - - - - Set markers in range - - - 1 - - - ... - - - Qt::UpArrow - - - - - + + - + 0 0 - - M1 - - - - - 55 @@ -907,44 +939,26 @@ - Sans Serif 7 Marker type - - - - - - Qt::Horizontal + + QComboBox::AdjustToContentsOnFirstShow - + + 0 + + - 40 - 20 + 16 + 16 - - - - - - - 0 - 0 - - - - - - - Run - - - false + + @@ -958,31 +972,6 @@ - - - - - 55 - 16777215 - - - - - 7 - - - - - - - - Mark preset freqs - - - Presets - - - @@ -996,48 +985,22 @@ - - - - - 7 - 75 - true - - - - Start / Centre MHz - - - - - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - QAbstractSpinBox::PlusMinus - - - QAbstractSpinBox::CorrectToNearestValue - - - + + + + + 0 + 0 + - + - - 3 - - - 100000.000000000000000 - - - QAbstractSpinBox::AdaptiveDecimalStepType + + Run - - 20.000000000000000 + + false @@ -1081,18 +1044,61 @@ - - - - Qt::Horizontal + + + + + 0 + 0 + - + + false + + + + + + + + + + + 0 + 0 + + + - 40 - 20 + 0 + 0 - + + false + + + background-color:lightGreen + + + QFrame::NoFrame + + + QFrame::Plain + + + 0 + + + Mixer/LNB + + + false + + + Qt::AlignCenter + + From 649302a39aee90a6baa600208949829a61384937 Mon Sep 17 00:00:00 2001 From: G4IXT Date: Fri, 15 Mar 2024 22:18:39 +0000 Subject: [PATCH 07/17] v0.10.2 wip - changes changes to mixer/LNB freq selection filter combo-box added to main GUI import/export still broken --- QtTSAprefs.db | Bin 131072 -> 98304 bytes QtTinySA.py | 51 +++-- QtTinySpectrum.py | 353 ++++++++++++++--------------- QtTinySpectrum.ui | 550 ++++++++++++++++++++++------------------------ 4 files changed, 481 insertions(+), 473 deletions(-) diff --git a/QtTSAprefs.db b/QtTSAprefs.db index 3f66f89dec18e7199c0ac9d907036156c52aedb6..63e00541b06ec256c20c45315900aafb668ab579 100644 GIT binary patch delta 8430 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 JgQ

Preset Frequency list

")) + self.label_9.setText(_translate("MainWindow", "Start / Centre MHz")) self.mkr_start.setToolTip(_translate("MainWindow", "Set markers to start frequency")) self.mkr_start.setText(_translate("MainWindow", "...")) - self.scan_button.setText(_translate("MainWindow", "Run")) - self.mixerMode.setText(_translate("MainWindow", "Mixer/LNB")) + self.filterBox.setToolTip(_translate("MainWindow", "Filter preset list")) + self.m1_type.setToolTip(_translate("MainWindow", "Marker type")) + self.label_15.setText(_translate("MainWindow", "Stop / Span MHz")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.analyserTab), _translate("MainWindow", "Analyser")) self.label_14.setText(_translate("MainWindow", "Shade = (Colour * dBm + const) ^ exponent")) self.glSmooth.setText(_translate("MainWindow", "Smooth")) diff --git a/QtTinySpectrum.ui b/QtTinySpectrum.ui index 1992c9e..da6c673 100644 --- a/QtTinySpectrum.ui +++ b/QtTinySpectrum.ui @@ -7,7 +7,7 @@ 0 0 - 1027 + 1000 600 @@ -576,75 +576,80 @@ - - - - - - + + + + + 0 + 0 + + + + + 0 + 0 + + 7 - 75 - true - - Stop / Span MHz + + false - - - - - - Set markers in range + + background-color:lightGreen - - 1 + + QFrame::NoFrame + + + QFrame::Plain + + + 0 - ... + Mixer/LNB mode - - Qt::UpArrow + + false + + + Qt::AlignCenter - - - - - 7 - 75 - true - - + + + + + + - Markers + M3 - - + + - Mark preset freqs + Label preset freqs - Presets + Labels - - - - - 0 - 0 - - + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + QAbstractSpinBox::PlusMinus + QAbstractSpinBox::CorrectToNearestValue @@ -655,41 +660,76 @@ - 6 + 3 0.100000000000000 - 100000.000000000000000 - - - 1.000000000000000 + 6000.000000000000000 QAbstractSpinBox::AdaptiveDecimalStepType - 108.000000000000000 + 98.000000000000000 - - + + + + + 0 + 0 + + + + M1 + + + + + + + + 0 + 0 + + + + + 55 + 16777215 + + 7 - 75 - true - - Preset freq + + Marker type + + + QComboBox::AdjustToContentsOnFirstShow + + + 0 + + + + 16 + 16 + + + + - - + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter @@ -708,9 +748,6 @@ 3 - - 0.100000000000000 - 100000.000000000000000 @@ -718,72 +755,50 @@ QAbstractSpinBox::AdaptiveDecimalStepType - 98.000000000000000 + 20.000000000000000 - - + + + + false + - M3 + M2 - - - - - 55 - 16777215 - - - - - Sans Serif - 7 - - + + - Marker type + Mark preset freqs - - - - - M4 - - - - - - - - 55 - 16777215 - - - - - 7 - + Presets - - + + 0 0 + + + - M1 + Run + + + false - + @@ -801,63 +816,81 @@ - - - - Qt::Horizontal + + + + + 0 + 0 + - - - 40 - 20 - + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - false + + QAbstractSpinBox::CorrectToNearestValue - - M2 + + + + + + + + 6 + + + 0.100000000000000 + + + 6000.000000000000000 + + + 1.000000000000000 + + + QAbstractSpinBox::AdaptiveDecimalStepType + + + 108.000000000000000 - - - - - 7 - 75 - true - + + + + Add Band preset from M1 and M2 - Start / Centre MHz + + - - - - Qt::Horizontal - - + + + - 40 - 20 + 55 + 16777215 - + + + 7 + + + - - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + 0 + 0 + - - QAbstractSpinBox::PlusMinus + + true QAbstractSpinBox::CorrectToNearestValue @@ -869,30 +902,77 @@ - 3 + 6 + + + 0.100000000000000 - 100000.000000000000000 + 6000.000000000000000 + + + 1.000000000000000 QAbstractSpinBox::AdaptiveDecimalStepType - 20.000000000000000 + 87.500000000000000 - - + + + + M4 + + + + + + + + 7 + 75 + true + + + + Presets / Filter + + + + + - Add Band preset from M1 and M2 + Set markers in range + + + 1 - + + ... + + + Qt::UpArrow - + + + + + 7 + 75 + true + + + + Markers + + + + @@ -907,7 +987,7 @@ - Set Frequency Band + <html><head/><body><p>Preset Frequency list</p></body></html> false @@ -923,56 +1003,21 @@ - - - - - 0 - 0 - - - - - 55 - 16777215 - - + + 7 + 75 + true - - Marker type - - - QComboBox::AdjustToContentsOnFirstShow - - - 0 - - - - 16 - 16 - - - - - - - - - - - Label preset freqs - - Labels + Start / Centre MHz - + Set markers to start frequency @@ -985,66 +1030,33 @@ - - - - - 0 - 0 - - + + - - - - Run - - - false + Filter preset list - - - - - 0 - 0 - - - - true - - - QAbstractSpinBox::CorrectToNearestValue - - - - - - - - - 6 - - - 0.100000000000000 - - - 100000.000000000000000 - - - 1.000000000000000 + + + + + 55 + 16777215 + - - QAbstractSpinBox::AdaptiveDecimalStepType + + + Sans Serif + 7 + - - 87.500000000000000 + + Marker type - + @@ -1060,43 +1072,17 @@ - - - - - 0 - 0 - - - - - 0 - 0 - - - - false - - - background-color:lightGreen - - - QFrame::NoFrame - - - QFrame::Plain - - - 0 + + + + + 7 + 75 + true + - Mixer/LNB - - - false - - - Qt::AlignCenter + Stop / Span MHz @@ -1914,7 +1900,7 @@ 0 0 - 1027 + 1000 23 From 8606155806101a9e5b7d4ed88e894d0b2b5996fb Mon Sep 17 00:00:00 2001 From: G4IXT Date: Fri, 22 Mar 2024 09:47:01 +0000 Subject: [PATCH 08/17] v0.10.2 wip work in progress --- QtTSAprefs.db | Bin 98304 -> 126976 bytes QtTinySA.py | 244 ++++++++++++++++++++++------------------------ QtTinySpectrum.py | 38 ++++---- QtTinySpectrum.ui | 75 +++++++------- 4 files changed, 182 insertions(+), 175 deletions(-) diff --git a/QtTSAprefs.db b/QtTSAprefs.db index 63e00541b06ec256c20c45315900aafb668ab579..2a9333b6910b9e3c3bb04bb3ab07571b3023c329 100644 GIT binary patch delta 3704 zcmZt|3v3%_`Tu?A$N7Bs*>RGK?Iy9^l{9J6`0ONYCs2}gSyz!hRwZje8tEmuB&Lp? z+UGX3Vs5r-D-TWe%+?K7N?{eRY6~@6M%mEHLmFeO6gC(e(@MnvYn7I+#pxf3^&R?@0Y
!*CGJ!zqx#ylM_--36D$Z zNfN-;Om26<>O27yiiMAYRD-*wHb(m*!)r zc+9>VcN`OU;~PsI5_WJj5eO6q8DnBA(56a0QSx~o zTk5DnI>;2hM_Tna(z2h!8>D^Dl9--=f}J$PM(wbZR@iL2Xa|MxBu$Yk zMGUEvjqIeIHrz=d+D_;#G)=B<%0?lEB~s4*Up}rLU**{AD9WCz;}61{@C-i+UxNjh z=5K|~d<%4ekGJvv;(yKkng1R)z%_FZag^sz9^rXT@tovdV&7!Xd5(B8+|wSn=Wfp@ zNN{JJ|R9ezBdo4V-!JF08;$pnQE93$$x>ZwD zveJayBgQJc+$}UIOT^lnxl}&aH=In%eO0M2rn_sU)Zph6RS7aRoH|6>(c+`qtC6zhe;<~C>3vb%ddO0TLm5gW!E9j|7x<~A(>IPYpSI{bw z5G~OL8I!3OSrn^^2sJtBR#5A#l`CP1yUAhY#4WvPvRgUUBvuwEy0^A?2jpx1&i4*!7X_&WX+gt!abPq{MpKJ0`$ zVFPr4i+`Dao2U4lB;qHzN4R&n2jD2&M?Pkzh}m1Y0#8M-T5o;ZL`_s*X<-x9S757w z&gvVe*+g~W6(*_+hsY?}k!e8Jh?pX}w-%l%Xx@!^3<9-M4aS`LrbbG{)&bF%m(Wc0 z*N|&=R-=z6&a3d zRU^?ikjsiCoCPZycUUpezPxUg{X{oWy)_jz$BJ66QW+&%J=M)vd#SB4F2bHgtjmSq zSMVtJA@?FX;C{+o@F4bgE*DqiwsKp^V|tIBV$a&uF|ftiv$ii)hRFa9D_u?@6vAKV zSETWjY`iIq8(Y5S+=B~Iy*E*2WN6n&r<;lD4XxrNo+>gcTHv?^PFUa`3oK4WnXRK+ zhIVY;s2ZP*FT;lt%LqNSxMFdrSR5)Ahe}Tg+#R;A)unrx6_c~l+*~p}Jti8!iUnxX zs<4pPs$h_fTX5r!p}~=%@W|k8!$aYyL5+r2lVGRwNj;PB=+@15jSi^^Ok`5|*>vf& zr^y}D63R@}|Nh&@{xWHyv; zVs9zpX;VK)KUqAv$=0=&l%^AVN+)dV&fpWcG~@j2l5YTCf#PDwj)_={fo^yG7x|6( A-~a#s delta 977 zcmZ`#ZAep57(Va4*WG(}H{WZ`)^erviWMIZi1iJ%WEcjuO&Q)}LlMB-p#63Fb9_g+C00>Fx;CX|toy4fM$TaiX0BA1WzeLx-hy^k(5Fo;(l2w41tNwCe!&m; z7UTF7qj&?mFdPllVI*9+1o%jA<#ON##ws1oJl$hN55XCn#OFAK_pk>qVHj2PL_^y! z;_1F>;;@(CM|^>gv3DRxrnuL_8Hk8hzP!q-)R#L4+bm`0B3mtNhFzUvS33t=*n zTP;k6UA5WkQx)g6m#yo&ezfO8inZ}&JDT*Vea>sqN9QAjZ~B9bZ0{rz))M`-TAaot zzQPf_qsO9n3R|L~?HH+zmlV&EEFy_4$=_7y_9`_^jiSI3n|@FlJtm$d1#W+n;;B)Z z)q%(H&4r>qC}5IcQlB7>Ma8M#N|haqBu`}Y0>uAam`@7F1;0=yxP^Vf&S+?ZA>x|m%B7@~}>=Tr{PsT}y9lCP(<(*6IFQu*hr@Jad&HTf!* diff --git a/QtTinySA.py b/QtTinySA.py index 45d386a..313a4b5 100755 --- a/QtTinySA.py +++ b/QtTinySA.py @@ -82,7 +82,6 @@ def __init__(self): self.fifoTimer.timeout.connect(self.usbSend) self.tinySA4 = None self.maxF = 6000 - self.resBW = ['0.2', '1', '3', '10', '30', '100', '300', '600', '850'] def openPort(self): self.dev = None @@ -140,7 +139,7 @@ def initialise(self): self.tinySA4 = False self.maxF = 960 self.scale = 128 - self.resBW = self.resBW[2:8] # TinySA Basic has fewer resolution bandwidth filters + rbwtext.tm.setFilter('type = "rbw" and value != "0.2" and value != "1" and value != "850"') # fewer RBWs ui.spur_box.setTristate(False) # TinySA Basic has only 'on' and 'off' setting for Spur' ui.spur_box.setChecked(True) # on self.spur() @@ -151,11 +150,7 @@ def initialise(self): ui.lna_box.setEnabled(self.tinySA4) self.lna() - # set the frequency band & rbw comboboxes to suit detected hardware setPreferences() - self.resBW.insert(0, 'auto') - ui.rbw_box.addItems(self.resBW) - ui.rbw_box.setCurrentIndex(len(self.resBW)-4) # show hardware information in GUI ui.battery.setText(self.battery()) @@ -163,6 +158,7 @@ def initialise(self): # connect the rbw & frequency boxes here or it causes startup index errors when they are populated ui.rbw_box.currentIndexChanged.connect(rbwChanged) + ui.rbw_auto.clicked.connect(rbwChanged) ui.start_freq.editingFinished.connect(self.freq_changed) ui.stop_freq.editingFinished.connect(self.freq_changed) ui.centre_freq.valueChanged.connect(lambda: self.freq_changed(True)) # centre/span mode @@ -178,10 +174,15 @@ def restoreSettings(self): ui.graphWidget.setXRange(ui.start_freq.value(), ui.stop_freq.value()) # update trace and marker settings from the database. 1 = last saved (default) settings - S1.dLoad(1) - S2.dLoad(1) - S3.dLoad(1) - S4.dLoad(1) + # S1.dLoad(1) + # S2.dLoad(1) + # S3.dLoad(1) + # S4.dLoad(1) + numbers.tm.select() + S1.vline.setValue(numbers.tm.record(0).value('m1f')) + S2.vline.setValue(numbers.tm.record(0).value('m2f')) + S3.vline.setValue(numbers.tm.record(0).value('m3f')) + S4.vline.setValue(numbers.tm.record(0).value('m4f')) # set each marker to a different colour S1.vline.label.setColor('y') @@ -280,13 +281,14 @@ def freqOffset(self, frequencies): # for mixers or LNBs external to TinySA spanF = frequencies[-1] - startF loF = preferences.freqLO.value() * 1e6 if preferences.highLO.isChecked() and preferences.freqLO != 0: - scanF = (loF - startF, loF - startF + spanF) + scanF = (loF - startF - spanF, loF - startF) else: scanF = (startF - loF, startF - loF + spanF) if min(scanF) <= 0: self.sweeping = False scanF = (88 * 1e6, 108 * 1e6) logging.info('frequency offset error, check preferences') + logging.debug(f'freqOffset(): scanF = {scanF}') return scanF def setRBW(self): # may be called by measurement thread as well as normally @@ -315,12 +317,12 @@ def sweepTimeout(self, frequencies): # freqs are in Hz startF = frequencies[0] stopF = frequencies[-1] points = np.size(frequencies) - if ui.rbw_box.currentIndex() == 0: # rbw is auto + if ui.rbw_auto.isChecked(): # rbw auto setting from tinySA: ~7 kHz per 1 MHz scan frequency span rbw = (stopF - startF) * 7e-6 else: rbw = float(ui.rbw_box.currentText()) - rbw = np.clip(rbw, float(self.resBW[1]), float(self.resBW[-1])) # apply limits + rbw = np.clip(rbw, 0.2, 850) # apply limits # timeout can be very long - use a heuristic approach # 1st summand is the scanning time, 2nd summand is the USB transfer overhead timeout = ((stopF - startF) / 20e3) / (rbw ** 2) + points / 500 @@ -355,8 +357,11 @@ def measurement(self, frequencies, readings): # runs in a separate thread logging.debug(f'dataBlock: {dataBlock}\n') if dataBlock != b'}ch': # logging.debug(f'measurement: index {index} elapsed time = {self.runTimer.nsecsElapsed()/1e6}') - c, data = struct.unpack('<' + 'cH', dataBlock) - logging.debug(f'measurement: dataBlock: {dataBlock} data: {data}\n') + try: + c, data = struct.unpack('<' + 'cH', dataBlock) + except struct.error: + logging.info(f'measurement(): dataBlock: {dataBlock} data: {data}\n') + self.sweeping = False readings[0, index] = (data / 32) - self.scale # scale 0..4095 -> -128..-0.03 dBm if index // 20 == index / 20 or index == (points - 1): # update traces every 20 readings self.signals.result.emit(frequencies, readings) # send readings to sigProcess() @@ -391,6 +396,10 @@ def threadEnds(self): self.fifoTimer.start(500) def sigProcess(self, frequencies, readings): # readings from the worker thread result signal every 20 measurements + if preferences.highLO.isChecked() and preferences.freqLO != 0: + # for LNB/Mixer when LO is above measured freq, the scan is reversed, i.e. low TinySA f = high meas f + frequencies = frequencies[::-1] + np.fliplr(readings) if ui.avgSlider.value() > self.scanCount: # slice using use scanCount to stop default values swamping average readingsAvg = np.average(readings[:self.scanCount, ::], axis=0) else: @@ -441,6 +450,11 @@ def createTimeSpectrum(self, frequencies, readings): self.vGrid.hide() def updateGUI(self, frequencies, readings): # called once per scan by fullSweep signal from measurement() thread + if preferences.highLO.isChecked() and preferences.freqLO != 0: + # for LNB/Mixer when LO is above measured freq, the scan is reversed, i.e. low TinySA f = high meas f + # why is the 3D spectrum still backwards? + frequencies = frequencies[::-1] + np.fliplr(readings) if ui.points_auto.isChecked(): ui.points_box.setValue(np.size(frequencies)) if ui.Enabled3D.isChecked(): @@ -459,8 +473,8 @@ def peakDetect(self, frequencies, readings): # find the signal peak values for setting peak markers Avg = np.average(readings[:ui.avgSlider.value(), ::], axis=0) # calculate a frequency width factor to use to mask readings above and below each peak frequency - if ui.rbw_box.currentText() == 'auto': - fWidth = preferences.rbw_x.value() * float(self.resBW[-1]) * 1e3 + if ui.rbw_auto.isChecked(): + fWidth = preferences.rbw_x.value() * 850 * 1e3 else: fWidth = preferences.rbw_x.value() * float(ui.rbw_box.currentText()) * 1e3 peaks = [np.argmax(Avg)] # the index of the highest peak in the averaged readings array @@ -602,45 +616,45 @@ def mDelta(self): # delta marker locking to reference marker S1 S1.vline.setPen(color='y', width=1.0) # The set of 4 functions below are needed until I understand how to make dataWidgetMapper work with comboboxes - def mData(self, setting, saving=True): - markers.tm.setFilter('display = ' + str(self.name) + ' AND setting = ' + str(setting)) - markers.tm.select() - record = markers.tm.record(0) - if saving: - record.setValue('frequency', float(self.vline.value())) - record.setValue('type', self.markerType) - markers.tm.setRecord(0, record) - else: - self.vline.setValue(record.value('frequency')) - self.markerType = record.value('type') - self.guiRef(1).setCurrentText(self.markerType) - logging.debug(f'marker f = {record.value("frequency")}') - self.vline.label.setMovable(True) - self.mEnable() - self.mType() - - def tData(self, setting, saving=True): - traces.tm.setFilter('display = ' + str(self.name) + ' AND setting = ' + str(setting)) - traces.tm.select() - record = traces.tm.record(0) - if saving: - record.setValue('type', self.traceType) - traces.tm.setRecord(0, record) - else: - self.traceType = record.value('type') - self.guiRef(3).setCurrentText(self.traceType) - S1.hEnable(preferences.neg25Line) - S2.hEnable(preferences.zeroLine) - S3.hEnable(preferences.plus6Line) - - def dSave(self, setting): - self.tData(setting, True) - self.mData(setting, True) # true = saving - - def dLoad(self, setting): - self.mData(setting, False) # false = not saving but loading - self.tData(setting, False) - self.tEnable() + # def mData(self, setting, saving=True): + # markers.tm.setFilter('display = ' + str(self.name) + ' AND setting = ' + str(setting)) + # markers.tm.select() + # record = markers.tm.record(0) + # if saving: + # record.setValue('frequency', float(self.vline.value())) + # record.setValue('type', self.markerType) + # markers.tm.setRecord(0, record) + # else: + # self.vline.setValue(record.value('frequency')) + # self.markerType = record.value('type') + # self.guiRef(1).setCurrentText(self.markerType) + # logging.debug(f'marker f = {record.value("frequency")}') + # self.vline.label.setMovable(True) + # self.mEnable() + # self.mType() + + # def tData(self, setting, saving=True): + # traces.tm.setFilter('display = ' + str(self.name) + ' AND setting = ' + str(setting)) + # traces.tm.select() + # record = traces.tm.record(0) + # if saving: + # record.setValue('type', self.traceType) + # traces.tm.setRecord(0, record) + # else: + # self.traceType = record.value('type') + # self.guiRef(3).setCurrentText(self.traceType) + # S1.hEnable(preferences.neg25Line) + # S2.hEnable(preferences.zeroLine) + # S3.hEnable(preferences.plus6Line) + + # def dSave(self, setting): + # self.tData(setting, True) + # self.mData(setting, True) # true = saving + + # def dLoad(self, setting): + # self.mData(setting, False) # false = not saving but loading + # self.tData(setting, False) + # self.tEnable() # The set of 4 functions above are needed until understand how to make dataWidgetMapper work with comboboxes def guiRef(self, opt): @@ -703,6 +717,12 @@ def updateMarker(self, frequencies, readings, fPeaks): # called by updateGUI() self.vline.label.setText(f'M{self.vline.name()} {chr(916)}{self.deltaF:.3f}MHz {dBm:.1f}dBm') else: self.vline.label.setText(f'M{self.vline.name()} {self.vline.value():.3f}MHz {dBm:.1f}dBm') + # save the marker frequencies to the database numbers table + numbers.tm.select() + record = numbers.tm.record(0) # 0 = default + record.setValue('m' + self.vline.name() + 'f', float(self.vline.value())) + numbers.tm.setRecord(0, record) + numbers.dwm.submit() def addFreqMarker(self, freq, colour, name): # adds simple frequency marker without full marker capability if ui.presetLabel.isChecked(): @@ -837,7 +857,7 @@ def tableClicked(self): self.currentRow = preferences.freqBands.currentIndex().row() # the row index from the QModelIndexObject logging.debug(f'row {self.currentRow} clicked') - def insertData(self, name, typeF, startF, stopF, colour): + def insertData(self, name, typeF, startF, stopF, colour, visible): record = self.tm.record() record.setValue('name', name) record.setValue('startF', f'{startF:.6f}') @@ -855,21 +875,6 @@ def insertData(self, name, typeF, startF, stopF, colour): self.tm.layoutChanged.emit() self.dwm.submit() - # def filterType(self, prefsDialog): - # sql = 'preset = "' + preferences.filterBox.currentText() + '"' - # if prefsDialog: - # if preferences.filterBox.currentText() == 'show all': - # sql = '' - # else: - # sql = 'visible = "1" AND preset = "' + preferences.filterBox.currentText() + '"' - # if preferences.filterBox.currentText() == 'show all': - # sql = 'visible = "1"' - # # if preferences.freqLO.value() != 0: - # # sql = sql + ' AND LO = "1"' - # if tinySA.tinySA4 is False: # It's a tinySA basic with limited frequency range - # sql = sql + ' AND startF <= "960"' - # bands.tm.setFilter(sql) - def filterType(self, prefsDialog, boxText): sql = 'preset = "' + boxText + '"' if prefsDialog: @@ -879,11 +884,10 @@ def filterType(self, prefsDialog, boxText): sql = 'visible = "1" AND preset = "' + boxText + '"' if boxText == 'show all': sql = 'visible = "1"' - # if preferences.freqLO.value() != 0: - # sql = sql + ' AND LO = "1"' if tinySA.tinySA4 is False: # It's a tinySA basic with limited frequency range sql = sql + ' AND startF <= "960"' bands.tm.setFilter(sql) + numbers.dwm.submit() # update the data model with the currently selected filter def readCSV(self, fileName): with open(fileName, "r") as fileInput: @@ -894,9 +898,9 @@ def readCSV(self, fileName): logging.info(f'header = {header}') indx = self.findCols(header) continue - if len(indx) == 7: # (name, preset(=type), startF, stopF, value(=visible), colour, LO) + if len(indx) == 6: # (name, preset(=type), startF, stopF, value(=visible), colour) logging.info(f'row = {row}') - bands.insertData(row[indx[0]], row[indx[1]], float(row[indx[2]]), float(row[indx[3]]), row[indx[5]]) + bands.insertData(row[indx[0]], row[indx[1]], float(row[indx[2]]), float(row[indx[3]]), row[indx[4]], row[indx[5]]) elif len(indx) == 3: bands.insertData(row[indx[0]], 'RF mic', float(row[indx[1]]) / 1e3, 0, row[indx[2]].lower()) logging.debug(f'colour = {row[indx[2]].lower()}') @@ -930,6 +934,13 @@ def findCols(self, header): return return indx + def mapWidget(self, modelName): # maps the widget combo-box fields to the database tables, using the mapping table + maps.tm.setFilter('model = "' + modelName + '"') + for index in range(0, maps.tm.rowCount()): + gui = maps.tm.record(index).value('gui') + column = maps.tm.record(index).value('column') + self.dwm.addMapping(eval(gui), int(column)) + ############################################################################### # respond to GUI signals @@ -948,6 +959,7 @@ def band_changed(): ui.centre_freq.setValue(centreF) ui.span_freq.setValue(1) tinySA.freq_changed(True) # centre mode + numbers.dwm.submit() def addBandPressed(): @@ -976,17 +988,18 @@ def attenuate_changed(): def rbwChanged(): - if ui.rbw_box.currentIndex() == 0: # can't calculate Points because we don't know what the RBW will be - ui.points_auto.setChecked(False) - ui.points_auto.setEnabled(False) + if ui.rbw_auto.isChecked(): # can't calculate Points because we don't know what the RBW will be + ui.rbw_box.setEnabled(False) else: - ui.points_auto.setEnabled(True) + ui.rbw_box.setEnabled(True) + numbers.dwm.submit() tinySA.setRBW() # if measurement thread is running, calling setRBW() will force it to update scan parameters def pointsChanged(): if ui.points_auto.isChecked(): ui.points_box.setEnabled(False) + ui.rbw_box.setEnabled(True) else: ui.points_box.setEnabled(True) tinySA.resume() @@ -1055,10 +1068,10 @@ def about(): def exit_handler(): if tinySA.dev is not None: # save the current displayed marker and trace settings as the default - S1.dSave(1) - S2.dSave(1) - S3.dSave(1) - S4.dSave(1) + # S1.dSave(1) + # S2.dSave(1) + # S3.dSave(1) + # S4.dSave(1) numbers.dwm.submit() checkboxes.dwm.submit() # stop sweeping @@ -1166,8 +1179,10 @@ def isMixerMode(): traces = modelView('trace') tracetext = modelView('combo') markertext = modelView('combo') +rbwtext = modelView('combo') bandstype = modelView('freqtype') colours = modelView('SVGColour') +maps = modelView('mapping') ############################################################################### @@ -1292,6 +1307,8 @@ def isMixerMode(): logging.info(f'{app.applicationName()}{app.applicationVersion()}') # table models - read/write views of the configuration data +maps.createTableModel() +maps.tm.select() bands.createTableModel() # relational bands.tm.setSort(3, QtCore.Qt.AscendingOrder) bands.tm.setHeaderData(5, QtCore.Qt.Horizontal, 'visible') @@ -1309,34 +1326,26 @@ def isMixerMode(): fType = QSqlRelationalDelegate(preferences.freqBands) preferences.freqBands.setItemDelegate(fType) -# bands.tm.setRelation(7, QSqlRelation('boolean', 'ID', 'value')) # set 'mix/LNB' column to a True/False choice combo box -# mixer = QSqlRelationalDelegate(preferences.freqBands) -# preferences.freqBands.setItemDelegate(mixer) - colHeader = preferences.freqBands.horizontalHeader() colHeader.setSectionResizeMode(QtWidgets.QHeaderView.ResizeToContents) -# bandstype.createTableModel() colours.createTableModel() colours.tm.select() -# -# populate the presets combobox +# populate the band presets combo box ui.band_box.setModel(bands.tm) ui.band_box.setModelColumn(1) bands.tm.select() # initially select the data in the model -# populate the preferences filter combo box +# populate the preferences and main GUI filter combo boxes preferences.filterBox.setModel(bandstype.tm) preferences.filterBox.setModelColumn(1) -bandstype.dwm.addMapping(preferences.filterBox, 1) ui.filterBox.setModel(bandstype.tm) ui.filterBox.setModelColumn(1) -bandstype.dwm.addMapping(ui.filterBox, 1) bandstype.tm.select() -# connect the preferences dialogue box freq band widget to the data model +# connect the preferences dialogue box freq band table widget to the data model preferences.freqBands.setModel(bands.tm) preferences.freqBands.hideColumn(0) # ID rowHeader = preferences.freqBands.verticalHeader() @@ -1344,39 +1353,15 @@ def isMixerMode(): # Map database tables to preferences dialogue box fields and to main GUI # ** lines need to be in this order and here or the mapping doesn't work ** checkboxes.createTableModel() -checkboxes.dwm.addMapping(preferences.rbw_x, 3) -checkboxes.dwm.addMapping(preferences.neg25Line, 4) -checkboxes.dwm.addMapping(preferences.zeroLine, 5) -checkboxes.dwm.addMapping(preferences.plus6Line, 6) -checkboxes.dwm.addMapping(ui.trace1, 7) -checkboxes.dwm.addMapping(ui.trace2, 8) -checkboxes.dwm.addMapping(ui.trace3, 9) -checkboxes.dwm.addMapping(ui.trace4, 10) -checkboxes.dwm.addMapping(ui.marker1, 11) -checkboxes.dwm.addMapping(ui.marker2, 12) -checkboxes.dwm.addMapping(ui.marker3, 13) -checkboxes.dwm.addMapping(ui.marker4, 14) -checkboxes.dwm.addMapping(ui.lna_box, 15) -checkboxes.dwm.addMapping(ui.points_auto, 16) -checkboxes.dwm.addMapping(preferences.highLO, 17) -checkboxes.dwm.addMapping(ui.presetMarker, 18) -checkboxes.dwm.addMapping(ui.presetLabel, 19) +checkboxes.mapWidget('checkboxes') checkboxes.tm.select() checkboxes.dwm.setCurrentIndex(0) # 0 = (last used) default settings -# The models for saving number, marker and trace settings -numbers.createTableModel() -numbers.dwm.addMapping(preferences.minPoints, 3) -numbers.dwm.addMapping(preferences.maxPoints, 4) -numbers.dwm.addMapping(ui.start_freq, 5) -numbers.dwm.addMapping(ui.stop_freq, 6) -numbers.dwm.addMapping(preferences.peakThreshold, 7) -numbers.dwm.addMapping(preferences.freqLO, 8) -numbers.tm.select() -numbers.dwm.setCurrentIndex(0) -markers.createTableModel() -traces.createTableModel() -traces.tm.select() +# populate the rbw combobox +rbwtext.createTableModel() +rbwtext.tm.setFilter('type = "rbw"') +ui.rbw_box.setModel(rbwtext.tm) +rbwtext.tm.select() # populate the trace comboboxes tracetext.createTableModel() @@ -1396,6 +1381,15 @@ def isMixerMode(): ui.m4_type.setModel(markertext.tm) markertext.tm.select() +# The models for saving number, marker and trace settings +markers.createTableModel() +traces.createTableModel() +traces.tm.select() +numbers.createTableModel() +numbers.mapWidget('numbers') +numbers.tm.select() +numbers.dwm.setCurrentIndex(0) + # set GUI fields using values from the configuration database tinySA.restoreSettings() diff --git a/QtTinySpectrum.py b/QtTinySpectrum.py index c287149..ef8d8c0 100644 --- a/QtTinySpectrum.py +++ b/QtTinySpectrum.py @@ -102,26 +102,12 @@ def setupUi(self, MainWindow): self.label.setFont(font) self.label.setObjectName("label") self.gridLayout_3.addWidget(self.label, 14, 0, 1, 2) - self.label_3 = QtWidgets.QLabel(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - self.label_3.setFont(font) - self.label_3.setObjectName("label_3") - self.gridLayout_3.addWidget(self.label_3, 5, 0, 1, 1) self.label_6 = QtWidgets.QLabel(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) self.label_6.setFont(font) self.label_6.setObjectName("label_6") self.gridLayout_3.addWidget(self.label_6, 19, 0, 1, 1) - self.points_auto = QtWidgets.QCheckBox(self.analyserTab) - self.points_auto.setEnabled(True) - font = QtGui.QFont() - font.setPointSize(7) - self.points_auto.setFont(font) - self.points_auto.setChecked(True) - self.points_auto.setObjectName("points_auto") - self.gridLayout_3.addWidget(self.points_auto, 6, 0, 1, 1) self.spur_box = QtWidgets.QCheckBox(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) @@ -341,6 +327,24 @@ def setupUi(self, MainWindow): self.mixerMode.setAlignment(QtCore.Qt.AlignCenter) self.mixerMode.setObjectName("mixerMode") self.gridLayout_3.addWidget(self.mixerMode, 17, 0, 1, 1) + self.points_auto = QtWidgets.QCheckBox(self.analyserTab) + self.points_auto.setEnabled(True) + font = QtGui.QFont() + font.setPointSize(7) + self.points_auto.setFont(font) + self.points_auto.setChecked(True) + self.points_auto.setObjectName("points_auto") + self.rbwpointsgroup = QtWidgets.QButtonGroup(MainWindow) + self.rbwpointsgroup.setObjectName("rbwpointsgroup") + self.rbwpointsgroup.addButton(self.points_auto) + self.gridLayout_3.addWidget(self.points_auto, 6, 0, 1, 1) + self.rbw_auto = QtWidgets.QCheckBox(self.analyserTab) + font = QtGui.QFont() + font.setPointSize(7) + self.rbw_auto.setFont(font) + self.rbw_auto.setObjectName("rbw_auto") + self.rbwpointsgroup.addButton(self.rbw_auto) + self.gridLayout_3.addWidget(self.rbw_auto, 5, 0, 1, 1) self.gridLayout.addLayout(self.gridLayout_3, 0, 0, 1, 1) self.gridLayout_2 = QtWidgets.QGridLayout() self.gridLayout_2.setObjectName("gridLayout_2") @@ -964,10 +968,7 @@ def retranslateUi(self, MainWindow): self.atten_auto.setText(_translate("MainWindow", "Auto")) self.trace2.setText(_translate("MainWindow", "T2")) self.label.setText(_translate("MainWindow", "Scan Memory Size")) - self.label_3.setText(_translate("MainWindow", "RBW kHz")) self.label_6.setText(_translate("MainWindow", "Battery:")) - self.points_auto.setToolTip(_translate("MainWindow", "Set points to suit RBW")) - self.points_auto.setText(_translate("MainWindow", "Auto Points")) self.spur_box.setToolTip(_translate("MainWindow", "Spur removal")) self.label_10.setText(_translate("MainWindow", "Trace Settings")) self.atten_box.setSuffix(_translate("MainWindow", "dB")) @@ -982,6 +983,9 @@ def retranslateUi(self, MainWindow): self.battery.setText(_translate("MainWindow", "Battery")) self.rbw_box.setToolTip(_translate("MainWindow", "Resolution bandwidth")) self.mixerMode.setText(_translate("MainWindow", "Mixer/LNB mode")) + self.points_auto.setToolTip(_translate("MainWindow", "Set points to suit RBW")) + self.points_auto.setText(_translate("MainWindow", "Auto Points")) + self.rbw_auto.setText(_translate("MainWindow", "Auto RBW")) self.marker3.setText(_translate("MainWindow", "M3")) self.presetLabel.setToolTip(_translate("MainWindow", "Label preset freqs")) self.presetLabel.setText(_translate("MainWindow", "Labels")) diff --git a/QtTinySpectrum.ui b/QtTinySpectrum.ui index da6c673..437699e 100644 --- a/QtTinySpectrum.ui +++ b/QtTinySpectrum.ui @@ -169,18 +169,6 @@ - - - - - 7 - - - - RBW kHz - - - @@ -193,27 +181,6 @@ - - - - true - - - - 7 - - - - Set points to suit RBW - - - Auto Points - - - true - - - @@ -621,6 +588,45 @@ + + + + true + + + + 7 + + + + Set points to suit RBW + + + Auto Points + + + true + + + rbwpointsgroup + + + + + + + + 7 + + + + Auto RBW + + + rbwpointsgroup + + + @@ -1982,4 +1988,7 @@ true + + + From 47f5897cff9a3fd9d283d4a04ca51e5b0bd118ea Mon Sep 17 00:00:00 2001 From: G4IXT Date: Tue, 26 Mar 2024 22:56:02 +0000 Subject: [PATCH 09/17] v0.10.2 most bugs introduced with changes are fixed slow scan can now be halted by pressing jog button --- QtTSAprefs.db | Bin 126976 -> 126976 bytes QtTinySA.py | 151 ++++--------- QtTinySpectrum.py | 422 +++++++++++++++++------------------- QtTinySpectrum.ui | 542 +++++++++++++++++++++------------------------- nuitka-build.txt | 42 ---- 5 files changed, 490 insertions(+), 667 deletions(-) delete mode 100644 nuitka-build.txt diff --git a/QtTSAprefs.db b/QtTSAprefs.db index 2a9333b6910b9e3c3bb04bb3ab07571b3023c329..617a959388ae59a4c88c13243a75398fcc4b2bea 100644 GIT binary patch delta 2010 zcmd^AZ)_Ar6rZ;{-JPAC*=c)}La*&zi7`aLUW>s9{<#8a1wqbA3zi^U+odgBd-Zxn ziID3m#?k<>P*^ESOcRX~B3ufr2p=FAg5{4@)Nh!|2UG+@h!L$u-R%|QH~GRR-`h8D z-phNx*?BXW*EOPcji_%FVr>+wAd{+i}*^TDrNng$R%1sv)Qn&KK_!~L4C4cYwK*SHxnI(A_t^rYpdqPWAV-e+Q)JS zPcL~a;=nK{*#?r`b#zzqU76(MgyFiN+?|84kg(F0DN=o|nW3I>y$L2Gzb3f^#P9dz zyQI1_+2`{$nrot+u_QWMb5pC;b{s0N3NCA@Y>Bo;lV)e4EEI~E(RB}b!%S}|_lB}? z&H2moeKl3#+L9Zi^Zr~Ju8mCS(~k$j&*5boavS!{csibFjm8$Yv}L}5;r0~AfSTk% zBz_Qw-MXw7wW3Oti9pr`W7N28oG}KC-Nvg%tFgjZV3Zqv1M_Qqm>=bD@hv>gYxo>q z!c}&IU1G=Bdu%I9u;uJ=b|0hqP5o>Agg&5m>uvf{eYPId6?&b1K|iAV=w`Z>M(8Y> zDx{M3y>?MMtaWLowooh8CXnCAH{>*VpKK!uvWz@RN{FKVs1B<~)P6OkHmVEM8LCf3 z%6G~|<%qIZv6Lodu@X`yX8oQuB43ry$%A9OQT|VssFjZ3p6Tz`c#AxVNI9Bo7G60Tnc;T&#v`M#f@dODU;CO{5x$KWr9( zl)Wti(^9OOEo5`qY*x-5U{hED%Vm^F`lxf}h;S|pEoep&%B zY_vmj+G>O`&zY65UlBb>LC9JEJWK#d{9tp7cg!w{pL;F9v*zVg8VKSX+Q#`kQaX&l~)IZ*w2&wsgKWv#ZmNnjD#uaz&KMOIy z_0hIQ=gm)HRE9F!8iGRm;04HrfOGN!gr#CGRw7+2LgJSAR(vIf#0haoye;A)Di(?D zY0EECZiMg7v5ad$G4kg<)fx2AJrOB{nTAmjpBJn*qYd#kgJ3i{&$Y%Q+)VK=6s}_w z;2y$QbdKtpdG(2Sw6P)Dk@S*imJ7hEE1wLuwlpy8VJFOX)9qXdO~xpn$CJ%wf=XUg d21J1OSL4migJ5pcF5(@{@fU;9SZrW*_TS{0+T{QM delta 7352 zcmZ9R3v?7!nt-eNSyg{k7q2Es2c%)v5l}G?0uhnCNJ1blIuF7_A;AWOK(Lb_L_^U@ z5X2`SRe-1%#Zg3&hh~T}3O+ytQG75m<1B}Bbaz;pJ>stJiF4Nd?|)O-?(Q7&b@$iz z-v9ph)_<$XhRfa!m%UF0hKz0z1YuPFKZhWQziz!H!!f$$(4vDm`U(AzZt7k71NwP= zpB_FGEz-B&Q;~KXT+t-wXnFCn@ZuE>O>4u=%3x=zysC9&Lpajx^EgL2s%nc1ni`v0 zBf_()`^fthcUCGI4kGGpg5Gv0x>`4)PBBGDl^qUI6s5uAhNdJXC3*3YnmTmoJ>ezw zt&J_h>DIJ4b#D}vHAI@~?^#^m+!Ac4Uv*D*R$6&eWMzG0Ww?Gt`oOQu+?uoBP9IuR zoLh74ww=wt9T;Hkf%^CFUGq-fnsB6kX_&(sE~{T#cJHdgi^M@A^=$&^)q;LpU#kD0 zU(vtP&*;_qi@K#hq^~^`ounIsy-s0Vd>Fdu6mG0vS>F zB6rAbaztJ(H^}qkkUUe)m#4@X@_2cS9FT{|itLd3r0ddE>56nox*(mAPD;JfVQIhA zE$x=JNn4~){Li82RL}NBKe!~E@)doHkhV2?3wv!nUMH%C*XeM;MYu@(8onle1z!=r zgfEF-z!$^|aDn(ad`|ofJ|muo^Tbc#Q{p)|M?4E>iJ!nH#4~V)_%VD;JPpQadU6U* z5kG>Dh#$g-#1G&D;`{JE@g$rio`4g?_uxI^yYMdYPw*$=aX3zV2i_sR4Q~^Bp_h0J zjuHQ8z#r*J5A+bu!s0GJWbpUyNSDC7o!0?VJE#|fkiaIB<_G6#HZjX;&#|h+y>i-TVX5l zNqCa@1Ux}}93Ce=29FURg-3~xz$3&hu!Zvm`-J_rvIAAkplZO}$s2kX4fTHO6>VJ*FJKip4T z18az_&`NB97Gg6r6C)5I-Us&)SHo&z6EqQ5!7A(Od~r1oXCW-4ckhO~iFd(W#09W` zI3MN{=fOPUT$oF&gF50Im_w|ET4D{<5UZh@SOrzY5QK=cVK%W6j7oY^0Tsk@C?}Rd z8L<>fiL+o9aVE?pmOu${2FxH9Lou-kiim|!NSqGSi3LzV%!hnp9^?^o4alV@Igmq~ z2GfXl!kxsaFqL=*+(DcIQ;4_2?Zj-zCQgRQ#7QuTm<3tHi7=6v37L%EKjRNl*e=jc z6|9SQiMzJ@uKm?2T_{e&8w~5wh2nC^-YxG*Z zSWnkS>6)+4_pR?E-w~hb>-4Sk&G(h~QhW~WKeW%a9_<;eQ(LXoYE$u4lGJ~wU*Z|G zSA9%vR_CfY>WwPEk62TW!wc{*G(ipA0i(gITvNVKjw!}-%0^{{GFzFfj8vTR-{tf2 zoAT3gR9-5V%IWfO=~wBp^dXk>C!`i>t~5>hog{g$c`tZ-ynDP+?-K7UZ<=?g=V#A1 zo_9R^Jexf$JmsEr&oK8d?o00X-7mQxb~m~!+!=1a>wjE-alPw$$+g9GpR3N5!LraOl_esx@SeCRmf*zRa^)H@0tH#?HW-^B05bK((kmuQG# zafUbn(vD=?)&X{6?}lFV0OwSHUAlHs{7E7F;Qh zA=#{pQ!Kn0Jc<-^jwGbgUR>vW+jtmBW<{*YKywQZBFQX|H7vtp?NuqWSEV|iIvc}>8E%$Jg29&_4eM+aA7;2Y zE2atSYlJ=3nf6qRCj<-fDr?Xs+vAkjjc_Be>GP&nmNfWe!I>HnA74L zW#ARn{;55UI};>kr~Q~6%hY%|5wp|&vK`AE@iGGw(7w-ZImMPne=xVBea5!8+m_1= z%uf3ryWi}1nTgkV`%W&0nUk4}nd4-)_zmV|QbHRRODio#9onn}%Z6*RW0{yBaWUGL z+A=di;$pNn@K}0EipANEK=OL369Q&EKeKRpxg+=lw#HbD^Mrhu;DZ>rdf&*2xQur@=xS@Wqs;z87dUxV7!MTT0S{$7>g2RM&kZg${3&U~1L zr;tneH~h--n)0NwPFbMj;Fl7&{O|H7^6TZL&!Ol_hjpYtOlEoAvo*TY`lLXdWcV$t z$wTQXFRGZ~&VA@7%F((J7S`j@^nR!?uQa%LS<{jw?%a*9@=H9$!iszo?WeMPo5R8I zs$lct@T#!e@g_FKip-l<&8-Sn*OZr(7h}`C{K^?-VNu3KVaHlJ7Ws`!d1)JLQ9))~ zw5l>MROoi>_xmj@#XP#oqEh^9G5>6eg>{&pBqi0g!IHuVADm35m;Q|)cW8SW+q7=I< zWbzWF!k=VeN#@OX+__z6?GCXf$D0p%he;MzWM&LmtSk%_uslyqfj)fNii8b5l@QT3Uf-Ef0IRg>~3(&^qLm zRx{JW%`gj#aQ_0~W!n|uv+-M4efi*pY(2Xg>Er7HRzl%T$12gaoEo7_D7@*JC>PUI zQRWzSUU@xBXXDk{O%uv*I@av2D!XYy`Ax?P+r{rru-}C8n}#*CtCVk#fE8PQ4LtPH zuugXIjfG7I>MxHd4Qqbabh~Ln`Ax%`-<502gz}q)rL^l#UJsKkEWdnD7M0Wm({Lu8 zPq1kkLUyu+H8{p$3OXO9S)#%M9HTIIogI{QR9Jpv6z05hJtYnm7T*|!L3Z+zjw&Ng zO~&i5GeQ$UmmcRZE1j$C9@F9!rn7T}9pY`ViY-Iu0z1SBaf(g4+E%x6h5Mf+gsppL z$R6yLxMpn9CH7!=3jF`f*hcFt;;sDFczbtJrRdC~%x9-s<0N4e?ebtjMOm=2G!F|x z=NP_slMQQZY>#ZsI)S$gSU1IQ&I~p;2Vd=E>-Vwk(y?8~&peWVbz^)xlGjP%{`!|V zX#~@8c{;x5y#}n`#o1sw?!Jz{@mK>E9(A$zW9hg;9beilM<+;JqmJ|T#S)B{8JN?K zk624%35GN(!Qw)79JTwsAwl9wb?o4~dYCoRE)+#|`1a%W97ot~3TEV$SJQUy;CI8> z0V_3D8faOMH}M4ySbJ+?mmT*mLnE$ccFUN3YuPY6%vT6#dSQNKKHK zqv#boB1n*!qv*i4RT3oTDEgQFZVgM0w-Z^CF4}`i36kY#V8?qCB+Jof_DnqqlI7@} z-L2b}1qR=sEJ>%SDee{5faUc9H&XNiYC0!iITIwy(FsZeN=JfZIXX_=qQqNKe)aa3 zA(o?F!|qpzwH2WP*0hKA%A9~Xa7wbKC|T2^v}$uwOuUWecS8L~D7r>+*(qjwykng% zqhPZG=7VfR{w0?ufu-o4{v?{i%r`SBwLod?S9uKNVcH!`4v3OT+1Z8 z#p4%gx{>B~+>AZmAK!=__0j&bB4DmbkZc;W?O0k9BwLVj9!rwhV&D8!@hTLZ#RC~^ zHZ$X3_g_q9xEO{*ToW_GlHJcJG z>-i2INV4Bt#WYKa-StGb&PqO2_-s6^(KuRDMp*E`%Z~|QL{Fk5_7GuPKlXVn#47S zq7kvD{eZY>XfoghhW{sLYQJdjL9X(;VyFUqAxS+qyeGcp+WO>cPUv;x=N%c)>v)8A zRm`uhmRr3^sj1?_IW6@Kjp6=34)z0j#-0`%MbGL;xH;U?v-4xI&nZr@qG!Yr*1>b) dAW`jk@0^(H=n)r*-a&2=`@I4GhV@_i{{avGu~Ps5 diff --git a/QtTinySA.py b/QtTinySA.py index 313a4b5..13349f5 100755 --- a/QtTinySA.py +++ b/QtTinySA.py @@ -24,9 +24,9 @@ import platformdirs import csv from platform import system -from PyQt5 import QtWidgets, QtCore, QtGui +from PyQt5 import QtWidgets, QtCore from PyQt5.QtWidgets import QMessageBox, QDataWidgetMapper, QFileDialog -from PyQt5.QtSql import QSqlDatabase, QSqlRelation, QSqlRelationalTableModel, QSqlRelationalDelegate, QSqlQuery +from PyQt5.QtSql import QSqlDatabase, QSqlRelation, QSqlRelationalTableModel, QSqlRelationalDelegate import pyqtgraph import QtTinySpectrum # the GUI import QtTSApreferences # the GUI preferences window @@ -145,13 +145,10 @@ def initialise(self): self.spur() # Basic has no lna - ui.lna_label.setVisible(self.tinySA4) ui.lna_box.setVisible(self.tinySA4) ui.lna_box.setEnabled(self.tinySA4) self.lna() - setPreferences() - # show hardware information in GUI ui.battery.setText(self.battery()) ui.version.setText(hardware[:16]) @@ -174,11 +171,10 @@ def restoreSettings(self): ui.graphWidget.setXRange(ui.start_freq.value(), ui.stop_freq.value()) # update trace and marker settings from the database. 1 = last saved (default) settings - # S1.dLoad(1) - # S2.dLoad(1) - # S3.dLoad(1) - # S4.dLoad(1) - numbers.tm.select() + S1.dLoad(1) + S2.dLoad(1) + S3.dLoad(1) + S4.dLoad(1) S1.vline.setValue(numbers.tm.record(0).value('m1f')) S2.vline.setValue(numbers.tm.record(0).value('m2f')) S3.vline.setValue(numbers.tm.record(0).value('m3f')) @@ -355,13 +351,18 @@ def measurement(self, frequencies, readings): # runs in a separate thread while dataBlock != b'}ch' and index < points: # if '}ch' it's reached the end of the scan points dataBlock = (self.usb.read(3)) # read a block of 3 bytes of data logging.debug(f'dataBlock: {dataBlock}\n') + if dataBlock == b'}ch': + logging.info('jog button pressed') + self.sweeping = False + break if dataBlock != b'}ch': # logging.debug(f'measurement: index {index} elapsed time = {self.runTimer.nsecsElapsed()/1e6}') try: c, data = struct.unpack('<' + 'cH', dataBlock) except struct.error: - logging.info(f'measurement(): dataBlock: {dataBlock} data: {data}\n') + logging.info('data error') self.sweeping = False + break readings[0, index] = (data / 32) - self.scale # scale 0..4095 -> -128..-0.03 dBm if index // 20 == index / 20 or index == (points - 1): # update traces every 20 readings self.signals.result.emit(frequencies, readings) # send readings to sigProcess() @@ -452,7 +453,6 @@ def createTimeSpectrum(self, frequencies, readings): def updateGUI(self, frequencies, readings): # called once per scan by fullSweep signal from measurement() thread if preferences.highLO.isChecked() and preferences.freqLO != 0: # for LNB/Mixer when LO is above measured freq, the scan is reversed, i.e. low TinySA f = high meas f - # why is the 3D spectrum still backwards? frequencies = frequencies[::-1] np.fliplr(readings) if ui.points_auto.isChecked(): @@ -552,10 +552,8 @@ def version(self): def spur(self): sType = ui.spur_box.checkState() - if sType == 1: - ui.spur_box.setText('Auto') - else: - ui.spur_box.setText('') + options = {0: 'Spur removal off', 1: 'Spur removal auto', 2: 'Spur removal on'} + ui.spur_box.setText(options.get(sType)) options = {0: 'spur off\r'.encode(), 1: 'spur auto\r'.encode(), 2: 'spur on\r'.encode()} command = options.get(sType) self.fifo.put(command) @@ -615,47 +613,14 @@ def mDelta(self): # delta marker locking to reference marker S1 self.vline.setValue(S1.vline.value() + self.deltaF) S1.vline.setPen(color='y', width=1.0) - # The set of 4 functions below are needed until I understand how to make dataWidgetMapper work with comboboxes - # def mData(self, setting, saving=True): - # markers.tm.setFilter('display = ' + str(self.name) + ' AND setting = ' + str(setting)) - # markers.tm.select() - # record = markers.tm.record(0) - # if saving: - # record.setValue('frequency', float(self.vline.value())) - # record.setValue('type', self.markerType) - # markers.tm.setRecord(0, record) - # else: - # self.vline.setValue(record.value('frequency')) - # self.markerType = record.value('type') - # self.guiRef(1).setCurrentText(self.markerType) - # logging.debug(f'marker f = {record.value("frequency")}') - # self.vline.label.setMovable(True) - # self.mEnable() - # self.mType() - - # def tData(self, setting, saving=True): - # traces.tm.setFilter('display = ' + str(self.name) + ' AND setting = ' + str(setting)) - # traces.tm.select() - # record = traces.tm.record(0) - # if saving: - # record.setValue('type', self.traceType) - # traces.tm.setRecord(0, record) - # else: - # self.traceType = record.value('type') - # self.guiRef(3).setCurrentText(self.traceType) - # S1.hEnable(preferences.neg25Line) - # S2.hEnable(preferences.zeroLine) - # S3.hEnable(preferences.plus6Line) - - # def dSave(self, setting): - # self.tData(setting, True) - # self.mData(setting, True) # true = saving - - # def dLoad(self, setting): - # self.mData(setting, False) # false = not saving but loading - # self.tData(setting, False) - # self.tEnable() - # The set of 4 functions above are needed until understand how to make dataWidgetMapper work with comboboxes + def dLoad(self, setting): + self.vline.label.setMovable(True) + self.mEnable() + self.mType() + self.tEnable() + S1.hEnable(preferences.neg25Line) + S2.hEnable(preferences.zeroLine) + S3.hEnable(preferences.plus6Line) def guiRef(self, opt): guiFields = ({'1': ui.marker1, '2': ui.marker2, '3': ui.marker3, '4': ui.marker4}, @@ -717,12 +682,6 @@ def updateMarker(self, frequencies, readings, fPeaks): # called by updateGUI() self.vline.label.setText(f'M{self.vline.name()} {chr(916)}{self.deltaF:.3f}MHz {dBm:.1f}dBm') else: self.vline.label.setText(f'M{self.vline.name()} {self.vline.value():.3f}MHz {dBm:.1f}dBm') - # save the marker frequencies to the database numbers table - numbers.tm.select() - record = numbers.tm.record(0) # 0 = default - record.setValue('m' + self.vline.name() + 'f', float(self.vline.value())) - numbers.tm.setRecord(0, record) - numbers.dwm.submit() def addFreqMarker(self, freq, colour, name): # adds simple frequency marker without full marker capability if ui.presetLabel.isChecked(): @@ -830,7 +789,6 @@ def __init__(self, tableName): self.currentRow = 0 def createTableModel(self): - # add exception handling? self.tm.setTable(self.tableName) self.dwm.setModel(self.tm) self.dwm.setSubmitPolicy(QDataWidgetMapper.AutoSubmit) @@ -887,7 +845,6 @@ def filterType(self, prefsDialog, boxText): if tinySA.tinySA4 is False: # It's a tinySA basic with limited frequency range sql = sql + ' AND startF <= "960"' bands.tm.setFilter(sql) - numbers.dwm.submit() # update the data model with the currently selected filter def readCSV(self, fileName): with open(fileName, "r") as fileInput: @@ -947,8 +904,7 @@ def mapWidget(self, modelName): # maps the widget combo-box fields to the datab def band_changed(): index = ui.band_box.currentIndex() - # if bands.tm.record(index).value('preset') == 'band': - if 'band' in bands.tm.record(index).value('preset'): + if bandstype.tm.record(ui.filterBox.currentIndex()).value('type') == 'band': startF = bands.tm.record(index).value('StartF') stopF = bands.tm.record(index).value('StopF') ui.start_freq.setValue(startF) @@ -959,7 +915,7 @@ def band_changed(): ui.centre_freq.setValue(centreF) ui.span_freq.setValue(1) tinySA.freq_changed(True) # centre mode - numbers.dwm.submit() + freqMarkers() def addBandPressed(): @@ -992,7 +948,6 @@ def rbwChanged(): ui.rbw_box.setEnabled(False) else: ui.rbw_box.setEnabled(True) - numbers.dwm.submit() tinySA.setRBW() # if measurement thread is running, calling setRBW() will force it to update scan parameters @@ -1037,13 +992,10 @@ def mkr1_moved(): def setPreferences(): checkboxes.dwm.submit() - numbers.dwm.submit() bands.tm.submitAll() S4.hline.setValue(preferences.peakThreshold.value()) bands.filterType(False, ui.filterBox.currentText()) if ui.presetMarker.isChecked(): - S1.delFreqMarkers() - S2.delFreqMarkers() freqMarkers() isMixerMode() @@ -1067,14 +1019,8 @@ def about(): def exit_handler(): if tinySA.dev is not None: - # save the current displayed marker and trace settings as the default - # S1.dSave(1) - # S2.dSave(1) - # S3.dSave(1) - # S4.dSave(1) numbers.dwm.submit() checkboxes.dwm.submit() - # stop sweeping if tinySA.sweeping: tinySA.sweeping = False # tell the measurement thread to stop while tinySA.threadRunning: @@ -1095,6 +1041,8 @@ def popUp(message, button, icon): def freqMarkers(): + S1.delFreqMarkers() + S2.delFreqMarkers() if ui.presetMarker.isChecked(): for i in range(0, bands.tm.rowCount()): startF = bands.tm.record(i).value('StartF') @@ -1102,16 +1050,11 @@ def freqMarkers(): name = bands.tm.record(i).value('name') S1.addFreqMarker(startF, colour, name) stopF = bands.tm.record(i).value('StopF') - if bands.tm.record(i).value('preset') == 'band': + if bandstype.tm.record(ui.filterBox.currentIndex()).value('type') == 'band': S2.addFreqMarker(stopF, colour, '') - else: - S1.delFreqMarkers() - S2.delFreqMarkers() def freqMarkerLabel(): - S1.delFreqMarkers() - S2.delFreqMarkers() freqMarkers() @@ -1130,26 +1073,27 @@ def importData(): def isMixerMode(): - if preferences.freqLO.value() == 0: - ui.mixerMode.setVisible(False) - ui.start_freq.setStyleSheet('background-color:None') - ui.stop_freq.setStyleSheet('background-color:None') - ui.centre_freq.setStyleSheet('background-color:None') - ui.start_freq.setMaximum(tinySA.maxF) - ui.centre_freq.setMaximum(tinySA.maxF) - ui.stop_freq.setMaximum(tinySA.maxF) - else: - ui.mixerMode.setVisible(True) - ui.start_freq.setStyleSheet('background-color:lightGreen') - ui.stop_freq.setStyleSheet('background-color:lightGreen') - ui.centre_freq.setStyleSheet('background-color:lightGreen') - ui.start_freq.setMaximum(100000) - ui.centre_freq.setMaximum(100000) - ui.stop_freq.setMaximum(100000) + if preferences.freqLO.value() == 0: + ui.mixerMode.setVisible(False) + ui.start_freq.setStyleSheet('background-color:None') + ui.stop_freq.setStyleSheet('background-color:None') + ui.centre_freq.setStyleSheet('background-color:None') + ui.start_freq.setMaximum(tinySA.maxF) + ui.centre_freq.setMaximum(tinySA.maxF) + ui.stop_freq.setMaximum(tinySA.maxF) + else: + ui.mixerMode.setVisible(True) + ui.start_freq.setStyleSheet('background-color:lightGreen') + ui.stop_freq.setStyleSheet('background-color:lightGreen') + ui.centre_freq.setStyleSheet('background-color:lightGreen') + ui.start_freq.setMaximum(100000) + ui.centre_freq.setMaximum(100000) + ui.stop_freq.setMaximum(100000) ############################################################################### # Instantiate classes + tinySA = analyser() app = QtWidgets.QApplication([]) # create QApplication for the GUI @@ -1350,10 +1294,9 @@ def isMixerMode(): preferences.freqBands.hideColumn(0) # ID rowHeader = preferences.freqBands.verticalHeader() -# Map database tables to preferences dialogue box fields and to main GUI -# ** lines need to be in this order and here or the mapping doesn't work ** +# Map database tables to preferences/GUI fields * lines need to be in this order and here or the mapping doesn't work * checkboxes.createTableModel() -checkboxes.mapWidget('checkboxes') +checkboxes.mapWidget('checkboxes') # uses mapping table from database checkboxes.tm.select() checkboxes.dwm.setCurrentIndex(0) # 0 = (last used) default settings @@ -1386,7 +1329,7 @@ def isMixerMode(): traces.createTableModel() traces.tm.select() numbers.createTableModel() -numbers.mapWidget('numbers') +numbers.mapWidget('numbers') # uses mapping table from database numbers.tm.select() numbers.dwm.setCurrentIndex(0) diff --git a/QtTinySpectrum.py b/QtTinySpectrum.py index ef8d8c0..e422f47 100644 --- a/QtTinySpectrum.py +++ b/QtTinySpectrum.py @@ -45,161 +45,60 @@ def setupUi(self, MainWindow): self.gridLayout.setObjectName("gridLayout") self.gridLayout_3 = QtWidgets.QGridLayout() self.gridLayout_3.setObjectName("gridLayout_3") - self.memSlider = QtWidgets.QSlider(self.analyserTab) - self.memSlider.setMinimum(1) - self.memSlider.setMaximum(200) - self.memSlider.setProperty("value", 50) - self.memSlider.setOrientation(QtCore.Qt.Horizontal) - self.memSlider.setTickPosition(QtWidgets.QSlider.TicksAbove) - self.memSlider.setObjectName("memSlider") - self.gridLayout_3.addWidget(self.memSlider, 15, 0, 1, 2) - self.label_7 = QtWidgets.QLabel(self.analyserTab) + self.trace4 = QtWidgets.QCheckBox(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) font.setBold(True) font.setWeight(75) - self.label_7.setFont(font) - self.label_7.setObjectName("label_7") - self.gridLayout_3.addWidget(self.label_7, 3, 0, 1, 1) - self.label_2 = QtWidgets.QLabel(self.analyserTab) + self.trace4.setFont(font) + self.trace4.setObjectName("trace4") + self.gridLayout_3.addWidget(self.trace4, 10, 0, 1, 1) + self.label_6 = QtWidgets.QLabel(self.analyserTab) + font = QtGui.QFont() + font.setPointSize(7) + self.label_6.setFont(font) + self.label_6.setObjectName("label_6") + self.gridLayout_3.addWidget(self.label_6, 18, 0, 1, 1) + self.label_8 = QtWidgets.QLabel(self.analyserTab) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth()) - self.label_2.setSizePolicy(sizePolicy) + sizePolicy.setHeightForWidth(self.label_8.sizePolicy().hasHeightForWidth()) + self.label_8.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setPointSize(7) font.setBold(True) font.setUnderline(False) font.setWeight(75) - self.label_2.setFont(font) - self.label_2.setObjectName("label_2") - self.gridLayout_3.addWidget(self.label_2, 4, 0, 1, 2) - spacerItem = QtWidgets.QSpacerItem(17, 13, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) - self.gridLayout_3.addItem(spacerItem, 16, 0, 1, 1) - self.atten_auto = QtWidgets.QCheckBox(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - self.atten_auto.setFont(font) - self.atten_auto.setChecked(True) - self.atten_auto.setObjectName("atten_auto") - self.gridLayout_3.addWidget(self.atten_auto, 1, 0, 1, 1) - self.trace2 = QtWidgets.QCheckBox(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - font.setBold(True) - font.setWeight(75) - self.trace2.setFont(font) - self.trace2.setTristate(False) - self.trace2.setObjectName("trace2") - self.gridLayout_3.addWidget(self.trace2, 9, 0, 1, 1) - self.label = QtWidgets.QLabel(self.analyserTab) + self.label_8.setFont(font) + self.label_8.setObjectName("label_8") + self.gridLayout_3.addWidget(self.label_8, 11, 0, 1, 2) + self.label_10 = QtWidgets.QLabel(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) font.setBold(True) font.setUnderline(False) font.setWeight(75) - self.label.setFont(font) - self.label.setObjectName("label") - self.gridLayout_3.addWidget(self.label, 14, 0, 1, 2) - self.label_6 = QtWidgets.QLabel(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - self.label_6.setFont(font) - self.label_6.setObjectName("label_6") - self.gridLayout_3.addWidget(self.label_6, 19, 0, 1, 1) + self.label_10.setFont(font) + self.label_10.setObjectName("label_10") + self.gridLayout_3.addWidget(self.label_10, 6, 0, 1, 2) self.spur_box = QtWidgets.QCheckBox(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) self.spur_box.setFont(font) - self.spur_box.setText("") self.spur_box.setChecked(True) self.spur_box.setTristate(True) self.spur_box.setObjectName("spur_box") - self.gridLayout_3.addWidget(self.spur_box, 3, 1, 1, 1) - self.label_10 = QtWidgets.QLabel(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - font.setBold(True) - font.setUnderline(False) - font.setWeight(75) - self.label_10.setFont(font) - self.label_10.setObjectName("label_10") - self.gridLayout_3.addWidget(self.label_10, 7, 0, 1, 2) - self.atten_box = QtWidgets.QSpinBox(self.analyserTab) - self.atten_box.setEnabled(False) - font = QtGui.QFont() - font.setPointSize(7) - self.atten_box.setFont(font) - self.atten_box.setReadOnly(False) - self.atten_box.setMinimum(0) - self.atten_box.setMaximum(31) - self.atten_box.setProperty("value", 0) - self.atten_box.setObjectName("atten_box") - self.gridLayout_3.addWidget(self.atten_box, 1, 1, 1, 1) - self.t2_type = QtWidgets.QComboBox(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.t2_type.sizePolicy().hasHeightForWidth()) - self.t2_type.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(7) - self.t2_type.setFont(font) - self.t2_type.setObjectName("t2_type") - self.gridLayout_3.addWidget(self.t2_type, 9, 1, 1, 1) - self.label_5 = QtWidgets.QLabel(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_5.sizePolicy().hasHeightForWidth()) - self.label_5.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(7) - font.setBold(True) - font.setUnderline(False) - font.setWeight(75) - self.label_5.setFont(font) - self.label_5.setObjectName("label_5") - self.gridLayout_3.addWidget(self.label_5, 0, 0, 1, 2) - self.trace1 = QtWidgets.QCheckBox(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - font.setBold(True) - font.setWeight(75) - self.trace1.setFont(font) - self.trace1.setChecked(True) - self.trace1.setTristate(False) - self.trace1.setObjectName("trace1") - self.gridLayout_3.addWidget(self.trace1, 8, 0, 1, 1) - self.lna_label = QtWidgets.QLabel(self.analyserTab) + self.gridLayout_3.addWidget(self.spur_box, 2, 0, 1, 1) + self.trace2 = QtWidgets.QCheckBox(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) font.setBold(True) font.setWeight(75) - self.lna_label.setFont(font) - self.lna_label.setObjectName("lna_label") - self.gridLayout_3.addWidget(self.lna_label, 2, 0, 1, 1) - self.avgSlider = QtWidgets.QSlider(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.avgSlider.sizePolicy().hasHeightForWidth()) - self.avgSlider.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(7) - self.avgSlider.setFont(font) - self.avgSlider.setToolTip("") - self.avgSlider.setMinimum(1) - self.avgSlider.setMaximum(101) - self.avgSlider.setProperty("value", 10) - self.avgSlider.setOrientation(QtCore.Qt.Horizontal) - self.avgSlider.setInvertedAppearance(False) - self.avgSlider.setInvertedControls(False) - self.avgSlider.setTickPosition(QtWidgets.QSlider.TicksAbove) - self.avgSlider.setTickInterval(10) - self.avgSlider.setObjectName("avgSlider") - self.gridLayout_3.addWidget(self.avgSlider, 13, 0, 1, 2) + self.trace2.setFont(font) + self.trace2.setTristate(False) + self.trace2.setObjectName("trace2") + self.gridLayout_3.addWidget(self.trace2, 8, 0, 1, 1) self.points_box = QtWidgets.QSpinBox(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) @@ -211,67 +110,51 @@ def setupUi(self, MainWindow): self.points_box.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) self.points_box.setProperty("value", 400) self.points_box.setObjectName("points_box") - self.gridLayout_3.addWidget(self.points_box, 6, 1, 1, 1) - self.lna_box = QtWidgets.QCheckBox(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - self.lna_box.setFont(font) - self.lna_box.setText("") - self.lna_box.setObjectName("lna_box") - self.gridLayout_3.addWidget(self.lna_box, 2, 1, 1, 1) - self.trace4 = QtWidgets.QCheckBox(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - font.setBold(True) - font.setWeight(75) - self.trace4.setFont(font) - self.trace4.setObjectName("trace4") - self.gridLayout_3.addWidget(self.trace4, 11, 0, 1, 1) - self.trace3 = QtWidgets.QCheckBox(self.analyserTab) + self.gridLayout_3.addWidget(self.points_box, 5, 1, 1, 1) + self.rbw_box = QtWidgets.QComboBox(self.analyserTab) + self.rbw_box.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.rbw_box.sizePolicy().hasHeightForWidth()) + self.rbw_box.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setPointSize(7) - font.setBold(True) - font.setWeight(75) - self.trace3.setFont(font) - self.trace3.setObjectName("trace3") - self.gridLayout_3.addWidget(self.trace3, 10, 0, 1, 1) + self.rbw_box.setFont(font) + self.rbw_box.setEditable(True) + self.rbw_box.setObjectName("rbw_box") + self.gridLayout_3.addWidget(self.rbw_box, 4, 1, 1, 1) self.version = QtWidgets.QLabel(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) self.version.setFont(font) self.version.setObjectName("version") - self.gridLayout_3.addWidget(self.version, 18, 0, 1, 2) - self.label_8 = QtWidgets.QLabel(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + self.gridLayout_3.addWidget(self.version, 17, 0, 1, 2) + self.t2_type = QtWidgets.QComboBox(self.analyserTab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_8.sizePolicy().hasHeightForWidth()) - self.label_8.setSizePolicy(sizePolicy) + sizePolicy.setHeightForWidth(self.t2_type.sizePolicy().hasHeightForWidth()) + self.t2_type.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setPointSize(7) - font.setBold(True) - font.setUnderline(False) - font.setWeight(75) - self.label_8.setFont(font) - self.label_8.setObjectName("label_8") - self.gridLayout_3.addWidget(self.label_8, 12, 0, 1, 2) - self.t3_type = QtWidgets.QComboBox(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + self.t2_type.setFont(font) + self.t2_type.setObjectName("t2_type") + self.gridLayout_3.addWidget(self.t2_type, 8, 1, 1, 1) + self.label_2 = QtWidgets.QLabel(self.analyserTab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.t3_type.sizePolicy().hasHeightForWidth()) - self.t3_type.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(7) - self.t3_type.setFont(font) - self.t3_type.setObjectName("t3_type") - self.gridLayout_3.addWidget(self.t3_type, 10, 1, 1, 1) - self.battery = QtWidgets.QLabel(self.analyserTab) + sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth()) + self.label_2.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setPointSize(7) - self.battery.setFont(font) - self.battery.setObjectName("battery") - self.gridLayout_3.addWidget(self.battery, 19, 1, 1, 1) + font.setBold(True) + font.setUnderline(False) + font.setWeight(75) + self.label_2.setFont(font) + self.label_2.setObjectName("label_2") + self.gridLayout_3.addWidget(self.label_2, 3, 0, 1, 2) self.t4_type = QtWidgets.QComboBox(self.analyserTab) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) @@ -282,32 +165,18 @@ def setupUi(self, MainWindow): font.setPointSize(7) self.t4_type.setFont(font) self.t4_type.setObjectName("t4_type") - self.gridLayout_3.addWidget(self.t4_type, 11, 1, 1, 1) - self.rbw_box = QtWidgets.QComboBox(self.analyserTab) - self.rbw_box.setEnabled(True) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.rbw_box.sizePolicy().hasHeightForWidth()) - self.rbw_box.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(7) - self.rbw_box.setFont(font) - self.rbw_box.setEditable(True) - self.rbw_box.setObjectName("rbw_box") - self.gridLayout_3.addWidget(self.rbw_box, 5, 1, 1, 1) - self.t1_type = QtWidgets.QComboBox(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.t1_type.sizePolicy().hasHeightForWidth()) - self.t1_type.setSizePolicy(sizePolicy) + self.gridLayout_3.addWidget(self.t4_type, 10, 1, 1, 1) + self.points_auto = QtWidgets.QCheckBox(self.analyserTab) + self.points_auto.setEnabled(True) font = QtGui.QFont() font.setPointSize(7) - self.t1_type.setFont(font) - self.t1_type.setModelColumn(0) - self.t1_type.setObjectName("t1_type") - self.gridLayout_3.addWidget(self.t1_type, 8, 1, 1, 1) + self.points_auto.setFont(font) + self.points_auto.setChecked(True) + self.points_auto.setObjectName("points_auto") + self.rbwpointsgroup = QtWidgets.QButtonGroup(MainWindow) + self.rbwpointsgroup.setObjectName("rbwpointsgroup") + self.rbwpointsgroup.addButton(self.points_auto) + self.gridLayout_3.addWidget(self.points_auto, 5, 0, 1, 1) self.mixerMode = QtWidgets.QLabel(self.analyserTab) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) @@ -326,25 +195,124 @@ def setupUi(self, MainWindow): self.mixerMode.setScaledContents(False) self.mixerMode.setAlignment(QtCore.Qt.AlignCenter) self.mixerMode.setObjectName("mixerMode") - self.gridLayout_3.addWidget(self.mixerMode, 17, 0, 1, 1) - self.points_auto = QtWidgets.QCheckBox(self.analyserTab) - self.points_auto.setEnabled(True) + self.gridLayout_3.addWidget(self.mixerMode, 16, 0, 1, 1) + self.atten_auto = QtWidgets.QCheckBox(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) - self.points_auto.setFont(font) - self.points_auto.setChecked(True) - self.points_auto.setObjectName("points_auto") - self.rbwpointsgroup = QtWidgets.QButtonGroup(MainWindow) - self.rbwpointsgroup.setObjectName("rbwpointsgroup") - self.rbwpointsgroup.addButton(self.points_auto) - self.gridLayout_3.addWidget(self.points_auto, 6, 0, 1, 1) + self.atten_auto.setFont(font) + self.atten_auto.setChecked(True) + self.atten_auto.setObjectName("atten_auto") + self.gridLayout_3.addWidget(self.atten_auto, 0, 0, 1, 1) + self.battery = QtWidgets.QLabel(self.analyserTab) + font = QtGui.QFont() + font.setPointSize(7) + self.battery.setFont(font) + self.battery.setObjectName("battery") + self.gridLayout_3.addWidget(self.battery, 18, 1, 1, 1) + self.t1_type = QtWidgets.QComboBox(self.analyserTab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.t1_type.sizePolicy().hasHeightForWidth()) + self.t1_type.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setPointSize(7) + self.t1_type.setFont(font) + self.t1_type.setModelColumn(0) + self.t1_type.setObjectName("t1_type") + self.gridLayout_3.addWidget(self.t1_type, 7, 1, 1, 1) + self.atten_box = QtWidgets.QSpinBox(self.analyserTab) + self.atten_box.setEnabled(False) + font = QtGui.QFont() + font.setPointSize(7) + self.atten_box.setFont(font) + self.atten_box.setReadOnly(False) + self.atten_box.setMinimum(0) + self.atten_box.setMaximum(31) + self.atten_box.setProperty("value", 0) + self.atten_box.setObjectName("atten_box") + self.gridLayout_3.addWidget(self.atten_box, 0, 1, 1, 1) + self.lna_box = QtWidgets.QCheckBox(self.analyserTab) + font = QtGui.QFont() + font.setPointSize(7) + self.lna_box.setFont(font) + self.lna_box.setObjectName("lna_box") + self.gridLayout_3.addWidget(self.lna_box, 1, 0, 1, 1) + self.trace1 = QtWidgets.QCheckBox(self.analyserTab) + font = QtGui.QFont() + font.setPointSize(7) + font.setBold(True) + font.setWeight(75) + self.trace1.setFont(font) + self.trace1.setChecked(True) + self.trace1.setTristate(False) + self.trace1.setObjectName("trace1") + self.gridLayout_3.addWidget(self.trace1, 7, 0, 1, 1) + self.avgSlider = QtWidgets.QSlider(self.analyserTab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.avgSlider.sizePolicy().hasHeightForWidth()) + self.avgSlider.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setPointSize(7) + self.avgSlider.setFont(font) + self.avgSlider.setToolTip("") + self.avgSlider.setMinimum(1) + self.avgSlider.setMaximum(101) + self.avgSlider.setProperty("value", 10) + self.avgSlider.setOrientation(QtCore.Qt.Horizontal) + self.avgSlider.setInvertedAppearance(False) + self.avgSlider.setInvertedControls(False) + self.avgSlider.setTickPosition(QtWidgets.QSlider.TicksAbove) + self.avgSlider.setTickInterval(10) + self.avgSlider.setObjectName("avgSlider") + self.gridLayout_3.addWidget(self.avgSlider, 12, 0, 1, 2) self.rbw_auto = QtWidgets.QCheckBox(self.analyserTab) font = QtGui.QFont() font.setPointSize(7) self.rbw_auto.setFont(font) self.rbw_auto.setObjectName("rbw_auto") self.rbwpointsgroup.addButton(self.rbw_auto) - self.gridLayout_3.addWidget(self.rbw_auto, 5, 0, 1, 1) + self.gridLayout_3.addWidget(self.rbw_auto, 4, 0, 1, 1) + self.t3_type = QtWidgets.QComboBox(self.analyserTab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.t3_type.sizePolicy().hasHeightForWidth()) + self.t3_type.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setPointSize(7) + self.t3_type.setFont(font) + self.t3_type.setObjectName("t3_type") + self.gridLayout_3.addWidget(self.t3_type, 9, 1, 1, 1) + spacerItem = QtWidgets.QSpacerItem(17, 13, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_3.addItem(spacerItem, 15, 0, 1, 1) + self.memSlider = QtWidgets.QSlider(self.analyserTab) + self.memSlider.setMinimum(1) + self.memSlider.setMaximum(200) + self.memSlider.setProperty("value", 50) + self.memSlider.setOrientation(QtCore.Qt.Horizontal) + self.memSlider.setTickPosition(QtWidgets.QSlider.TicksAbove) + self.memSlider.setObjectName("memSlider") + self.gridLayout_3.addWidget(self.memSlider, 14, 0, 1, 2) + self.trace3 = QtWidgets.QCheckBox(self.analyserTab) + font = QtGui.QFont() + font.setPointSize(7) + font.setBold(True) + font.setWeight(75) + self.trace3.setFont(font) + self.trace3.setObjectName("trace3") + self.gridLayout_3.addWidget(self.trace3, 9, 0, 1, 1) + self.label = QtWidgets.QLabel(self.analyserTab) + font = QtGui.QFont() + font.setPointSize(7) + font.setBold(True) + font.setUnderline(False) + font.setWeight(75) + self.label.setFont(font) + self.label.setObjectName("label") + self.gridLayout_3.addWidget(self.label, 13, 0, 1, 2) self.gridLayout.addLayout(self.gridLayout_3, 0, 0, 1, 1) self.gridLayout_2 = QtWidgets.QGridLayout() self.gridLayout_2.setObjectName("gridLayout_2") @@ -507,7 +475,6 @@ def setupUi(self, MainWindow): self.band_box.setEditable(False) self.band_box.setCurrentText("") self.band_box.setInsertPolicy(QtWidgets.QComboBox.InsertAtBottom) - self.band_box.setModelColumn(1) self.band_box.setObjectName("band_box") self.gridLayout_2.addWidget(self.band_box, 2, 1, 1, 1) self.label_9 = QtWidgets.QLabel(self.analyserTab) @@ -962,30 +929,31 @@ def setupUi(self, MainWindow): def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate - self.memSlider.setToolTip(_translate("MainWindow", "Sweep scan store size")) - self.label_7.setText(_translate("MainWindow", "Spur")) - self.label_2.setText(_translate("MainWindow", "Resolution BW & Scan Points")) - self.atten_auto.setText(_translate("MainWindow", "Auto")) - self.trace2.setText(_translate("MainWindow", "T2")) - self.label.setText(_translate("MainWindow", "Scan Memory Size")) - self.label_6.setText(_translate("MainWindow", "Battery:")) - self.spur_box.setToolTip(_translate("MainWindow", "Spur removal")) - self.label_10.setText(_translate("MainWindow", "Trace Settings")) - self.atten_box.setSuffix(_translate("MainWindow", "dB")) - self.label_5.setText(_translate("MainWindow", " Attenuator")) - self.trace1.setText(_translate("MainWindow", "T1")) - self.lna_label.setText(_translate("MainWindow", "LNA")) - self.lna_box.setToolTip(_translate("MainWindow", "Enable Low Noise Amplifier")) self.trace4.setText(_translate("MainWindow", "T4")) - self.trace3.setText(_translate("MainWindow", "T3")) - self.version.setText(_translate("MainWindow", "Not Connected")) + self.label_6.setText(_translate("MainWindow", "Battery:")) self.label_8.setText(_translate("MainWindow", "Trace Averaging 1 - 101")) - self.battery.setText(_translate("MainWindow", "Battery")) + self.label_10.setText(_translate("MainWindow", "Trace Settings")) + self.spur_box.setToolTip(_translate("MainWindow", "Spur reduction - impacts scanning speed")) + self.spur_box.setText(_translate("MainWindow", "Spur reduction")) + self.trace2.setText(_translate("MainWindow", "T2")) self.rbw_box.setToolTip(_translate("MainWindow", "Resolution bandwidth")) - self.mixerMode.setText(_translate("MainWindow", "Mixer/LNB mode")) + self.version.setText(_translate("MainWindow", "Not Connected")) + self.label_2.setToolTip(_translate("MainWindow", "Spur reduction techniques. Impacts scanning speed")) + self.label_2.setText(_translate("MainWindow", "Resolution BW & Scan Points")) self.points_auto.setToolTip(_translate("MainWindow", "Set points to suit RBW")) self.points_auto.setText(_translate("MainWindow", "Auto Points")) + self.mixerMode.setText(_translate("MainWindow", "Mixer/LNB mode")) + self.atten_auto.setToolTip(_translate("MainWindow", "Enable auto attenuator")) + self.atten_auto.setText(_translate("MainWindow", "Auto attenuator")) + self.battery.setText(_translate("MainWindow", "Battery")) + self.atten_box.setSuffix(_translate("MainWindow", "dB")) + self.lna_box.setToolTip(_translate("MainWindow", "Enable Low Noise Amplifier")) + self.lna_box.setText(_translate("MainWindow", "LNA on")) + self.trace1.setText(_translate("MainWindow", "T1")) self.rbw_auto.setText(_translate("MainWindow", "Auto RBW")) + self.memSlider.setToolTip(_translate("MainWindow", "Sweep scan store size")) + self.trace3.setText(_translate("MainWindow", "T3")) + self.label.setText(_translate("MainWindow", "Scan Memory Size")) self.marker3.setText(_translate("MainWindow", "M3")) self.presetLabel.setToolTip(_translate("MainWindow", "Label preset freqs")) self.presetLabel.setText(_translate("MainWindow", "Labels")) diff --git a/QtTinySpectrum.ui b/QtTinySpectrum.ui index 437699e..8577e7d 100644 --- a/QtTinySpectrum.ui +++ b/QtTinySpectrum.ui @@ -52,44 +52,34 @@ - - - - Sweep scan store size - - - 1 - - - 200 - - - 50 - - - Qt::Horizontal + + + + + 7 + 75 + true + - - QSlider::TicksAbove + + T4 - - + + 7 - 75 - true - Spur + Battery: - - + + 0 @@ -105,39 +95,47 @@ - Resolution BW & Scan Points + Trace Averaging 1 - 101 - - - - Qt::Vertical + + + + + 7 + 75 + true + false + - - - 17 - 13 - + + Trace Settings - + - - + + 7 + + Spur reduction - impacts scanning speed + - Auto + Spur reduction true + + true + - + @@ -154,97 +152,70 @@ - - + + 7 - 75 - true - false - - Scan Memory Size + + - - - - - - - 7 - + + 1 - - Battery: + + 30000 - - - - - - - 7 - + + 100 - - Spur removal + + QAbstractSpinBox::AdaptiveDecimalStepType - - + + 400 - + + + + + true - - true + + + 0 + 0 + - - - - 7 - 75 - true - false - - Trace Settings + + Resolution bandwidth + + + true - - - - false - + + 7 - - false - - - dB - - - 0 - - - 31 - - - 0 + + Not Connected - + @@ -259,8 +230,8 @@ - - + + 0 @@ -275,192 +246,210 @@ false + + Spur reduction techniques. Impacts scanning speed + - Attenuator + Resolution BW & Scan Points - - + + + + + 0 + 0 + + 7 - 75 - true - - T1 - - - true - - - false - - - + + + + true + 7 - 75 - true + + Set points to suit RBW + - LNA + Auto Points + + + true + + rbwpointsgroup + - - + + - + 0 0 + + + 0 + 0 + + 7 - - + + false - - 1 + + background-color:lightGreen - - 101 + + QFrame::NoFrame - - 10 + + QFrame::Plain - - Qt::Horizontal + + 0 - - false + + Mixer/LNB mode - + false - - QSlider::TicksAbove - - - 10 + + Qt::AlignCenter - - + + 7 - - - - - 1 - - - 30000 - - - 100 + + Enable auto attenuator - - QAbstractSpinBox::AdaptiveDecimalStepType + + Auto attenuator - - 400 + + true - - + + 7 - - Enable Low Noise Amplifier - - + Battery - - + + + + + 0 + 0 + + 7 - 75 - true - - T4 + + 0 - - + + + + false + 7 - 75 - true - - T3 + + false + + + dB + + + 0 + + + 31 + + + 0 - - + + 7 + + Enable Low Noise Amplifier + - Not Connected + LNA on - - - - - 0 - 0 - - + + 7 75 true - false - Trace Averaging 1 - 101 + T1 + + + true + + + false - - + + 0 @@ -472,159 +461,127 @@ 7 - - - - - - - 7 - + + - - Battery + + 1 - - - - - - - 0 - 0 - + + 101 - - - 7 - + + 10 - - - - - - true + + Qt::Horizontal - - - 0 - 0 - + + false - - - 7 - + + false - - Resolution bandwidth + + QSlider::TicksAbove - - true + + 10 - - - - - 0 - 0 - - + + 7 - - 0 + + Auto RBW + + rbwpointsgroup + - - + + - + 0 0 - - - 0 - 0 - - 7 - - false + + + + + + Qt::Vertical - - background-color:lightGreen + + + 17 + 13 + - - QFrame::NoFrame + + + + + + Sweep scan store size - - QFrame::Plain + + 1 - - 0 + + 200 - - Mixer/LNB mode + + 50 - - false + + Qt::Horizontal - - Qt::AlignCenter + + QSlider::TicksAbove - - - - true - + + 7 + 75 + true - - Set points to suit RBW - - Auto Points - - - true + T3 - - rbwpointsgroup - - - + + 7 + 75 + true + false - Auto RBW + Scan Memory Size - - rbwpointsgroup - @@ -1004,9 +961,6 @@ QComboBox::InsertAtBottom - - 1 - diff --git a/nuitka-build.txt b/nuitka-build.txt deleted file mode 100644 index 2a379c1..0000000 --- a/nuitka-build.txt +++ /dev/null @@ -1,42 +0,0 @@ -(base) ian@Study:~$ source tinySA/bin/activate -(tinySA) (base) ian@Study:~$ cd Documents/GitHub/QtTinySA -(tinySA) (base) ian@Study:~/Documents/GitHub/QtTinySA$ python -m nuitka --standalone QtTinySA.py -Nuitka-Options: Used command line options: --standalone QtTinySA.py -Nuitka: Starting Python compilation with Nuitka '2.1' on Python '3.11' commercial grade 'not installed'. -Nuitka-Plugins:WARNING: Use '--enable-plugin=pyqt5' for: Inclusion of Qt plugins. -Nuitka-Plugins:WARNING: anti-bloat: Undesirable import of 'pytest' in 'bottleneck._pytesttester' (at -Nuitka-Plugins:WARNING: '/home/ian/anaconda3/lib/python3.11/site-packages/bottleneck/_pytesttester.py:34') encountered. It may slow down compilation. -Nuitka-Plugins:WARNING: Complex topic! More information can be found at https://nuitka.net/info/unwanted-module.html -Nuitka-Plugins:anti-bloat: Not including '_bisect' automatically in order to avoid bloat, but this may cause: may slow down by using fallback -Nuitka-Plugins:anti-bloat: implementation. -Nuitka-Plugins:anti-bloat: Not including '_json' automatically in order to avoid bloat, but this may cause: may slow down by using fallback implementation. -Nuitka-Plugins:anti-bloat: Not including 'PIL.ImageQt' automatically in order to avoid bloat, but this may cause: PIL will not be able to create Qt image -Nuitka-Plugins:anti-bloat: objects. -Nuitka-Plugins:matplotlib: Using configuration file or default backend 'QtAgg'. -Nuitka: Completed Python level compilation and optimization. -Nuitka: Generating source code for C backend compiler. -Nuitka: Running data composer tool for optimal constant value handling. -Nuitka: Running C compilation via Scons. -Nuitka-Scons: Backend C compiler: gcc (gcc 11). -Nuitka-Scons: Backend linking program with 1126 files (no progress information available for this stage). -Nuitka-Scons: Compiled 1125 C files using ccache. -Nuitka-Scons: Cached C files (using ccache) with result 'cache miss': 1125 -Nuitka-Plugins:data-files: Included data file 'PyQt5/Qt5/.keep_dir.txt' due to empty dir needed for 'PyQt5'. -Nuitka-Plugins:data-files: Included data file 'PyQt5/Qt/.keep_dir.txt' due to empty dir needed for 'PyQt5'. -Nuitka-Plugins:data-files: Included data file 'certifi/cacert.pem' due to package data for 'certifi'. -Nuitka-Plugins:matplotlib: Included 182 data files due to package data for 'matplotlib. -Nuitka-Plugins:matplotlib: Included data file 'matplotlib/mpl-data/matplotlibrc' due to updated matplotlib config file with backend to use. -Nuitka-Plugins:data-files: Included 72 data files due to package data directory 'colors' for 'pyqtgraph'. -Nuitka-Plugins:data-files: Included data file 'pyqtgraph/icons/auto.png' due to package data directory 'icons' for 'pyqtgraph'. -Nuitka-Plugins:data-files: Included data file 'pyqtgraph/icons/ctrl.png' due to package data directory 'icons' for 'pyqtgraph'. -Nuitka-Plugins:data-files: Included data file 'pyqtgraph/icons/default.png' due to package data directory 'icons' for 'pyqtgraph'. -Nuitka-Plugins:data-files: Included data file 'pyqtgraph/icons/icons.svg' due to package data directory 'icons' for 'pyqtgraph'. -Nuitka-Plugins:data-files: Included data file 'pyqtgraph/icons/invisibleEye.svg' due to package data directory 'icons' for 'pyqtgraph'. -Nuitka-Plugins:data-files: Included data file 'pyqtgraph/icons/lock.png' due to package data directory 'icons' for 'pyqtgraph'. -Nuitka-Plugins:data-files: Included data file 'scipy/stats/_sobol_direction_numbers.npz' due to package data for 'scipy'. -Nuitka-Plugins:dll-files: Found 1 file DLLs from kiwisolver installation. -Nuitka-Plugins:WARNING: dll-files: DLL configuration by filename code for 'numpy' did not give a result. Either conditions are missing, or this version of -Nuitka-Plugins:WARNING: the module needs treatment added. -Nuitka: Keeping build directory 'QtTinySA.build'. -Nuitka: Successfully created 'QtTinySA.dist/QtTinySA.bin'. -(tinySA) (base) ian@Study:~/Documents/GitHub/QtTinySA$ From b5fc3816f068d5660744bd94ced76c7f7aceb161 Mon Sep 17 00:00:00 2001 From: G4IXT Date: Wed, 27 Mar 2024 11:07:03 +0000 Subject: [PATCH 10/17] v0.10.2 minor fix fix trace type not setting --- QtTinySA.py | 1 + 1 file changed, 1 insertion(+) diff --git a/QtTinySA.py b/QtTinySA.py index 13349f5..b1c4c37 100755 --- a/QtTinySA.py +++ b/QtTinySA.py @@ -617,6 +617,7 @@ def dLoad(self, setting): self.vline.label.setMovable(True) self.mEnable() self.mType() + self.tType() self.tEnable() S1.hEnable(preferences.neg25Line) S2.hEnable(preferences.zeroLine) From 99b9334ae36af70c38e7a149cdabde36b1838198 Mon Sep 17 00:00:00 2001 From: G4IXT Date: Thu, 28 Mar 2024 15:23:06 +0000 Subject: [PATCH 11/17] v0.10.2 tweaks Made control area smaller to give more room for spectrum on small screens. Normal and 3D screens are now stackedWidgets, selected using a button next to 'Run' instead of on Tabs --- QtTSAprefs.db | Bin 126976 -> 126976 bytes QtTinySA.py | 15 +- QtTinySpectrum.py | 1373 +++++++++++++++-------------- QtTinySpectrum.ui | 1743 ++++++++++++++++++------------------ QtTinySpectrum_old.ui | 1948 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 3554 insertions(+), 1525 deletions(-) create mode 100644 QtTinySpectrum_old.ui diff --git a/QtTSAprefs.db b/QtTSAprefs.db index 617a959388ae59a4c88c13243a75398fcc4b2bea..9b36de7a9a6c4929b2430846f9867a566dc9d290 100644 GIT binary patch delta 767 zcmYjOZ%9*76o2Qv?cKd?&$~Hs&XH3`RQPAp1=$~HN-BLwD>SGN>6AHUx@_ngDM_e|!{WDZT+ z&D#vaI4F!18irxTXtf8nQ{D3zs@|B)ZgC2a;VfRqFYz3fQ%VcwFrJ&~Z+Am+`f2;X zMZHKn0p}Q;OPft!@bNMzX6yn8I-QO}*n=Ply>g!v@rOBDp0_*~QCKJn)3ERjKUw27 zAqIz1ii|sFXt-ayAcUTV4E z3kIa#9w`*|xZQ1m;IQOBC;P+F%tqGD@5SlgS>CHcH|#o8Q#XJq?uGJ|a)5FbCV?|? zPD6~KX=r8*v6OPfaLDe|IL#H2!P?MBB-rH(+^To?49Go0RLLQA{TX;QHAV|#=64uu zz+3o5!CP^+;DPbG_}Mrvr1g#Zuy99UbtAe)ekbp0?E+lWX!K!iRZ0o4D<7Z*)QR_S z8pv7(PLT8~SXX~#U>@jRm>W^0PaR)``yA&KM+sVjI#wK28wbg#=t8%W-g# zKMANKU-Rlw9FCHSIEdtC0^H7gHj$jxrLY#P`u1ZH`m zOnVSl%PAtPNYjYe>w=dQ!G&PkA6TQH9`!Lu=q;!Ro7?)$d~?1zbLPxp&cG@^u*#2m z9g7H|8cHiAhY-W2>O-)ow@+el%-J1&Wdh&BeYlLXcnYh!7QrmWQ{$bjeh@NGTD#f| zumf*bSbATkbW>KFzMpt(*}`cEYr3Z53y-M3f`^;7A3Vq_G87k)p0`VT}HF@PK9OltIF$ zAz&O$!!ac_>NEzIppV%lFCZ)5$>1WMP<|`Ra#(sV-L)e53*RY7N=j)_T68VV*#wCh zuXK&7VO_h=kYE{JGV+44RDvX9G|oT+a7qMuQjJxXef1Xi2@mn*pc;2ad*f>FAs0E5gWa}ZN0-_WzjEW2dUI>YY5IcTnqC3l EKNyn4`v3p{ diff --git a/QtTinySA.py b/QtTinySA.py index b1c4c37..8dc1752 100755 --- a/QtTinySA.py +++ b/QtTinySA.py @@ -72,7 +72,7 @@ def __init__(self): self.runTimer = QtCore.QElapsedTimer() # debug self.scale = 174 self.scanMemory = 50 - self.scan3D = False + #self.scan3D = False self.surface = None self.vGrid = None self.usbCheck = QtCore.QTimer() @@ -134,7 +134,7 @@ def initialise(self): self.maxF = 6000 self.scale = 174 ui.spur_box.setTristate(True) # TinySA Ultra has 'auto', 'on' and 'off' setting for Spur - ui.spur_box.setCheckState(QtCore.Qt.PartiallyChecked) # auto + ui.spur_box.setCheckState(checkboxes.tm.record(0).value("spur")) else: self.tinySA4 = False self.maxF = 960 @@ -151,7 +151,7 @@ def initialise(self): # show hardware information in GUI ui.battery.setText(self.battery()) - ui.version.setText(hardware[:16]) + ui.version.setText(hardware[8:16]) # connect the rbw & frequency boxes here or it causes startup index errors when they are populated ui.rbw_box.currentIndexChanged.connect(rbwChanged) @@ -193,7 +193,7 @@ def restoreSettings(self): setPreferences() def scan(self): # called by 'run' button - self.scan3D = ui.Enabled3D.isChecked() + # self.scan3D = ui.Enabled3D.isChecked() if self.usb is not None: if self.sweeping: # if it's running, stop it self.sweeping = False # tells the measurement thread to stop once current scan complete @@ -457,7 +457,8 @@ def updateGUI(self, frequencies, readings): # called once per scan by fullSweep np.fliplr(readings) if ui.points_auto.isChecked(): ui.points_box.setValue(np.size(frequencies)) - if ui.Enabled3D.isChecked(): + #if ui.Enabled3D.isChecked(): + if ui.stackedWidget.currentWidget() == ui.View3D: z = readings + 120 # Surface plot height shader needs positive numbers so convert from dBm to dBf logging.debug(f'z = {z}') self.surface.setData(z=z) # update 3D graph @@ -552,7 +553,7 @@ def version(self): def spur(self): sType = ui.spur_box.checkState() - options = {0: 'Spur removal off', 1: 'Spur removal auto', 2: 'Spur removal on'} + options = {0: 'Spur Off', 1: 'Spur Auto', 2: 'Spur On'} ui.spur_box.setText(options.get(sType)) options = {0: 'spur off\r'.encode(), 1: 'spur auto\r'.encode(), 2: 'spur on\r'.encode()} command = options.get(sType) @@ -1229,6 +1230,8 @@ def isMixerMode(): ui.gridR.clicked.connect(lambda: tinySA.grid(-1)) ui.zoom.sliderMoved.connect(tinySA.zoom3D) ui.reset3D.clicked.connect(tinySA.reset3D) +ui.timeSpectrum.clicked.connect(lambda: ui.stackedWidget.setCurrentWidget(ui.View3D)) +ui.analyser.clicked.connect(lambda: ui.stackedWidget.setCurrentWidget(ui.ViewNormal)) # preferences preferences.neg25Line.stateChanged.connect(lambda: S1.hEnable(preferences.neg25Line)) diff --git a/QtTinySpectrum.py b/QtTinySpectrum.py index e422f47..68b4b46 100644 --- a/QtTinySpectrum.py +++ b/QtTinySpectrum.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Form implementation generated from reading ui file 'QtTinySpectrum.ui' +# Form implementation generated from reading ui file 'QtTinySpectrum_small.ui' # # Created by: PyQt5 UI code generator 5.15.10 # @@ -14,148 +14,81 @@ class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") - MainWindow.resize(1000, 600) + MainWindow.resize(1000, 603) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) MainWindow.setSizePolicy(sizePolicy) + MainWindow.setIconSize(QtCore.QSize(25, 25)) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.gridLayout_5 = QtWidgets.QGridLayout(self.centralwidget) self.gridLayout_5.setObjectName("gridLayout_5") - self.tabWidget = QtWidgets.QTabWidget(self.centralwidget) + self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.tabWidget.sizePolicy().hasHeightForWidth()) - self.tabWidget.setSizePolicy(sizePolicy) - self.tabWidget.setAutoFillBackground(False) - self.tabWidget.setTabPosition(QtWidgets.QTabWidget.North) - self.tabWidget.setTabShape(QtWidgets.QTabWidget.Rounded) - self.tabWidget.setObjectName("tabWidget") - self.analyserTab = QtWidgets.QWidget() - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.analyserTab.sizePolicy().hasHeightForWidth()) - self.analyserTab.setSizePolicy(sizePolicy) - self.analyserTab.setObjectName("analyserTab") - self.gridLayout = QtWidgets.QGridLayout(self.analyserTab) + sizePolicy.setHeightForWidth(self.stackedWidget.sizePolicy().hasHeightForWidth()) + self.stackedWidget.setSizePolicy(sizePolicy) + self.stackedWidget.setAutoFillBackground(False) + self.stackedWidget.setObjectName("stackedWidget") + self.ViewNormal = QtWidgets.QWidget() + self.ViewNormal.setObjectName("ViewNormal") + self.gridLayout = QtWidgets.QGridLayout(self.ViewNormal) self.gridLayout.setObjectName("gridLayout") self.gridLayout_3 = QtWidgets.QGridLayout() self.gridLayout_3.setObjectName("gridLayout_3") - self.trace4 = QtWidgets.QCheckBox(self.analyserTab) + spacerItem = QtWidgets.QSpacerItem(17, 13, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_3.addItem(spacerItem, 22, 0, 1, 1) + self.atten_auto = QtWidgets.QCheckBox(self.ViewNormal) font = QtGui.QFont() font.setPointSize(7) font.setBold(True) font.setWeight(75) - self.trace4.setFont(font) - self.trace4.setObjectName("trace4") - self.gridLayout_3.addWidget(self.trace4, 10, 0, 1, 1) - self.label_6 = QtWidgets.QLabel(self.analyserTab) + self.atten_auto.setFont(font) + self.atten_auto.setChecked(True) + self.atten_auto.setObjectName("atten_auto") + self.gridLayout_3.addWidget(self.atten_auto, 3, 0, 1, 1) + self.t2_type = QtWidgets.QComboBox(self.ViewNormal) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.t2_type.sizePolicy().hasHeightForWidth()) + self.t2_type.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setPointSize(7) - self.label_6.setFont(font) - self.label_6.setObjectName("label_6") - self.gridLayout_3.addWidget(self.label_6, 18, 0, 1, 1) - self.label_8 = QtWidgets.QLabel(self.analyserTab) + self.t2_type.setFont(font) + self.t2_type.setObjectName("t2_type") + self.gridLayout_3.addWidget(self.t2_type, 15, 0, 1, 1) + self.version = QtWidgets.QLabel(self.ViewNormal) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_8.sizePolicy().hasHeightForWidth()) - self.label_8.setSizePolicy(sizePolicy) + sizePolicy.setHeightForWidth(self.version.sizePolicy().hasHeightForWidth()) + self.version.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setPointSize(7) - font.setBold(True) - font.setUnderline(False) - font.setWeight(75) - self.label_8.setFont(font) - self.label_8.setObjectName("label_8") - self.gridLayout_3.addWidget(self.label_8, 11, 0, 1, 2) - self.label_10 = QtWidgets.QLabel(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - font.setBold(True) - font.setUnderline(False) - font.setWeight(75) - self.label_10.setFont(font) - self.label_10.setObjectName("label_10") - self.gridLayout_3.addWidget(self.label_10, 6, 0, 1, 2) - self.spur_box = QtWidgets.QCheckBox(self.analyserTab) + self.version.setFont(font) + self.version.setObjectName("version") + self.gridLayout_3.addWidget(self.version, 24, 0, 1, 1) + self.spur_box = QtWidgets.QCheckBox(self.ViewNormal) font = QtGui.QFont() font.setPointSize(7) self.spur_box.setFont(font) self.spur_box.setChecked(True) self.spur_box.setTristate(True) self.spur_box.setObjectName("spur_box") - self.gridLayout_3.addWidget(self.spur_box, 2, 0, 1, 1) - self.trace2 = QtWidgets.QCheckBox(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - font.setBold(True) - font.setWeight(75) - self.trace2.setFont(font) - self.trace2.setTristate(False) - self.trace2.setObjectName("trace2") - self.gridLayout_3.addWidget(self.trace2, 8, 0, 1, 1) - self.points_box = QtWidgets.QSpinBox(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - self.points_box.setFont(font) - self.points_box.setSuffix("") - self.points_box.setMinimum(1) - self.points_box.setMaximum(30000) - self.points_box.setSingleStep(100) - self.points_box.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) - self.points_box.setProperty("value", 400) - self.points_box.setObjectName("points_box") - self.gridLayout_3.addWidget(self.points_box, 5, 1, 1, 1) - self.rbw_box = QtWidgets.QComboBox(self.analyserTab) - self.rbw_box.setEnabled(True) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.rbw_box.sizePolicy().hasHeightForWidth()) - self.rbw_box.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(7) - self.rbw_box.setFont(font) - self.rbw_box.setEditable(True) - self.rbw_box.setObjectName("rbw_box") - self.gridLayout_3.addWidget(self.rbw_box, 4, 1, 1, 1) - self.version = QtWidgets.QLabel(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - self.version.setFont(font) - self.version.setObjectName("version") - self.gridLayout_3.addWidget(self.version, 17, 0, 1, 2) - self.t2_type = QtWidgets.QComboBox(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.t2_type.sizePolicy().hasHeightForWidth()) - self.t2_type.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(7) - self.t2_type.setFont(font) - self.t2_type.setObjectName("t2_type") - self.gridLayout_3.addWidget(self.t2_type, 8, 1, 1, 1) - self.label_2 = QtWidgets.QLabel(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth()) - self.label_2.setSizePolicy(sizePolicy) + self.gridLayout_3.addWidget(self.spur_box, 1, 0, 1, 1) + self.trace4 = QtWidgets.QCheckBox(self.ViewNormal) font = QtGui.QFont() font.setPointSize(7) font.setBold(True) - font.setUnderline(False) font.setWeight(75) - self.label_2.setFont(font) - self.label_2.setObjectName("label_2") - self.gridLayout_3.addWidget(self.label_2, 3, 0, 1, 2) - self.t4_type = QtWidgets.QComboBox(self.analyserTab) + self.trace4.setFont(font) + self.trace4.setObjectName("trace4") + self.gridLayout_3.addWidget(self.trace4, 18, 0, 1, 1) + self.t4_type = QtWidgets.QComboBox(self.ViewNormal) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -165,20 +98,20 @@ def setupUi(self, MainWindow): font.setPointSize(7) self.t4_type.setFont(font) self.t4_type.setObjectName("t4_type") - self.gridLayout_3.addWidget(self.t4_type, 10, 1, 1, 1) - self.points_auto = QtWidgets.QCheckBox(self.analyserTab) - self.points_auto.setEnabled(True) + self.gridLayout_3.addWidget(self.t4_type, 19, 0, 1, 1) + self.atten_box = QtWidgets.QSpinBox(self.ViewNormal) + self.atten_box.setEnabled(False) font = QtGui.QFont() font.setPointSize(7) - self.points_auto.setFont(font) - self.points_auto.setChecked(True) - self.points_auto.setObjectName("points_auto") - self.rbwpointsgroup = QtWidgets.QButtonGroup(MainWindow) - self.rbwpointsgroup.setObjectName("rbwpointsgroup") - self.rbwpointsgroup.addButton(self.points_auto) - self.gridLayout_3.addWidget(self.points_auto, 5, 0, 1, 1) - self.mixerMode = QtWidgets.QLabel(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) + self.atten_box.setFont(font) + self.atten_box.setReadOnly(False) + self.atten_box.setMinimum(0) + self.atten_box.setMaximum(31) + self.atten_box.setProperty("value", 0) + self.atten_box.setObjectName("atten_box") + self.gridLayout_3.addWidget(self.atten_box, 4, 0, 1, 1) + self.mixerMode = QtWidgets.QLabel(self.ViewNormal) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.mixerMode.sizePolicy().hasHeightForWidth()) @@ -195,50 +128,16 @@ def setupUi(self, MainWindow): self.mixerMode.setScaledContents(False) self.mixerMode.setAlignment(QtCore.Qt.AlignCenter) self.mixerMode.setObjectName("mixerMode") - self.gridLayout_3.addWidget(self.mixerMode, 16, 0, 1, 1) - self.atten_auto = QtWidgets.QCheckBox(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - self.atten_auto.setFont(font) - self.atten_auto.setChecked(True) - self.atten_auto.setObjectName("atten_auto") - self.gridLayout_3.addWidget(self.atten_auto, 0, 0, 1, 1) - self.battery = QtWidgets.QLabel(self.analyserTab) - font = QtGui.QFont() - font.setPointSize(7) - self.battery.setFont(font) - self.battery.setObjectName("battery") - self.gridLayout_3.addWidget(self.battery, 18, 1, 1, 1) - self.t1_type = QtWidgets.QComboBox(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.t1_type.sizePolicy().hasHeightForWidth()) - self.t1_type.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setPointSize(7) - self.t1_type.setFont(font) - self.t1_type.setModelColumn(0) - self.t1_type.setObjectName("t1_type") - self.gridLayout_3.addWidget(self.t1_type, 7, 1, 1, 1) - self.atten_box = QtWidgets.QSpinBox(self.analyserTab) - self.atten_box.setEnabled(False) - font = QtGui.QFont() - font.setPointSize(7) - self.atten_box.setFont(font) - self.atten_box.setReadOnly(False) - self.atten_box.setMinimum(0) - self.atten_box.setMaximum(31) - self.atten_box.setProperty("value", 0) - self.atten_box.setObjectName("atten_box") - self.gridLayout_3.addWidget(self.atten_box, 0, 1, 1, 1) - self.lna_box = QtWidgets.QCheckBox(self.analyserTab) + self.gridLayout_3.addWidget(self.mixerMode, 23, 0, 1, 1) + self.lna_box = QtWidgets.QCheckBox(self.ViewNormal) font = QtGui.QFont() font.setPointSize(7) + font.setBold(False) + font.setWeight(50) self.lna_box.setFont(font) self.lna_box.setObjectName("lna_box") - self.gridLayout_3.addWidget(self.lna_box, 1, 0, 1, 1) - self.trace1 = QtWidgets.QCheckBox(self.analyserTab) + self.gridLayout_3.addWidget(self.lna_box, 0, 0, 1, 1) + self.trace1 = QtWidgets.QCheckBox(self.ViewNormal) font = QtGui.QFont() font.setPointSize(7) font.setBold(True) @@ -247,35 +146,27 @@ def setupUi(self, MainWindow): self.trace1.setChecked(True) self.trace1.setTristate(False) self.trace1.setObjectName("trace1") - self.gridLayout_3.addWidget(self.trace1, 7, 0, 1, 1) - self.avgSlider = QtWidgets.QSlider(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.avgSlider.sizePolicy().hasHeightForWidth()) - self.avgSlider.setSizePolicy(sizePolicy) + self.gridLayout_3.addWidget(self.trace1, 11, 0, 1, 1) + self.trace3 = QtWidgets.QCheckBox(self.ViewNormal) font = QtGui.QFont() font.setPointSize(7) - self.avgSlider.setFont(font) - self.avgSlider.setToolTip("") - self.avgSlider.setMinimum(1) - self.avgSlider.setMaximum(101) - self.avgSlider.setProperty("value", 10) - self.avgSlider.setOrientation(QtCore.Qt.Horizontal) - self.avgSlider.setInvertedAppearance(False) - self.avgSlider.setInvertedControls(False) - self.avgSlider.setTickPosition(QtWidgets.QSlider.TicksAbove) - self.avgSlider.setTickInterval(10) - self.avgSlider.setObjectName("avgSlider") - self.gridLayout_3.addWidget(self.avgSlider, 12, 0, 1, 2) - self.rbw_auto = QtWidgets.QCheckBox(self.analyserTab) + font.setBold(True) + font.setWeight(75) + self.trace3.setFont(font) + self.trace3.setObjectName("trace3") + self.gridLayout_3.addWidget(self.trace3, 16, 0, 1, 1) + self.battery = QtWidgets.QLabel(self.ViewNormal) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.battery.sizePolicy().hasHeightForWidth()) + self.battery.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setPointSize(7) - self.rbw_auto.setFont(font) - self.rbw_auto.setObjectName("rbw_auto") - self.rbwpointsgroup.addButton(self.rbw_auto) - self.gridLayout_3.addWidget(self.rbw_auto, 4, 0, 1, 1) - self.t3_type = QtWidgets.QComboBox(self.analyserTab) + self.battery.setFont(font) + self.battery.setObjectName("battery") + self.gridLayout_3.addWidget(self.battery, 25, 0, 1, 1) + self.t3_type = QtWidgets.QComboBox(self.ViewNormal) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -285,122 +176,99 @@ def setupUi(self, MainWindow): font.setPointSize(7) self.t3_type.setFont(font) self.t3_type.setObjectName("t3_type") - self.gridLayout_3.addWidget(self.t3_type, 9, 1, 1, 1) - spacerItem = QtWidgets.QSpacerItem(17, 13, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) - self.gridLayout_3.addItem(spacerItem, 15, 0, 1, 1) - self.memSlider = QtWidgets.QSlider(self.analyserTab) - self.memSlider.setMinimum(1) - self.memSlider.setMaximum(200) - self.memSlider.setProperty("value", 50) - self.memSlider.setOrientation(QtCore.Qt.Horizontal) - self.memSlider.setTickPosition(QtWidgets.QSlider.TicksAbove) - self.memSlider.setObjectName("memSlider") - self.gridLayout_3.addWidget(self.memSlider, 14, 0, 1, 2) - self.trace3 = QtWidgets.QCheckBox(self.analyserTab) + self.gridLayout_3.addWidget(self.t3_type, 17, 0, 1, 1) + self.t1_type = QtWidgets.QComboBox(self.ViewNormal) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.t1_type.sizePolicy().hasHeightForWidth()) + self.t1_type.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setPointSize(7) + self.t1_type.setFont(font) + self.t1_type.setModelColumn(0) + self.t1_type.setObjectName("t1_type") + self.gridLayout_3.addWidget(self.t1_type, 12, 0, 1, 1) + self.points_auto = QtWidgets.QCheckBox(self.ViewNormal) + self.points_auto.setEnabled(True) font = QtGui.QFont() font.setPointSize(7) font.setBold(True) font.setWeight(75) - self.trace3.setFont(font) - self.trace3.setObjectName("trace3") - self.gridLayout_3.addWidget(self.trace3, 9, 0, 1, 1) - self.label = QtWidgets.QLabel(self.analyserTab) + self.points_auto.setFont(font) + self.points_auto.setChecked(True) + self.points_auto.setObjectName("points_auto") + self.rbwpointsgroup = QtWidgets.QButtonGroup(MainWindow) + self.rbwpointsgroup.setObjectName("rbwpointsgroup") + self.rbwpointsgroup.addButton(self.points_auto) + self.gridLayout_3.addWidget(self.points_auto, 9, 0, 1, 1) + self.trace2 = QtWidgets.QCheckBox(self.ViewNormal) font = QtGui.QFont() font.setPointSize(7) font.setBold(True) - font.setUnderline(False) font.setWeight(75) - self.label.setFont(font) - self.label.setObjectName("label") - self.gridLayout_3.addWidget(self.label, 13, 0, 1, 2) - self.gridLayout.addLayout(self.gridLayout_3, 0, 0, 1, 1) - self.gridLayout_2 = QtWidgets.QGridLayout() - self.gridLayout_2.setObjectName("gridLayout_2") - self.marker3 = QtWidgets.QCheckBox(self.analyserTab) - self.marker3.setObjectName("marker3") - self.gridLayout_2.addWidget(self.marker3, 2, 6, 1, 1) - self.presetLabel = QtWidgets.QCheckBox(self.analyserTab) - self.presetLabel.setObjectName("presetLabel") - self.gridLayout_2.addWidget(self.presetLabel, 3, 8, 1, 1) - self.centre_freq = QtWidgets.QDoubleSpinBox(self.analyserTab) - self.centre_freq.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.centre_freq.setButtonSymbols(QtWidgets.QAbstractSpinBox.PlusMinus) - self.centre_freq.setCorrectionMode(QtWidgets.QAbstractSpinBox.CorrectToNearestValue) - self.centre_freq.setPrefix("") - self.centre_freq.setSuffix("") - self.centre_freq.setDecimals(3) - self.centre_freq.setMinimum(0.1) - self.centre_freq.setMaximum(6000.0) - self.centre_freq.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) - self.centre_freq.setProperty("value", 98.0) - self.centre_freq.setObjectName("centre_freq") - self.gridLayout_2.addWidget(self.centre_freq, 3, 2, 1, 1) - self.marker1 = QtWidgets.QCheckBox(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.marker1.sizePolicy().hasHeightForWidth()) - self.marker1.setSizePolicy(sizePolicy) - self.marker1.setObjectName("marker1") - self.gridLayout_2.addWidget(self.marker1, 2, 4, 1, 1) - self.m2_type = QtWidgets.QComboBox(self.analyserTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.m2_type.sizePolicy().hasHeightForWidth()) - self.m2_type.setSizePolicy(sizePolicy) - self.m2_type.setMaximumSize(QtCore.QSize(55, 16777215)) + self.trace2.setFont(font) + self.trace2.setTristate(False) + self.trace2.setObjectName("trace2") + self.gridLayout_3.addWidget(self.trace2, 14, 0, 1, 1) + self.points_box = QtWidgets.QSpinBox(self.ViewNormal) font = QtGui.QFont() font.setPointSize(7) - self.m2_type.setFont(font) - self.m2_type.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContentsOnFirstShow) - self.m2_type.setMinimumContentsLength(0) - self.m2_type.setIconSize(QtCore.QSize(16, 16)) - self.m2_type.setPlaceholderText("") - self.m2_type.setObjectName("m2_type") - self.gridLayout_2.addWidget(self.m2_type, 3, 5, 1, 1) - self.span_freq = QtWidgets.QDoubleSpinBox(self.analyserTab) - self.span_freq.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.span_freq.setButtonSymbols(QtWidgets.QAbstractSpinBox.PlusMinus) - self.span_freq.setCorrectionMode(QtWidgets.QAbstractSpinBox.CorrectToNearestValue) - self.span_freq.setPrefix("") - self.span_freq.setSuffix("") - self.span_freq.setDecimals(3) - self.span_freq.setMaximum(100000.0) - self.span_freq.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) - self.span_freq.setProperty("value", 20.0) - self.span_freq.setObjectName("span_freq") - self.gridLayout_2.addWidget(self.span_freq, 3, 9, 1, 1) - self.marker2 = QtWidgets.QCheckBox(self.analyserTab) - self.marker2.setAutoFillBackground(False) - self.marker2.setObjectName("marker2") - self.gridLayout_2.addWidget(self.marker2, 2, 5, 1, 1) - self.presetMarker = QtWidgets.QCheckBox(self.analyserTab) - self.presetMarker.setObjectName("presetMarker") - self.gridLayout_2.addWidget(self.presetMarker, 2, 8, 1, 1) - self.scan_button = QtWidgets.QPushButton(self.analyserTab) + self.points_box.setFont(font) + self.points_box.setSuffix("") + self.points_box.setMinimum(1) + self.points_box.setMaximum(30000) + self.points_box.setSingleStep(100) + self.points_box.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) + self.points_box.setProperty("value", 400) + self.points_box.setObjectName("points_box") + self.gridLayout_3.addWidget(self.points_box, 10, 0, 1, 1) + self.rbw_box = QtWidgets.QComboBox(self.ViewNormal) + self.rbw_box.setEnabled(True) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.scan_button.sizePolicy().hasHeightForWidth()) - self.scan_button.setSizePolicy(sizePolicy) - self.scan_button.setToolTip("") - self.scan_button.setCheckable(False) - self.scan_button.setObjectName("scan_button") - self.gridLayout_2.addWidget(self.scan_button, 2, 10, 1, 1) - self.m3_type = QtWidgets.QComboBox(self.analyserTab) - self.m3_type.setMaximumSize(QtCore.QSize(55, 16777215)) + sizePolicy.setHeightForWidth(self.rbw_box.sizePolicy().hasHeightForWidth()) + self.rbw_box.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setPointSize(7) - self.m3_type.setFont(font) - self.m3_type.setObjectName("m3_type") - self.gridLayout_2.addWidget(self.m3_type, 3, 6, 1, 1) - self.stop_freq = QtWidgets.QDoubleSpinBox(self.analyserTab) + self.rbw_box.setFont(font) + self.rbw_box.setEditable(True) + self.rbw_box.setObjectName("rbw_box") + self.gridLayout_3.addWidget(self.rbw_box, 8, 0, 1, 1) + self.rbw_auto = QtWidgets.QCheckBox(self.ViewNormal) + font = QtGui.QFont() + font.setPointSize(7) + font.setBold(True) + font.setWeight(75) + self.rbw_auto.setFont(font) + self.rbw_auto.setObjectName("rbw_auto") + self.rbwpointsgroup.addButton(self.rbw_auto) + self.gridLayout_3.addWidget(self.rbw_auto, 7, 0, 1, 1) + self.line_2 = QtWidgets.QFrame(self.ViewNormal) + self.line_2.setFrameShape(QtWidgets.QFrame.HLine) + self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken) + self.line_2.setObjectName("line_2") + self.gridLayout_3.addWidget(self.line_2, 2, 0, 1, 1) + self.gridLayout.addLayout(self.gridLayout_3, 0, 0, 1, 1) + self.gridLayout_2 = QtWidgets.QGridLayout() + self.gridLayout_2.setObjectName("gridLayout_2") + self.mkr_start = QtWidgets.QToolButton(self.ViewNormal) + font = QtGui.QFont() + font.setPointSize(8) + self.mkr_start.setFont(font) + self.mkr_start.setArrowType(QtCore.Qt.LeftArrow) + self.mkr_start.setObjectName("mkr_start") + self.gridLayout_2.addWidget(self.mkr_start, 1, 4, 1, 1) + self.stop_freq = QtWidgets.QDoubleSpinBox(self.ViewNormal) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.stop_freq.sizePolicy().hasHeightForWidth()) self.stop_freq.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setPointSize(8) + self.stop_freq.setFont(font) self.stop_freq.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) self.stop_freq.setCorrectionMode(QtWidgets.QAbstractSpinBox.CorrectToNearestValue) self.stop_freq.setPrefix("") @@ -412,95 +280,186 @@ def setupUi(self, MainWindow): self.stop_freq.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) self.stop_freq.setProperty("value", 108.0) self.stop_freq.setObjectName("stop_freq") - self.gridLayout_2.addWidget(self.stop_freq, 2, 9, 1, 1) - self.mToBand = QtWidgets.QToolButton(self.analyserTab) - self.mToBand.setObjectName("mToBand") - self.gridLayout_2.addWidget(self.mToBand, 2, 0, 1, 1) - self.m4_type = QtWidgets.QComboBox(self.analyserTab) - self.m4_type.setMaximumSize(QtCore.QSize(55, 16777215)) + self.gridLayout_2.addWidget(self.stop_freq, 1, 12, 1, 1) + self.m1_type = QtWidgets.QComboBox(self.ViewNormal) + self.m1_type.setMaximumSize(QtCore.QSize(55, 16777215)) font = QtGui.QFont() - font.setPointSize(7) - self.m4_type.setFont(font) - self.m4_type.setObjectName("m4_type") - self.gridLayout_2.addWidget(self.m4_type, 3, 7, 1, 1) - self.start_freq = QtWidgets.QDoubleSpinBox(self.analyserTab) + font.setFamily("Sans Serif") + font.setPointSize(8) + self.m1_type.setFont(font) + self.m1_type.setObjectName("m1_type") + self.gridLayout_2.addWidget(self.m1_type, 2, 6, 1, 1) + self.memSlider = QtWidgets.QSlider(self.ViewNormal) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.start_freq.sizePolicy().hasHeightForWidth()) - self.start_freq.setSizePolicy(sizePolicy) - self.start_freq.setFrame(True) - self.start_freq.setCorrectionMode(QtWidgets.QAbstractSpinBox.CorrectToNearestValue) - self.start_freq.setPrefix("") - self.start_freq.setSuffix("") - self.start_freq.setDecimals(6) - self.start_freq.setMinimum(0.1) - self.start_freq.setMaximum(6000.0) - self.start_freq.setSingleStep(1.0) - self.start_freq.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) - self.start_freq.setProperty("value", 87.5) - self.start_freq.setObjectName("start_freq") - self.gridLayout_2.addWidget(self.start_freq, 2, 2, 1, 1) - self.marker4 = QtWidgets.QCheckBox(self.analyserTab) - self.marker4.setObjectName("marker4") - self.gridLayout_2.addWidget(self.marker4, 2, 7, 1, 1) - self.label_16 = QtWidgets.QLabel(self.analyserTab) + sizePolicy.setHeightForWidth(self.memSlider.sizePolicy().hasHeightForWidth()) + self.memSlider.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setPointSize(7) - font.setBold(True) - font.setWeight(75) - self.label_16.setFont(font) - self.label_16.setObjectName("label_16") - self.gridLayout_2.addWidget(self.label_16, 1, 0, 1, 2) - self.mkr_centre = QtWidgets.QToolButton(self.analyserTab) + self.memSlider.setFont(font) + self.memSlider.setMinimum(1) + self.memSlider.setMaximum(200) + self.memSlider.setProperty("value", 50) + self.memSlider.setOrientation(QtCore.Qt.Horizontal) + self.memSlider.setTickPosition(QtWidgets.QSlider.TicksAbove) + self.memSlider.setObjectName("memSlider") + self.gridLayout_2.addWidget(self.memSlider, 2, 3, 1, 1) + self.span_freq = QtWidgets.QDoubleSpinBox(self.ViewNormal) + font = QtGui.QFont() + font.setPointSize(8) + self.span_freq.setFont(font) + self.span_freq.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.span_freq.setButtonSymbols(QtWidgets.QAbstractSpinBox.PlusMinus) + self.span_freq.setCorrectionMode(QtWidgets.QAbstractSpinBox.CorrectToNearestValue) + self.span_freq.setPrefix("") + self.span_freq.setSuffix("") + self.span_freq.setDecimals(3) + self.span_freq.setMaximum(100000.0) + self.span_freq.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) + self.span_freq.setProperty("value", 20.0) + self.span_freq.setObjectName("span_freq") + self.gridLayout_2.addWidget(self.span_freq, 2, 12, 1, 1) + self.marker2 = QtWidgets.QCheckBox(self.ViewNormal) + font = QtGui.QFont() + font.setPointSize(8) + self.marker2.setFont(font) + self.marker2.setAutoFillBackground(False) + self.marker2.setObjectName("marker2") + self.gridLayout_2.addWidget(self.marker2, 1, 7, 1, 1) + self.mkr_centre = QtWidgets.QToolButton(self.ViewNormal) + font = QtGui.QFont() + font.setPointSize(8) + self.mkr_centre.setFont(font) self.mkr_centre.setToolTipDuration(1) self.mkr_centre.setArrowType(QtCore.Qt.UpArrow) self.mkr_centre.setObjectName("mkr_centre") - self.gridLayout_2.addWidget(self.mkr_centre, 3, 3, 1, 1) - self.label_19 = QtWidgets.QLabel(self.analyserTab) + self.gridLayout_2.addWidget(self.mkr_centre, 2, 4, 1, 1) + self.avgSlider = QtWidgets.QSlider(self.ViewNormal) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.avgSlider.sizePolicy().hasHeightForWidth()) + self.avgSlider.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setPointSize(7) - font.setBold(True) - font.setWeight(75) - self.label_19.setFont(font) - self.label_19.setObjectName("label_19") - self.gridLayout_2.addWidget(self.label_19, 1, 3, 1, 2) - self.band_box = QtWidgets.QComboBox(self.analyserTab) + self.avgSlider.setFont(font) + self.avgSlider.setMinimum(1) + self.avgSlider.setMaximum(101) + self.avgSlider.setProperty("value", 10) + self.avgSlider.setOrientation(QtCore.Qt.Horizontal) + self.avgSlider.setInvertedAppearance(False) + self.avgSlider.setInvertedControls(False) + self.avgSlider.setTickPosition(QtWidgets.QSlider.TicksAbove) + self.avgSlider.setTickInterval(10) + self.avgSlider.setObjectName("avgSlider") + self.gridLayout_2.addWidget(self.avgSlider, 1, 3, 1, 1) + self.mToBand = QtWidgets.QToolButton(self.ViewNormal) + font = QtGui.QFont() + font.setPointSize(8) + self.mToBand.setFont(font) + self.mToBand.setObjectName("mToBand") + self.gridLayout_2.addWidget(self.mToBand, 1, 0, 1, 1) + self.filterBox = QtWidgets.QComboBox(self.ViewNormal) + font = QtGui.QFont() + font.setPointSize(8) + self.filterBox.setFont(font) + self.filterBox.setObjectName("filterBox") + self.gridLayout_2.addWidget(self.filterBox, 2, 1, 1, 1) + spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.gridLayout_2.addItem(spacerItem1, 1, 11, 1, 1) + self.centre_freq = QtWidgets.QDoubleSpinBox(self.ViewNormal) + font = QtGui.QFont() + font.setPointSize(8) + self.centre_freq.setFont(font) + self.centre_freq.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.centre_freq.setButtonSymbols(QtWidgets.QAbstractSpinBox.PlusMinus) + self.centre_freq.setCorrectionMode(QtWidgets.QAbstractSpinBox.CorrectToNearestValue) + self.centre_freq.setPrefix("") + self.centre_freq.setSuffix("") + self.centre_freq.setDecimals(3) + self.centre_freq.setMinimum(0.1) + self.centre_freq.setMaximum(6000.0) + self.centre_freq.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) + self.centre_freq.setProperty("value", 98.0) + self.centre_freq.setObjectName("centre_freq") + self.gridLayout_2.addWidget(self.centre_freq, 2, 2, 1, 1) + self.scan_button = QtWidgets.QPushButton(self.ViewNormal) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.scan_button.sizePolicy().hasHeightForWidth()) + self.scan_button.setSizePolicy(sizePolicy) + font = QtGui.QFont() + font.setPointSize(8) + self.scan_button.setFont(font) + self.scan_button.setToolTip("") + self.scan_button.setCheckable(False) + self.scan_button.setObjectName("scan_button") + self.gridLayout_2.addWidget(self.scan_button, 1, 14, 1, 1) + self.presetMarker = QtWidgets.QCheckBox(self.ViewNormal) + font = QtGui.QFont() + font.setPointSize(8) + self.presetMarker.setFont(font) + self.presetMarker.setObjectName("presetMarker") + self.gridLayout_2.addWidget(self.presetMarker, 1, 10, 1, 1) + self.band_box = QtWidgets.QComboBox(self.ViewNormal) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.band_box.sizePolicy().hasHeightForWidth()) self.band_box.setSizePolicy(sizePolicy) self.band_box.setMaximumSize(QtCore.QSize(90, 16777215)) + font = QtGui.QFont() + font.setPointSize(8) + self.band_box.setFont(font) self.band_box.setEditable(False) self.band_box.setCurrentText("") self.band_box.setInsertPolicy(QtWidgets.QComboBox.InsertAtBottom) self.band_box.setObjectName("band_box") - self.gridLayout_2.addWidget(self.band_box, 2, 1, 1, 1) - self.label_9 = QtWidgets.QLabel(self.analyserTab) + self.gridLayout_2.addWidget(self.band_box, 1, 1, 1, 1) + self.m4_type = QtWidgets.QComboBox(self.ViewNormal) + self.m4_type.setMaximumSize(QtCore.QSize(55, 16777215)) font = QtGui.QFont() - font.setPointSize(7) - font.setBold(True) - font.setWeight(75) - self.label_9.setFont(font) - self.label_9.setObjectName("label_9") - self.gridLayout_2.addWidget(self.label_9, 1, 2, 1, 1) - self.mkr_start = QtWidgets.QToolButton(self.analyserTab) - self.mkr_start.setArrowType(QtCore.Qt.LeftArrow) - self.mkr_start.setObjectName("mkr_start") - self.gridLayout_2.addWidget(self.mkr_start, 2, 3, 1, 1) - self.filterBox = QtWidgets.QComboBox(self.analyserTab) - self.filterBox.setObjectName("filterBox") - self.gridLayout_2.addWidget(self.filterBox, 3, 1, 1, 1) - self.m1_type = QtWidgets.QComboBox(self.analyserTab) - self.m1_type.setMaximumSize(QtCore.QSize(55, 16777215)) + font.setPointSize(8) + self.m4_type.setFont(font) + self.m4_type.setObjectName("m4_type") + self.gridLayout_2.addWidget(self.m4_type, 2, 9, 1, 1) + self.marker1 = QtWidgets.QCheckBox(self.ViewNormal) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.marker1.sizePolicy().hasHeightForWidth()) + self.marker1.setSizePolicy(sizePolicy) font = QtGui.QFont() - font.setFamily("Sans Serif") - font.setPointSize(7) - self.m1_type.setFont(font) - self.m1_type.setObjectName("m1_type") - self.gridLayout_2.addWidget(self.m1_type, 3, 4, 1, 1) - self.graphWidget = PlotWidget(self.analyserTab) + font.setPointSize(8) + self.marker1.setFont(font) + self.marker1.setObjectName("marker1") + self.gridLayout_2.addWidget(self.marker1, 1, 6, 1, 1) + self.m2_type = QtWidgets.QComboBox(self.ViewNormal) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.m2_type.sizePolicy().hasHeightForWidth()) + self.m2_type.setSizePolicy(sizePolicy) + self.m2_type.setMaximumSize(QtCore.QSize(55, 16777215)) + font = QtGui.QFont() + font.setPointSize(8) + self.m2_type.setFont(font) + self.m2_type.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContentsOnFirstShow) + self.m2_type.setMinimumContentsLength(0) + self.m2_type.setIconSize(QtCore.QSize(16, 16)) + self.m2_type.setPlaceholderText("") + self.m2_type.setObjectName("m2_type") + self.gridLayout_2.addWidget(self.m2_type, 2, 7, 1, 1) + self.m3_type = QtWidgets.QComboBox(self.ViewNormal) + self.m3_type.setMaximumSize(QtCore.QSize(55, 16777215)) + font = QtGui.QFont() + font.setPointSize(8) + self.m3_type.setFont(font) + self.m3_type.setObjectName("m3_type") + self.gridLayout_2.addWidget(self.m3_type, 2, 8, 1, 1) + self.graphWidget = PlotWidget(self.ViewNormal) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -509,87 +468,87 @@ def setupUi(self, MainWindow): self.graphWidget.setAutoFillBackground(False) self.graphWidget.setStyleSheet("") self.graphWidget.setObjectName("graphWidget") - self.gridLayout_2.addWidget(self.graphWidget, 0, 0, 1, 11) - self.label_15 = QtWidgets.QLabel(self.analyserTab) + self.gridLayout_2.addWidget(self.graphWidget, 0, 0, 1, 15) + self.marker4 = QtWidgets.QCheckBox(self.ViewNormal) font = QtGui.QFont() - font.setPointSize(7) - font.setBold(True) - font.setWeight(75) - self.label_15.setFont(font) - self.label_15.setObjectName("label_15") - self.gridLayout_2.addWidget(self.label_15, 1, 9, 1, 1) - self.gridLayout.addLayout(self.gridLayout_2, 0, 1, 1, 1) - self.tabWidget.addTab(self.analyserTab, "") - self.TimeTab = QtWidgets.QWidget() - self.TimeTab.setEnabled(True) - self.TimeTab.setObjectName("TimeTab") - self.gridLayout_6 = QtWidgets.QGridLayout(self.TimeTab) - self.gridLayout_6.setObjectName("gridLayout_6") - self.gridLayout_4 = QtWidgets.QGridLayout() - self.gridLayout_4.setObjectName("gridLayout_4") - self.bConst = QtWidgets.QDoubleSpinBox(self.TimeTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + font.setPointSize(8) + self.marker4.setFont(font) + self.marker4.setObjectName("marker4") + self.gridLayout_2.addWidget(self.marker4, 1, 9, 1, 1) + self.start_freq = QtWidgets.QDoubleSpinBox(self.ViewNormal) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.bConst.sizePolicy().hasHeightForWidth()) - self.bConst.setSizePolicy(sizePolicy) - self.bConst.setMinimumSize(QtCore.QSize(16, 0)) + sizePolicy.setHeightForWidth(self.start_freq.sizePolicy().hasHeightForWidth()) + self.start_freq.setSizePolicy(sizePolicy) font = QtGui.QFont() - font.setPointSize(7) - self.bConst.setFont(font) - self.bConst.setDecimals(3) - self.bConst.setSingleStep(0.01) - self.bConst.setObjectName("bConst") - self.gridLayout_4.addWidget(self.bConst, 5, 1, 1, 1) - self.label_14 = QtWidgets.QLabel(self.TimeTab) + font.setPointSize(8) + self.start_freq.setFont(font) + self.start_freq.setFrame(True) + self.start_freq.setCorrectionMode(QtWidgets.QAbstractSpinBox.CorrectToNearestValue) + self.start_freq.setPrefix("") + self.start_freq.setSuffix("") + self.start_freq.setDecimals(6) + self.start_freq.setMinimum(0.1) + self.start_freq.setMaximum(6000.0) + self.start_freq.setSingleStep(1.0) + self.start_freq.setStepType(QtWidgets.QAbstractSpinBox.AdaptiveDecimalStepType) + self.start_freq.setProperty("value", 87.5) + self.start_freq.setObjectName("start_freq") + self.gridLayout_2.addWidget(self.start_freq, 1, 2, 1, 1) + self.presetLabel = QtWidgets.QCheckBox(self.ViewNormal) + font = QtGui.QFont() + font.setPointSize(8) + self.presetLabel.setFont(font) + self.presetLabel.setObjectName("presetLabel") + self.gridLayout_2.addWidget(self.presetLabel, 2, 10, 1, 1) + self.marker3 = QtWidgets.QCheckBox(self.ViewNormal) + font = QtGui.QFont() + font.setPointSize(8) + self.marker3.setFont(font) + self.marker3.setObjectName("marker3") + self.gridLayout_2.addWidget(self.marker3, 1, 8, 1, 1) + self.timeSpectrum = QtWidgets.QToolButton(self.ViewNormal) font = QtGui.QFont() - font.setFamily("Sans Serif") font.setPointSize(7) - self.label_14.setFont(font) - self.label_14.setObjectName("label_14") - self.gridLayout_4.addWidget(self.label_14, 6, 0, 1, 3) - self.glSmooth = QtWidgets.QCheckBox(self.TimeTab) + self.timeSpectrum.setFont(font) + self.timeSpectrum.setLayoutDirection(QtCore.Qt.LeftToRight) + self.timeSpectrum.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly) + self.timeSpectrum.setArrowType(QtCore.Qt.RightArrow) + self.timeSpectrum.setObjectName("timeSpectrum") + self.gridLayout_2.addWidget(self.timeSpectrum, 1, 13, 1, 1) + self.gridLayout.addLayout(self.gridLayout_2, 0, 1, 1, 1) + self.stackedWidget.addWidget(self.ViewNormal) + self.View3D = QtWidgets.QWidget() + self.View3D.setObjectName("View3D") + self.gridLayout_6 = QtWidgets.QGridLayout(self.View3D) + self.gridLayout_6.setObjectName("gridLayout_6") + self.gridLayout_4 = QtWidgets.QGridLayout() + self.gridLayout_4.setObjectName("gridLayout_4") + self.timeR = QtWidgets.QToolButton(self.View3D) font = QtGui.QFont() font.setPointSize(7) - self.glSmooth.setFont(font) - self.glSmooth.setLayoutDirection(QtCore.Qt.LeftToRight) - self.glSmooth.setObjectName("glSmooth") - self.gridLayout_4.addWidget(self.glSmooth, 8, 0, 1, 1) - self.bMulti = QtWidgets.QDoubleSpinBox(self.TimeTab) + self.timeR.setFont(font) + self.timeR.setArrowType(QtCore.Qt.NoArrow) + self.timeR.setObjectName("timeR") + self.gridLayout_4.addWidget(self.timeR, 16, 6, 1, 1) + self.gMulti = QtWidgets.QDoubleSpinBox(self.View3D) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.bMulti.sizePolicy().hasHeightForWidth()) - self.bMulti.setSizePolicy(sizePolicy) - self.bMulti.setMinimumSize(QtCore.QSize(16, 0)) + sizePolicy.setHeightForWidth(self.gMulti.sizePolicy().hasHeightForWidth()) + self.gMulti.setSizePolicy(sizePolicy) + self.gMulti.setMinimumSize(QtCore.QSize(16, 0)) font = QtGui.QFont() font.setPointSize(7) - self.bMulti.setFont(font) - self.bMulti.setDecimals(3) - self.bMulti.setMinimum(0.4) - self.bMulti.setSingleStep(0.001) - self.bMulti.setProperty("value", 0.4) - self.bMulti.setObjectName("bMulti") - self.gridLayout_4.addWidget(self.bMulti, 5, 0, 1, 1) - self.grid = QtWidgets.QCheckBox(self.TimeTab) - self.grid.setLayoutDirection(QtCore.Qt.LeftToRight) - self.grid.setChecked(True) - self.grid.setObjectName("grid") - self.gridLayout_4.addWidget(self.grid, 11, 16, 1, 1) - self.reset3D = QtWidgets.QPushButton(self.TimeTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(2) - sizePolicy.setHeightForWidth(self.reset3D.sizePolicy().hasHeightForWidth()) - self.reset3D.setSizePolicy(sizePolicy) - self.reset3D.setMinimumSize(QtCore.QSize(5, 0)) - font = QtGui.QFont() - font.setPointSize(9) - self.reset3D.setFont(font) - self.reset3D.setIconSize(QtCore.QSize(10, 16)) - self.reset3D.setObjectName("reset3D") - self.gridLayout_4.addWidget(self.reset3D, 11, 17, 1, 1) - self.rExponent = QtWidgets.QDoubleSpinBox(self.TimeTab) + self.gMulti.setFont(font) + self.gMulti.setDecimals(3) + self.gMulti.setMinimum(0.001) + self.gMulti.setSingleStep(0.001) + self.gMulti.setProperty("value", 0.01) + self.gMulti.setObjectName("gMulti") + self.gridLayout_4.addWidget(self.gMulti, 4, 0, 1, 1) + self.rExponent = QtWidgets.QDoubleSpinBox(self.View3D) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -604,47 +563,46 @@ def setupUi(self, MainWindow): self.rExponent.setSingleStep(0.1) self.rExponent.setProperty("value", 0.6) self.rExponent.setObjectName("rExponent") - self.gridLayout_4.addWidget(self.rExponent, 3, 2, 1, 1) - self.orbitU = QtWidgets.QToolButton(self.TimeTab) + self.gridLayout_4.addWidget(self.rExponent, 11, 0, 1, 1) + self.orbitU = QtWidgets.QToolButton(self.View3D) font = QtGui.QFont() - font.setPointSize(9) + font.setPointSize(7) self.orbitU.setFont(font) self.orbitU.setArrowType(QtCore.Qt.UpArrow) self.orbitU.setObjectName("orbitU") - self.gridLayout_4.addWidget(self.orbitU, 10, 8, 1, 1) - self.glNormals = QtWidgets.QCheckBox(self.TimeTab) + self.gridLayout_4.addWidget(self.orbitU, 15, 7, 1, 1) + self.glSmooth = QtWidgets.QCheckBox(self.View3D) font = QtGui.QFont() font.setPointSize(7) - self.glNormals.setFont(font) - self.glNormals.setLayoutDirection(QtCore.Qt.LeftToRight) - self.glNormals.setObjectName("glNormals") - self.gridLayout_4.addWidget(self.glNormals, 7, 0, 1, 1) - self.signalUp = QtWidgets.QToolButton(self.TimeTab) - font = QtGui.QFont() - font.setPointSize(9) - self.signalUp.setFont(font) - self.signalUp.setArrowType(QtCore.Qt.NoArrow) - self.signalUp.setObjectName("signalUp") - self.gridLayout_4.addWidget(self.signalUp, 11, 8, 1, 1) - self.bExponent = QtWidgets.QDoubleSpinBox(self.TimeTab) + self.glSmooth.setFont(font) + self.glSmooth.setLayoutDirection(QtCore.Qt.LeftToRight) + self.glSmooth.setObjectName("glSmooth") + self.gridLayout_4.addWidget(self.glSmooth, 16, 0, 1, 1) + self.rMulti = QtWidgets.QDoubleSpinBox(self.View3D) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.bExponent.sizePolicy().hasHeightForWidth()) - self.bExponent.setSizePolicy(sizePolicy) - self.bExponent.setMinimumSize(QtCore.QSize(16, 0)) + sizePolicy.setHeightForWidth(self.rMulti.sizePolicy().hasHeightForWidth()) + self.rMulti.setSizePolicy(sizePolicy) + self.rMulti.setMinimumSize(QtCore.QSize(0, 0)) + self.rMulti.setMaximumSize(QtCore.QSize(16777215, 16777215)) font = QtGui.QFont() font.setPointSize(7) - self.bExponent.setFont(font) - self.bExponent.setMinimum(-10.0) - self.bExponent.setMaximum(10.0) - self.bExponent.setSingleStep(0.1) - self.bExponent.setProperty("value", -0.3) - self.bExponent.setObjectName("bExponent") - self.gridLayout_4.addWidget(self.bExponent, 5, 2, 1, 1) - spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) - self.gridLayout_4.addItem(spacerItem1, 10, 13, 1, 1) - self.openGLWidget = GLViewWidget(self.TimeTab) + self.rMulti.setFont(font) + self.rMulti.setDecimals(3) + self.rMulti.setMinimum(0.001) + self.rMulti.setSingleStep(0.001) + self.rMulti.setProperty("value", 0.01) + self.rMulti.setObjectName("rMulti") + self.gridLayout_4.addWidget(self.rMulti, 3, 0, 1, 1) + self.glNormals = QtWidgets.QCheckBox(self.View3D) + font = QtGui.QFont() + font.setPointSize(7) + self.glNormals.setFont(font) + self.glNormals.setLayoutDirection(QtCore.Qt.LeftToRight) + self.glNormals.setObjectName("glNormals") + self.gridLayout_4.addWidget(self.glNormals, 15, 0, 1, 1) + self.openGLWidget = GLViewWidget(self.View3D) self.openGLWidget.setEnabled(True) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) @@ -652,179 +610,139 @@ def setupUi(self, MainWindow): sizePolicy.setHeightForWidth(self.openGLWidget.sizePolicy().hasHeightForWidth()) self.openGLWidget.setSizePolicy(sizePolicy) self.openGLWidget.setObjectName("openGLWidget") - self.gridLayout_4.addWidget(self.openGLWidget, 0, 3, 10, 15) - self.timeF = QtWidgets.QToolButton(self.TimeTab) + self.gridLayout_4.addWidget(self.openGLWidget, 0, 2, 15, 16) + self.gConst = QtWidgets.QDoubleSpinBox(self.View3D) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.gConst.sizePolicy().hasHeightForWidth()) + self.gConst.setSizePolicy(sizePolicy) + self.gConst.setMinimumSize(QtCore.QSize(16, 0)) font = QtGui.QFont() - font.setPointSize(9) - self.timeF.setFont(font) - self.timeF.setArrowType(QtCore.Qt.NoArrow) - self.timeF.setObjectName("timeF") - self.gridLayout_4.addWidget(self.timeF, 11, 6, 1, 1) - spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) - self.gridLayout_4.addItem(spacerItem2, 9, 0, 1, 1) - self.label_13 = QtWidgets.QLabel(self.TimeTab) + font.setPointSize(7) + self.gConst.setFont(font) + self.gConst.setDecimals(3) + self.gConst.setSingleStep(0.01) + self.gConst.setObjectName("gConst") + self.gridLayout_4.addWidget(self.gConst, 8, 0, 1, 1) + self.label_11 = QtWidgets.QLabel(self.View3D) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_13.sizePolicy().hasHeightForWidth()) - self.label_13.setSizePolicy(sizePolicy) - self.label_13.setMinimumSize(QtCore.QSize(16, 0)) + sizePolicy.setHeightForWidth(self.label_11.sizePolicy().hasHeightForWidth()) + self.label_11.setSizePolicy(sizePolicy) + self.label_11.setMinimumSize(QtCore.QSize(16, 0)) font = QtGui.QFont() font.setPointSize(7) - self.label_13.setFont(font) - self.label_13.setObjectName("label_13") - self.gridLayout_4.addWidget(self.label_13, 2, 2, 1, 1) - self.label_4 = QtWidgets.QLabel(self.TimeTab) + self.label_11.setFont(font) + self.label_11.setObjectName("label_11") + self.gridLayout_4.addWidget(self.label_11, 2, 0, 1, 1) + self.gridF = QtWidgets.QToolButton(self.View3D) font = QtGui.QFont() font.setPointSize(7) - font.setBold(True) - font.setWeight(75) - self.label_4.setFont(font) - self.label_4.setObjectName("label_4") - self.gridLayout_4.addWidget(self.label_4, 1, 0, 1, 2) - self.timeR = QtWidgets.QToolButton(self.TimeTab) + self.gridF.setFont(font) + self.gridF.setArrowType(QtCore.Qt.DownArrow) + self.gridF.setObjectName("gridF") + self.gridLayout_4.addWidget(self.gridF, 16, 13, 1, 1) + self.gridR = QtWidgets.QToolButton(self.View3D) font = QtGui.QFont() - font.setPointSize(9) - self.timeR.setFont(font) - self.timeR.setArrowType(QtCore.Qt.NoArrow) - self.timeR.setObjectName("timeR") - self.gridLayout_4.addWidget(self.timeR, 11, 7, 1, 1) - self.orbitD = QtWidgets.QToolButton(self.TimeTab) + font.setPointSize(7) + self.gridR.setFont(font) + self.gridR.setArrowType(QtCore.Qt.UpArrow) + self.gridR.setObjectName("gridR") + self.gridLayout_4.addWidget(self.gridR, 16, 14, 1, 1) + self.label_12 = QtWidgets.QLabel(self.View3D) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_12.sizePolicy().hasHeightForWidth()) + self.label_12.setSizePolicy(sizePolicy) + self.label_12.setMinimumSize(QtCore.QSize(16, 0)) + font = QtGui.QFont() + font.setPointSize(7) + self.label_12.setFont(font) + self.label_12.setObjectName("label_12") + self.gridLayout_4.addWidget(self.label_12, 6, 0, 1, 1) + self.orbitD = QtWidgets.QToolButton(self.View3D) font = QtGui.QFont() - font.setPointSize(9) + font.setPointSize(7) self.orbitD.setFont(font) self.orbitD.setArrowType(QtCore.Qt.DownArrow) self.orbitD.setObjectName("orbitD") - self.gridLayout_4.addWidget(self.orbitD, 10, 9, 1, 1) - self.freqR = QtWidgets.QToolButton(self.TimeTab) - font = QtGui.QFont() - font.setPointSize(9) - self.freqR.setFont(font) - self.freqR.setArrowType(QtCore.Qt.NoArrow) - self.freqR.setObjectName("freqR") - self.gridLayout_4.addWidget(self.freqR, 11, 10, 1, 1) - self.rotateBy = QtWidgets.QSpinBox(self.TimeTab) + self.gridLayout_4.addWidget(self.orbitD, 15, 8, 1, 1) + self.rConst = QtWidgets.QDoubleSpinBox(self.View3D) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.rConst.sizePolicy().hasHeightForWidth()) + self.rConst.setSizePolicy(sizePolicy) + self.rConst.setMinimumSize(QtCore.QSize(16, 0)) font = QtGui.QFont() - font.setPointSize(9) - self.rotateBy.setFont(font) - self.rotateBy.setMaximum(90) - self.rotateBy.setSingleStep(5) - self.rotateBy.setProperty("value", 5) - self.rotateBy.setObjectName("rotateBy") - self.gridLayout_4.addWidget(self.rotateBy, 10, 5, 1, 1) - self.gConst = QtWidgets.QDoubleSpinBox(self.TimeTab) + font.setPointSize(7) + self.rConst.setFont(font) + self.rConst.setDecimals(3) + self.rConst.setSingleStep(0.01) + self.rConst.setObjectName("rConst") + self.gridLayout_4.addWidget(self.rConst, 9, 0, 1, 1) + self.bMulti = QtWidgets.QDoubleSpinBox(self.View3D) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.gConst.sizePolicy().hasHeightForWidth()) - self.gConst.setSizePolicy(sizePolicy) - self.gConst.setMinimumSize(QtCore.QSize(16, 0)) + sizePolicy.setHeightForWidth(self.bMulti.sizePolicy().hasHeightForWidth()) + self.bMulti.setSizePolicy(sizePolicy) + self.bMulti.setMinimumSize(QtCore.QSize(16, 0)) font = QtGui.QFont() font.setPointSize(7) - self.gConst.setFont(font) - self.gConst.setDecimals(3) - self.gConst.setSingleStep(0.01) - self.gConst.setObjectName("gConst") - self.gridLayout_4.addWidget(self.gConst, 4, 1, 1, 1) - self.signalDown = QtWidgets.QToolButton(self.TimeTab) - font = QtGui.QFont() - font.setPointSize(9) - self.signalDown.setFont(font) - self.signalDown.setArrowType(QtCore.Qt.NoArrow) - self.signalDown.setObjectName("signalDown") - self.gridLayout_4.addWidget(self.signalDown, 11, 9, 1, 1) - self.orbitR = QtWidgets.QToolButton(self.TimeTab) - font = QtGui.QFont() - font.setPointSize(9) - self.orbitR.setFont(font) - self.orbitR.setArrowType(QtCore.Qt.RightArrow) - self.orbitR.setObjectName("orbitR") - self.gridLayout_4.addWidget(self.orbitR, 10, 7, 1, 1) - self.gMulti = QtWidgets.QDoubleSpinBox(self.TimeTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + self.bMulti.setFont(font) + self.bMulti.setDecimals(3) + self.bMulti.setMinimum(0.4) + self.bMulti.setSingleStep(0.001) + self.bMulti.setProperty("value", 0.4) + self.bMulti.setObjectName("bMulti") + self.gridLayout_4.addWidget(self.bMulti, 5, 0, 1, 1) + self.label_13 = QtWidgets.QLabel(self.View3D) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.gMulti.sizePolicy().hasHeightForWidth()) - self.gMulti.setSizePolicy(sizePolicy) - self.gMulti.setMinimumSize(QtCore.QSize(16, 0)) + sizePolicy.setHeightForWidth(self.label_13.sizePolicy().hasHeightForWidth()) + self.label_13.setSizePolicy(sizePolicy) + self.label_13.setMinimumSize(QtCore.QSize(16, 0)) font = QtGui.QFont() font.setPointSize(7) - self.gMulti.setFont(font) - self.gMulti.setDecimals(3) - self.gMulti.setMinimum(0.001) - self.gMulti.setSingleStep(0.001) - self.gMulti.setProperty("value", 0.01) - self.gMulti.setObjectName("gMulti") - self.gridLayout_4.addWidget(self.gMulti, 4, 0, 1, 1) - self.orbitL = QtWidgets.QToolButton(self.TimeTab) + self.label_13.setFont(font) + self.label_13.setObjectName("label_13") + self.gridLayout_4.addWidget(self.label_13, 10, 0, 1, 1) + spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout_4.addItem(spacerItem2, 14, 0, 1, 1) + self.orbitL = QtWidgets.QToolButton(self.View3D) font = QtGui.QFont() - font.setPointSize(9) + font.setPointSize(7) self.orbitL.setFont(font) self.orbitL.setArrowType(QtCore.Qt.LeftArrow) self.orbitL.setObjectName("orbitL") - self.gridLayout_4.addWidget(self.orbitL, 10, 6, 1, 1) - self.freqL = QtWidgets.QToolButton(self.TimeTab) + self.gridLayout_4.addWidget(self.orbitL, 15, 5, 1, 1) + self.timeF = QtWidgets.QToolButton(self.View3D) + font = QtGui.QFont() + font.setPointSize(7) + self.timeF.setFont(font) + self.timeF.setArrowType(QtCore.Qt.NoArrow) + self.timeF.setObjectName("timeF") + self.gridLayout_4.addWidget(self.timeF, 16, 5, 1, 1) + self.freqL = QtWidgets.QToolButton(self.View3D) font = QtGui.QFont() - font.setPointSize(9) + font.setPointSize(7) self.freqL.setFont(font) self.freqL.setArrowType(QtCore.Qt.NoArrow) self.freqL.setObjectName("freqL") - self.gridLayout_4.addWidget(self.freqL, 11, 11, 1, 1) - self.label_17 = QtWidgets.QLabel(self.TimeTab) - font = QtGui.QFont() - font.setPointSize(9) - self.label_17.setFont(font) - self.label_17.setObjectName("label_17") - self.gridLayout_4.addWidget(self.label_17, 10, 4, 1, 1) - self.gridR = QtWidgets.QToolButton(self.TimeTab) - self.gridR.setArrowType(QtCore.Qt.UpArrow) - self.gridR.setObjectName("gridR") - self.gridLayout_4.addWidget(self.gridR, 11, 15, 1, 1) - self.Enabled3D = QtWidgets.QCheckBox(self.TimeTab) - font = QtGui.QFont() - font.setPointSize(9) - self.Enabled3D.setFont(font) - self.Enabled3D.setObjectName("Enabled3D") - self.gridLayout_4.addWidget(self.Enabled3D, 10, 16, 1, 1) - self.panBy = QtWidgets.QSpinBox(self.TimeTab) - font = QtGui.QFont() - font.setPointSize(9) - self.panBy.setFont(font) - self.panBy.setMaximum(10) - self.panBy.setSingleStep(1) - self.panBy.setProperty("value", 1) - self.panBy.setObjectName("panBy") - self.gridLayout_4.addWidget(self.panBy, 11, 5, 1, 1) - self.label_11 = QtWidgets.QLabel(self.TimeTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_11.sizePolicy().hasHeightForWidth()) - self.label_11.setSizePolicy(sizePolicy) - self.label_11.setMinimumSize(QtCore.QSize(16, 0)) - font = QtGui.QFont() - font.setPointSize(7) - self.label_11.setFont(font) - self.label_11.setObjectName("label_11") - self.gridLayout_4.addWidget(self.label_11, 2, 0, 1, 1) - self.rMulti = QtWidgets.QDoubleSpinBox(self.TimeTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.rMulti.sizePolicy().hasHeightForWidth()) - self.rMulti.setSizePolicy(sizePolicy) - self.rMulti.setMinimumSize(QtCore.QSize(0, 0)) - self.rMulti.setMaximumSize(QtCore.QSize(16777215, 16777215)) + self.gridLayout_4.addWidget(self.freqL, 16, 10, 1, 1) + self.signalUp = QtWidgets.QToolButton(self.View3D) font = QtGui.QFont() font.setPointSize(7) - self.rMulti.setFont(font) - self.rMulti.setDecimals(3) - self.rMulti.setMinimum(0.001) - self.rMulti.setSingleStep(0.001) - self.rMulti.setProperty("value", 0.01) - self.rMulti.setObjectName("rMulti") - self.gridLayout_4.addWidget(self.rMulti, 3, 0, 1, 1) - self.gExponent = QtWidgets.QDoubleSpinBox(self.TimeTab) + self.signalUp.setFont(font) + self.signalUp.setArrowType(QtCore.Qt.NoArrow) + self.signalUp.setObjectName("signalUp") + self.gridLayout_4.addWidget(self.signalUp, 16, 7, 1, 1) + self.gExponent = QtWidgets.QDoubleSpinBox(self.View3D) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -839,8 +757,11 @@ def setupUi(self, MainWindow): self.gExponent.setSingleStep(0.1) self.gExponent.setProperty("value", 2.0) self.gExponent.setObjectName("gExponent") - self.gridLayout_4.addWidget(self.gExponent, 4, 2, 1, 1) - self.zoom = QtWidgets.QSlider(self.TimeTab) + self.gridLayout_4.addWidget(self.gExponent, 12, 0, 1, 1) + self.zoom = QtWidgets.QSlider(self.View3D) + font = QtGui.QFont() + font.setPointSize(7) + self.zoom.setFont(font) self.zoom.setMaximum(200) self.zoom.setProperty("value", 40) self.zoom.setSliderPosition(40) @@ -848,52 +769,132 @@ def setupUi(self, MainWindow): self.zoom.setInvertedAppearance(True) self.zoom.setInvertedControls(False) self.zoom.setObjectName("zoom") - self.gridLayout_4.addWidget(self.zoom, 10, 10, 1, 3) - self.rConst = QtWidgets.QDoubleSpinBox(self.TimeTab) + self.gridLayout_4.addWidget(self.zoom, 15, 9, 1, 3) + self.bConst = QtWidgets.QDoubleSpinBox(self.View3D) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.rConst.sizePolicy().hasHeightForWidth()) - self.rConst.setSizePolicy(sizePolicy) - self.rConst.setMinimumSize(QtCore.QSize(16, 0)) + sizePolicy.setHeightForWidth(self.bConst.sizePolicy().hasHeightForWidth()) + self.bConst.setSizePolicy(sizePolicy) + self.bConst.setMinimumSize(QtCore.QSize(16, 0)) font = QtGui.QFont() font.setPointSize(7) - self.rConst.setFont(font) - self.rConst.setDecimals(3) - self.rConst.setSingleStep(0.01) - self.rConst.setObjectName("rConst") - self.gridLayout_4.addWidget(self.rConst, 3, 1, 1, 1) - self.label_12 = QtWidgets.QLabel(self.TimeTab) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + self.bConst.setFont(font) + self.bConst.setDecimals(3) + self.bConst.setSingleStep(0.01) + self.bConst.setObjectName("bConst") + self.gridLayout_4.addWidget(self.bConst, 7, 0, 1, 1) + self.label_17 = QtWidgets.QLabel(self.View3D) + font = QtGui.QFont() + font.setPointSize(7) + self.label_17.setFont(font) + self.label_17.setObjectName("label_17") + self.gridLayout_4.addWidget(self.label_17, 15, 3, 1, 1) + self.signalDown = QtWidgets.QToolButton(self.View3D) + font = QtGui.QFont() + font.setPointSize(7) + self.signalDown.setFont(font) + self.signalDown.setArrowType(QtCore.Qt.NoArrow) + self.signalDown.setObjectName("signalDown") + self.gridLayout_4.addWidget(self.signalDown, 16, 8, 1, 1) + self.freqR = QtWidgets.QToolButton(self.View3D) + font = QtGui.QFont() + font.setPointSize(7) + self.freqR.setFont(font) + self.freqR.setArrowType(QtCore.Qt.NoArrow) + self.freqR.setObjectName("freqR") + self.gridLayout_4.addWidget(self.freqR, 16, 9, 1, 1) + self.panBy = QtWidgets.QSpinBox(self.View3D) + font = QtGui.QFont() + font.setPointSize(7) + self.panBy.setFont(font) + self.panBy.setMaximum(10) + self.panBy.setSingleStep(1) + self.panBy.setProperty("value", 1) + self.panBy.setObjectName("panBy") + self.gridLayout_4.addWidget(self.panBy, 16, 4, 1, 1) + self.rotateBy = QtWidgets.QSpinBox(self.View3D) + font = QtGui.QFont() + font.setPointSize(7) + self.rotateBy.setFont(font) + self.rotateBy.setMaximum(90) + self.rotateBy.setSingleStep(5) + self.rotateBy.setProperty("value", 5) + self.rotateBy.setObjectName("rotateBy") + self.gridLayout_4.addWidget(self.rotateBy, 15, 4, 1, 1) + self.label_4 = QtWidgets.QLabel(self.View3D) + font = QtGui.QFont() + font.setPointSize(7) + font.setBold(True) + font.setWeight(75) + self.label_4.setFont(font) + self.label_4.setObjectName("label_4") + self.gridLayout_4.addWidget(self.label_4, 1, 0, 1, 2) + self.orbitR = QtWidgets.QToolButton(self.View3D) + font = QtGui.QFont() + font.setPointSize(7) + self.orbitR.setFont(font) + self.orbitR.setArrowType(QtCore.Qt.RightArrow) + self.orbitR.setObjectName("orbitR") + self.gridLayout_4.addWidget(self.orbitR, 15, 6, 1, 1) + self.bExponent = QtWidgets.QDoubleSpinBox(self.View3D) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.label_12.sizePolicy().hasHeightForWidth()) - self.label_12.setSizePolicy(sizePolicy) - self.label_12.setMinimumSize(QtCore.QSize(16, 0)) + sizePolicy.setHeightForWidth(self.bExponent.sizePolicy().hasHeightForWidth()) + self.bExponent.setSizePolicy(sizePolicy) + self.bExponent.setMinimumSize(QtCore.QSize(16, 0)) font = QtGui.QFont() font.setPointSize(7) - self.label_12.setFont(font) - self.label_12.setObjectName("label_12") - self.gridLayout_4.addWidget(self.label_12, 2, 1, 1, 1) - self.label_18 = QtWidgets.QLabel(self.TimeTab) + self.bExponent.setFont(font) + self.bExponent.setMinimum(-10.0) + self.bExponent.setMaximum(10.0) + self.bExponent.setSingleStep(0.1) + self.bExponent.setProperty("value", -0.3) + self.bExponent.setObjectName("bExponent") + self.gridLayout_4.addWidget(self.bExponent, 13, 0, 1, 1) + self.run3D = QtWidgets.QPushButton(self.View3D) + font = QtGui.QFont() + font.setPointSize(7) + self.run3D.setFont(font) + self.run3D.setObjectName("run3D") + self.gridLayout_4.addWidget(self.run3D, 15, 17, 1, 1) + self.label_18 = QtWidgets.QLabel(self.View3D) font = QtGui.QFont() - font.setPointSize(9) + font.setPointSize(7) self.label_18.setFont(font) self.label_18.setObjectName("label_18") - self.gridLayout_4.addWidget(self.label_18, 11, 4, 1, 1) - self.run3D = QtWidgets.QPushButton(self.TimeTab) + self.gridLayout_4.addWidget(self.label_18, 16, 3, 1, 1) + self.reset3D = QtWidgets.QPushButton(self.View3D) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(2) + sizePolicy.setHeightForWidth(self.reset3D.sizePolicy().hasHeightForWidth()) + self.reset3D.setSizePolicy(sizePolicy) + self.reset3D.setMinimumSize(QtCore.QSize(5, 0)) font = QtGui.QFont() - font.setPointSize(9) - self.run3D.setFont(font) - self.run3D.setObjectName("run3D") - self.gridLayout_4.addWidget(self.run3D, 10, 17, 1, 1) - self.gridF = QtWidgets.QToolButton(self.TimeTab) - self.gridF.setArrowType(QtCore.Qt.DownArrow) - self.gridF.setObjectName("gridF") - self.gridLayout_4.addWidget(self.gridF, 11, 14, 1, 1) + font.setPointSize(7) + self.reset3D.setFont(font) + self.reset3D.setIconSize(QtCore.QSize(10, 16)) + self.reset3D.setObjectName("reset3D") + self.gridLayout_4.addWidget(self.reset3D, 16, 17, 1, 1) + self.analyser = QtWidgets.QToolButton(self.View3D) + self.analyser.setArrowType(QtCore.Qt.LeftArrow) + self.analyser.setObjectName("analyser") + self.gridLayout_4.addWidget(self.analyser, 15, 16, 1, 1) + self.grid = QtWidgets.QCheckBox(self.View3D) + font = QtGui.QFont() + font.setPointSize(7) + self.grid.setFont(font) + self.grid.setLayoutDirection(QtCore.Qt.LeftToRight) + self.grid.setChecked(True) + self.grid.setObjectName("grid") + self.gridLayout_4.addWidget(self.grid, 15, 13, 1, 2) + spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.gridLayout_4.addItem(spacerItem3, 15, 2, 1, 1) self.gridLayout_6.addLayout(self.gridLayout_4, 0, 0, 1, 1) - self.tabWidget.addTab(self.TimeTab, "") - self.gridLayout_5.addWidget(self.tabWidget, 0, 0, 1, 1) + self.stackedWidget.addWidget(self.View3D) + self.gridLayout_5.addWidget(self.stackedWidget, 0, 0, 1, 1) MainWindow.setCentralWidget(self.centralwidget) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") @@ -924,90 +925,100 @@ def setupUi(self, MainWindow): self.menuBar.addAction(self.menu_Help.menuAction()) self.retranslateUi(MainWindow) - self.tabWidget.setCurrentIndex(0) + self.stackedWidget.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate - self.trace4.setText(_translate("MainWindow", "T4")) - self.label_6.setText(_translate("MainWindow", "Battery:")) - self.label_8.setText(_translate("MainWindow", "Trace Averaging 1 - 101")) - self.label_10.setText(_translate("MainWindow", "Trace Settings")) - self.spur_box.setToolTip(_translate("MainWindow", "Spur reduction - impacts scanning speed")) - self.spur_box.setText(_translate("MainWindow", "Spur reduction")) - self.trace2.setText(_translate("MainWindow", "T2")) - self.rbw_box.setToolTip(_translate("MainWindow", "Resolution bandwidth")) - self.version.setText(_translate("MainWindow", "Not Connected")) - self.label_2.setToolTip(_translate("MainWindow", "Spur reduction techniques. Impacts scanning speed")) - self.label_2.setText(_translate("MainWindow", "Resolution BW & Scan Points")) - self.points_auto.setToolTip(_translate("MainWindow", "Set points to suit RBW")) - self.points_auto.setText(_translate("MainWindow", "Auto Points")) - self.mixerMode.setText(_translate("MainWindow", "Mixer/LNB mode")) self.atten_auto.setToolTip(_translate("MainWindow", "Enable auto attenuator")) - self.atten_auto.setText(_translate("MainWindow", "Auto attenuator")) - self.battery.setText(_translate("MainWindow", "Battery")) + self.atten_auto.setText(_translate("MainWindow", "Auto Att")) + self.t2_type.setToolTip(_translate("MainWindow", "Trace Type")) + self.version.setToolTip(_translate("MainWindow", "Firmware Version")) + self.version.setText(_translate("MainWindow", "Cnx")) + self.spur_box.setToolTip(_translate("MainWindow", "Spur reduction - impacts scanning speed")) + self.spur_box.setText(_translate("MainWindow", "Spurs")) + self.trace4.setToolTip(_translate("MainWindow", "Enable Trace")) + self.trace4.setText(_translate("MainWindow", "Trace 4")) + self.t4_type.setToolTip(_translate("MainWindow", "Trace Type")) + self.atten_box.setToolTip(_translate("MainWindow", "Set Attenuation")) self.atten_box.setSuffix(_translate("MainWindow", "dB")) + self.mixerMode.setText(_translate("MainWindow", "LNB")) self.lna_box.setToolTip(_translate("MainWindow", "Enable Low Noise Amplifier")) - self.lna_box.setText(_translate("MainWindow", "LNA on")) - self.trace1.setText(_translate("MainWindow", "T1")) + self.lna_box.setText(_translate("MainWindow", "LNA")) + self.trace1.setToolTip(_translate("MainWindow", "Enable Trace")) + self.trace1.setText(_translate("MainWindow", "Trace 1")) + self.trace3.setToolTip(_translate("MainWindow", "Enable Trace")) + self.trace3.setText(_translate("MainWindow", "Trace 3")) + self.battery.setToolTip(_translate("MainWindow", "Battery Voltage")) + self.battery.setText(_translate("MainWindow", "Battery")) + self.t3_type.setToolTip(_translate("MainWindow", "Trace Type")) + self.t1_type.setToolTip(_translate("MainWindow", "Trace Type")) + self.points_auto.setToolTip(_translate("MainWindow", "Auto set points to suit RBW")) + self.points_auto.setText(_translate("MainWindow", "Auto Pts")) + self.trace2.setToolTip(_translate("MainWindow", "Enable Trace")) + self.trace2.setText(_translate("MainWindow", "Trace 2")) + self.points_box.setToolTip(_translate("MainWindow", "Set Points")) + self.rbw_box.setToolTip(_translate("MainWindow", "Set Resolution Bandwidth")) + self.rbw_auto.setToolTip(_translate("MainWindow", "Enable Auto Resolution Bandwidth")) self.rbw_auto.setText(_translate("MainWindow", "Auto RBW")) + self.mkr_start.setToolTip(_translate("MainWindow", "Set markers to start frequency")) + self.mkr_start.setText(_translate("MainWindow", "...")) + self.stop_freq.setToolTip(_translate("MainWindow", "Sweep Stop")) + self.m1_type.setToolTip(_translate("MainWindow", "Marker type")) self.memSlider.setToolTip(_translate("MainWindow", "Sweep scan store size")) - self.trace3.setText(_translate("MainWindow", "T3")) - self.label.setText(_translate("MainWindow", "Scan Memory Size")) - self.marker3.setText(_translate("MainWindow", "M3")) - self.presetLabel.setToolTip(_translate("MainWindow", "Label preset freqs")) - self.presetLabel.setText(_translate("MainWindow", "Labels")) - self.marker1.setText(_translate("MainWindow", "M1")) - self.m2_type.setToolTip(_translate("MainWindow", "Marker type")) + self.span_freq.setToolTip(_translate("MainWindow", "Sweep Span")) self.marker2.setText(_translate("MainWindow", "M2")) + self.mkr_centre.setToolTip(_translate("MainWindow", "Set markers in range")) + self.mkr_centre.setText(_translate("MainWindow", "...")) + self.avgSlider.setToolTip(_translate("MainWindow", "Averaging")) + self.mToBand.setToolTip(_translate("MainWindow", "Add Band preset from M1 and M2")) + self.mToBand.setText(_translate("MainWindow", "+")) + self.filterBox.setToolTip(_translate("MainWindow", "Filter preset list")) + self.centre_freq.setToolTip(_translate("MainWindow", "Sweep Centre")) + self.scan_button.setText(_translate("MainWindow", "Run")) self.presetMarker.setToolTip(_translate("MainWindow", "Mark preset freqs")) self.presetMarker.setText(_translate("MainWindow", "Presets")) - self.scan_button.setText(_translate("MainWindow", "Run")) + self.band_box.setToolTip(_translate("MainWindow", "

Preset Frequency list

")) + self.m4_type.setToolTip(_translate("MainWindow", "Marker Type")) + self.marker1.setText(_translate("MainWindow", "M1")) + self.m2_type.setToolTip(_translate("MainWindow", "Marker type")) self.m3_type.setToolTip(_translate("MainWindow", "Marker type")) - self.mToBand.setToolTip(_translate("MainWindow", "Add Band preset from M1 and M2")) - self.mToBand.setText(_translate("MainWindow", "+")) self.marker4.setText(_translate("MainWindow", "M4")) - self.label_16.setText(_translate("MainWindow", "Presets / Filter")) - self.mkr_centre.setToolTip(_translate("MainWindow", "Set markers in range")) - self.mkr_centre.setText(_translate("MainWindow", "...")) - self.label_19.setText(_translate("MainWindow", "Markers")) - self.band_box.setToolTip(_translate("MainWindow", "

Preset Frequency list

")) - self.label_9.setText(_translate("MainWindow", "Start / Centre MHz")) - self.mkr_start.setToolTip(_translate("MainWindow", "Set markers to start frequency")) - self.mkr_start.setText(_translate("MainWindow", "...")) - self.filterBox.setToolTip(_translate("MainWindow", "Filter preset list")) - self.m1_type.setToolTip(_translate("MainWindow", "Marker type")) - self.label_15.setText(_translate("MainWindow", "Stop / Span MHz")) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.analyserTab), _translate("MainWindow", "Analyser")) - self.label_14.setText(_translate("MainWindow", "Shade = (Colour * dBm + const) ^ exponent")) - self.glSmooth.setText(_translate("MainWindow", "Smooth")) - self.bMulti.setPrefix(_translate("MainWindow", "B ")) - self.grid.setText(_translate("MainWindow", "Show Grid")) - self.reset3D.setText(_translate("MainWindow", "Reset")) + self.start_freq.setToolTip(_translate("MainWindow", "Sweep Start")) + self.presetLabel.setToolTip(_translate("MainWindow", "Label preset freqs")) + self.presetLabel.setText(_translate("MainWindow", "Labels")) + self.marker3.setText(_translate("MainWindow", "M3")) + self.timeSpectrum.setToolTip(_translate("MainWindow", "3D spectrum")) + self.timeSpectrum.setText(_translate("MainWindow", "3D")) + self.timeR.setText(_translate("MainWindow", "B")) + self.gMulti.setPrefix(_translate("MainWindow", "G ")) self.orbitU.setText(_translate("MainWindow", "...")) + self.glSmooth.setText(_translate("MainWindow", "Smooth")) + self.rMulti.setPrefix(_translate("MainWindow", "R ")) self.glNormals.setText(_translate("MainWindow", "Normals")) - self.signalUp.setText(_translate("MainWindow", "Up")) - self.timeF.setText(_translate("MainWindow", "F")) - self.label_13.setText(_translate("MainWindow", "^ exponent")) - self.label_4.setText(_translate("MainWindow", "RGB Height Shader Settings")) - self.timeR.setText(_translate("MainWindow", "B")) + self.label_11.setText(_translate("MainWindow", "x sig dBm")) + self.gridF.setText(_translate("MainWindow", "...")) + self.gridR.setText(_translate("MainWindow", "...")) + self.label_12.setText(_translate("MainWindow", "+ constant")) self.orbitD.setText(_translate("MainWindow", "...")) - self.freqR.setText(_translate("MainWindow", "R")) - self.signalDown.setText(_translate("MainWindow", "Dn")) - self.orbitR.setText(_translate("MainWindow", "...")) - self.gMulti.setPrefix(_translate("MainWindow", "G ")) + self.bMulti.setPrefix(_translate("MainWindow", "B ")) + self.label_13.setText(_translate("MainWindow", "^ exponent")) self.orbitL.setText(_translate("MainWindow", "...")) + self.timeF.setText(_translate("MainWindow", "F")) self.freqL.setText(_translate("MainWindow", "L")) + self.signalUp.setText(_translate("MainWindow", "Up")) self.label_17.setText(_translate("MainWindow", "Orbit")) - self.gridR.setText(_translate("MainWindow", "...")) - self.Enabled3D.setText(_translate("MainWindow", "Enable 3D")) - self.label_11.setText(_translate("MainWindow", "x sig dBm")) - self.rMulti.setPrefix(_translate("MainWindow", "R ")) - self.label_12.setText(_translate("MainWindow", "+ constant")) - self.label_18.setText(_translate("MainWindow", "Axes")) + self.signalDown.setText(_translate("MainWindow", "Dn")) + self.freqR.setText(_translate("MainWindow", "R")) + self.label_4.setToolTip(_translate("MainWindow", "Shade = (Colour * dBm + const) ^ exponent")) + self.label_4.setText(_translate("MainWindow", "Shader")) + self.orbitR.setText(_translate("MainWindow", "...")) self.run3D.setText(_translate("MainWindow", "Run")) - self.gridF.setText(_translate("MainWindow", "...")) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.TimeTab), _translate("MainWindow", "3D Spectrum")) + self.label_18.setText(_translate("MainWindow", "Axes")) + self.reset3D.setText(_translate("MainWindow", "Reset")) + self.analyser.setToolTip(_translate("MainWindow", "Analyser")) + self.analyser.setText(_translate("MainWindow", "...")) + self.grid.setText(_translate("MainWindow", "Show Grid")) self.menu_Help.setTitle(_translate("MainWindow", "&Help")) self.menuSettings.setTitle(_translate("MainWindow", "&Settings")) self.actionsetting.setText(_translate("MainWindow", "setting")) diff --git a/QtTinySpectrum.ui b/QtTinySpectrum.ui index 8577e7d..cad2e7f 100644 --- a/QtTinySpectrum.ui +++ b/QtTinySpectrum.ui @@ -8,7 +8,7 @@ 0 0 1000 - 600 + 603 @@ -17,10 +17,16 @@ 0 + + + 25 + 25 + + - + 0 @@ -30,162 +36,73 @@ false - - QTabWidget::North - - - QTabWidget::Rounded - 0 - - - - 0 - 0 - - - - Analyser - + - - - - - 7 - 75 - true - - - - T4 - - - - - + + 7 - - Battery: - - - - - - - - 0 - 0 - - - - - 7 - 75 - true - false - + + Qt::Vertical - - Trace Averaging 1 - 101 + + + 17 + 13 + - + - - + + 7 75 true - false - - - - Trace Settings - - - - - - - - 7 - Spur reduction - impacts scanning speed + Enable auto attenuator - Spur reduction + Auto Att true - - true - - - - - - 7 - 75 - true - - - - T2 - - - false + + + + + 0 + 0 + - - - - 7 - - - - - 1 - - - 30000 - - - 100 - - - QAbstractSpinBox::AdaptiveDecimalStepType - - - 400 + + Trace Type - - - - true - + + - + 0 0 @@ -196,65 +113,52 @@ - Resolution bandwidth + Firmware Version - - true + + Cnx - - + + 7 + + Spur reduction - impacts scanning speed + - Not Connected + Spurs - - - - - - - 0 - 0 - + + true - - - 7 - + + true - - - - - 0 - 0 - - + + 7 75 true - false - Spur reduction techniques. Impacts scanning speed + Enable Trace - Resolution BW & Scan Points + Trace 4 - + @@ -267,12 +171,15 @@ 7 + + Trace Type + - - + + - true + false @@ -280,23 +187,29 @@ - Set points to suit RBW + Set Attenuation - - Auto Points + + false - - true + + dB + + + 0 + + + 31 + + + 0 - - rbwpointsgroup - - + - + 0 0 @@ -328,7 +241,7 @@ 0 - Mixer/LNB mode + LNB false @@ -339,39 +252,66 @@ - + 7 + 50 + false - Enable auto attenuator + Enable Low Noise Amplifier + + + LNA + + + + + + + + 7 + 75 + true + + + + Enable Trace - Auto attenuator + Trace 1 true + + false + - - + + 7 + 75 + true + + Enable Trace + - Battery + Trace 3 - - + + - + 0 0 @@ -381,55 +321,58 @@ 7 - - 0 + + Battery Voltage + + + Battery - - - - false + + + + + 0 + 0 + 7 - - false - - - dB - - - 0 - - - 31 - - - 0 + + Trace Type - - + + + + + 0 + 0 + + 7 - Enable Low Noise Amplifier + Trace Type - - LNA on + + 0 - - + + + + true + 7 @@ -437,66 +380,106 @@ true + + Auto set points to suit RBW + - T1 + Auto Pts true + + rbwpointsgroup + + + + + + + + 7 + 75 + true + + + + Enable Trace + + + Trace 2 + false - - - - - 0 - 0 - - + + 7 + Set Points + + 1 - 101 + 30000 + + + 100 + + + QAbstractSpinBox::AdaptiveDecimalStepType - 10 + 400 - - Qt::Horizontal + + + + + + true - - false + + + 0 + 0 + - - false + + + 7 + - - QSlider::TicksAbove + + Set Resolution Bandwidth - - 10 + + true - + 7 + 75 + true + + Enable Auto Resolution Bandwidth + Auto RBW @@ -505,8 +488,37 @@ - - + + + + Qt::Horizontal + + + + + + + + + + + + 8 + + + + Set markers to start frequency + + + ... + + + Qt::LeftArrow + + + + + 0 @@ -515,26 +527,76 @@ - 7 + 8 + + Sweep Stop + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + QAbstractSpinBox::CorrectToNearestValue + + + + + + + + + 6 + + + 0.100000000000000 + + + 6000.000000000000000 + + + 1.000000000000000 + + + QAbstractSpinBox::AdaptiveDecimalStepType + + + 108.000000000000000 + - - - - Qt::Vertical - - + + + - 17 - 13 + 55 + 16777215 - + + + Sans Serif + 8 + + + + Marker type + + - + + + + 0 + 0 + + + + + 7 + + Sweep scan store size @@ -555,58 +617,16 @@ - - - - - 7 - 75 - true - - - - T3 - - - - - + + - 7 - 75 - true - false + 8 - - Scan Memory Size - - - - -
- - - - - - M3 - - - - - - Label preset freqs + Sweep Span - - Labels - - - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter @@ -625,74 +645,145 @@ 3 - - 0.100000000000000 - - 6000.000000000000000 + 100000.000000000000000 QAbstractSpinBox::AdaptiveDecimalStepType - 98.000000000000000 + 20.000000000000000 + + + + + + + + 8 + + + + false + + + M2 - - - - 0 - 0 - + + + + 8 + + + + Set markers in range + + + 1 - M1 + ... + + + Qt::UpArrow - - + + - + 0 0 - - - 55 - 16777215 - - 7 - Marker type + Averaging - - QComboBox::AdjustToContentsOnFirstShow + + 1 - - 0 + + 101 - - - 16 - 16 - + + 10 - - + + Qt::Horizontal + + + false + + + false + + + QSlider::TicksAbove + + + 10 - - + + + + + 8 + + + + Add Band preset from M1 and M2 + + + + + + + + + + + + 8 + + + + Filter preset list + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 8 + + + + Sweep Centre + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter @@ -711,29 +802,51 @@ 3 + + 0.100000000000000 + - 100000.000000000000000 + 6000.000000000000000 QAbstractSpinBox::AdaptiveDecimalStepType - 20.000000000000000 + 98.000000000000000 - - - - false + + + + + 0 + 0 + + + + + 8 + + + + - M2 + Run + + + false - + + + + 8 + + Mark preset freqs @@ -742,26 +855,115 @@ - - + + - + 0 0 + + + 90 + 16777215 + + + + + 8 + + + <html><head/><body><p>Preset Frequency list</p></body></html> + + + false + + + + QComboBox::InsertAtBottom + + + + + + + + 55 + 16777215 + + + + + 8 + + + + Marker Type + + + + + + + + 0 + 0 + + + + + 8 + + - Run + M1 + + + + + + + + 0 + 0 + + + + + 55 + 16777215 + + + + + 8 + + + + Marker type + + + QComboBox::AdjustToContentsOnFirstShow + + + 0 + + + + 16 + 16 + - - false + + - + @@ -771,7 +973,7 @@ - 7 + 8 @@ -779,72 +981,35 @@ - - + + - + 0 0 - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - QAbstractSpinBox::CorrectToNearestValue - - - - - - - - - 6 - - - 0.100000000000000 - - - 6000.000000000000000 - - - 1.000000000000000 - - - QAbstractSpinBox::AdaptiveDecimalStepType - - - 108.000000000000000 - - - - - - - Add Band preset from M1 and M2 + + false - - + + + - - - - - 55 - 16777215 - - + + - 7 + 8 + + M4 + - + @@ -852,6 +1017,14 @@ 0 + + + 8 + + + + Sweep Start + true @@ -884,184 +1057,118 @@ - - - - M4 - - - - - + + - 7 - 75 - true + 8 - - Presets / Filter - - - - - - Set markers in range - - - 1 + Label preset freqs - ... - - - Qt::UpArrow + Labels - - + + - 7 - 75 - true + 8 - Markers - - - - - - - - 0 - 0 - - - - - 90 - 16777215 - - - - <html><head/><body><p>Preset Frequency list</p></body></html> - - - false - - - - - - QComboBox::InsertAtBottom + M3 - - + + 7 - 75 - true - - Start / Centre MHz - - - - - - Set markers to start frequency + 3D spectrum + + + Qt::LeftToRight - ... + 3D - - Qt::LeftArrow + + Qt::ToolButtonIconOnly - - - - - - Filter preset list + + Qt::RightArrow - - - - - 55 - 16777215 - - + + +
+ + + + + + + - Sans Serif 7 - - Marker type + + B + + + Qt::NoArrow - - + + - + 0 0 - - false - - - + + + 16 + 0 + - - - - 7 - 75 - true - - Stop / Span MHz + + G + + + 3 + + + 0.001000000000000 + + + 0.001000000000000 + + + 0.010000000000000 - - - - - - - true - - - 3D Spectrum - - - - - - + + 0 @@ -1079,28 +1186,36 @@ 7 - - 3 + + -10.000000000000000 + + + 10.000000000000000 - 0.010000000000000 + 0.100000000000000 + + + 0.600000000000000 - - + + - Sans Serif 7 - Shade = (Colour * dBm + const) ^ exponent + ... + + + Qt::UpArrow - + @@ -1115,18 +1230,24 @@ - - + + 0 0 - + + + 0 + 0 + + + - 16 - 0 + 16777215 + 16777215 @@ -1135,69 +1256,81 @@ - B + R 3 - 0.400000000000000 + 0.001000000000000 0.001000000000000 - 0.400000000000000 + 0.010000000000000 - - + + + + + 7 + + Qt::LeftToRight - Show Grid + Normals - + + + + + true + + + 0 + 0 + + - - + + - + 0 - 2 + 0 - 5 + 16 0 - 9 + 7 - - Reset + + 3 - - - 10 - 16 - + + 0.010000000000000 - - + + - + 0 0 @@ -1213,25 +1346,31 @@ 7 - - -10.000000000000000 + + x sig dBm - - 10.000000000000000 + + + + + + + 7 + - - 0.100000000000000 + + ... - - 0.600000000000000 + + Qt::DownArrow - - + + - 9 + 7 @@ -1242,38 +1381,47 @@ - - + + + + + 0 + 0 + + + + + 16 + 0 + + 7 - - Qt::LeftToRight - - Normals + + constant - - + + - 9 + 7 - Up + ... - Qt::NoArrow + Qt::DownArrow - - + + 0 @@ -1291,80 +1439,51 @@ 7 - - -10.000000000000000 - - - 10.000000000000000 + + 3 - 0.100000000000000 - - - -0.300000000000000 + 0.010000000000000 - - - - - 9 - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - true - + + - + 0 0 - - - - + + + 16 + 0 + + - 9 + 7 - - F + + B - - Qt::NoArrow + + 3 - - - - - - Qt::Vertical + + 0.400000000000000 - - - 20 - 40 - + + 0.001000000000000 - + + 0.400000000000000 + + - + @@ -1388,85 +1507,81 @@ - - - - - 7 - 75 - true - + + + + Qt::Vertical - - RGB Height Shader Settings + + + 20 + 40 + - + - - + + - 9 + 7 - B + ... - Qt::NoArrow + Qt::LeftArrow - - + + - 9 + 7 - ... + F - Qt::DownArrow + Qt::NoArrow - - + + - 9 + 7 - R + L Qt::NoArrow - - + + - 9 + 7 - - 90 - - - 5 + + Up - - 5 + + Qt::NoArrow - - + + 0 @@ -1484,46 +1599,49 @@ 7 - - 3 + + -10.000000000000000 + + + 10.000000000000000 - 0.010000000000000 + 0.100000000000000 + + + 2.000000000000000 - - + + - 9 + 7 - - Dn + + 200 - - Qt::NoArrow + + 40 - - - - - - - 9 - + + 40 - - ... + + Qt::Horizontal - - Qt::RightArrow + + true + + + false - - + + 0 @@ -1541,173 +1659,126 @@ 7 - - G - 3 - - 0.001000000000000 - - 0.001000000000000 - - 0.010000000000000 - - + + - 9 + 7 - ... - - - Qt::LeftArrow + Orbit - - + + - 9 + 7 - L + Dn Qt::NoArrow - - + + - 9 + 7 - Orbit - - - - - - - ... + R - Qt::UpArrow + Qt::NoArrow - - + + - 9 + 7 - - Enable 3D + + 10 + + + 1 + + + 1 - - + + - 9 + 7 - 10 + 90 - 1 + 5 - 1 + 5 - - - - - 0 - 0 - - - - - 16 - 0 - - + + 7 + 75 + true + + Shade = (Colour * dBm + const) ^ exponent + - x sig dBm + Shader - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - + + 7 - - R - - - 3 - - - 0.001000000000000 - - - 0.001000000000000 + + ... - - 0.010000000000000 + + Qt::RightArrow - - + + 0 @@ -1735,70 +1806,45 @@ 0.100000000000000 - 2.000000000000000 + -0.300000000000000 - - - - 200 - - - 40 - - - 40 - - - Qt::Horizontal - - - true + + + + + 7 + - - false + + Run - - - - - 0 - 0 - - - - - 16 - 0 - - + + 7 - - 3 - - - 0.010000000000000 + + Axes - - + + - + 0 - 0 + 2 - 16 + 5 0 @@ -1808,43 +1854,64 @@ - + constant + Reset + + + + 10 + 16 + - - - - - 9 - + + + + Analyser - Axes + ... + + + Qt::LeftArrow - - + + - 9 + 7 + + Qt::LeftToRight + - Run + Show Grid + + + true - - - - ... + + + + + 7 + - - Qt::DownArrow + + Qt::Horizontal - + + + 40 + 20 + + + diff --git a/QtTinySpectrum_old.ui b/QtTinySpectrum_old.ui new file mode 100644 index 0000000..8577e7d --- /dev/null +++ b/QtTinySpectrum_old.ui @@ -0,0 +1,1948 @@ + + + Ian Jefferson + MainWindow + + + + 0 + 0 + 1000 + 600 + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + false + + + QTabWidget::North + + + QTabWidget::Rounded + + + 0 + + + + + 0 + 0 + + + + Analyser + + + + + + + + + 7 + 75 + true + + + + T4 + + + + + + + + 7 + + + + Battery: + + + + + + + + 0 + 0 + + + + + 7 + 75 + true + false + + + + Trace Averaging 1 - 101 + + + + + + + + 7 + 75 + true + false + + + + Trace Settings + + + + + + + + 7 + + + + Spur reduction - impacts scanning speed + + + Spur reduction + + + true + + + true + + + + + + + + 7 + 75 + true + + + + T2 + + + false + + + + + + + + 7 + + + + + + + 1 + + + 30000 + + + 100 + + + QAbstractSpinBox::AdaptiveDecimalStepType + + + 400 + + + + + + + true + + + + 0 + 0 + + + + + 7 + + + + Resolution bandwidth + + + true + + + + + + + + 7 + + + + Not Connected + + + + + + + + 0 + 0 + + + + + 7 + + + + + + + + + 0 + 0 + + + + + 7 + 75 + true + false + + + + Spur reduction techniques. Impacts scanning speed + + + Resolution BW & Scan Points + + + + + + + + 0 + 0 + + + + + 7 + + + + + + + + true + + + + 7 + + + + Set points to suit RBW + + + Auto Points + + + true + + + rbwpointsgroup + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 7 + + + + false + + + background-color:lightGreen + + + QFrame::NoFrame + + + QFrame::Plain + + + 0 + + + Mixer/LNB mode + + + false + + + Qt::AlignCenter + + + + + + + + 7 + + + + Enable auto attenuator + + + Auto attenuator + + + true + + + + + + + + 7 + + + + Battery + + + + + + + + 0 + 0 + + + + + 7 + + + + 0 + + + + + + + false + + + + 7 + + + + false + + + dB + + + 0 + + + 31 + + + 0 + + + + + + + + 7 + + + + Enable Low Noise Amplifier + + + LNA on + + + + + + + + 7 + 75 + true + + + + T1 + + + true + + + false + + + + + + + + 0 + 0 + + + + + 7 + + + + + + + 1 + + + 101 + + + 10 + + + Qt::Horizontal + + + false + + + false + + + QSlider::TicksAbove + + + 10 + + + + + + + + 7 + + + + Auto RBW + + + rbwpointsgroup + + + + + + + + 0 + 0 + + + + + 7 + + + + + + + + Qt::Vertical + + + + 17 + 13 + + + + + + + + Sweep scan store size + + + 1 + + + 200 + + + 50 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + + + + + + 7 + 75 + true + + + + T3 + + + + + + + + 7 + 75 + true + false + + + + Scan Memory Size + + + + + + + + + + + M3 + + + + + + + Label preset freqs + + + Labels + + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + QAbstractSpinBox::PlusMinus + + + QAbstractSpinBox::CorrectToNearestValue + + + + + + + + + 3 + + + 0.100000000000000 + + + 6000.000000000000000 + + + QAbstractSpinBox::AdaptiveDecimalStepType + + + 98.000000000000000 + + + + + + + + 0 + 0 + + + + M1 + + + + + + + + 0 + 0 + + + + + 55 + 16777215 + + + + + 7 + + + + Marker type + + + QComboBox::AdjustToContentsOnFirstShow + + + 0 + + + + 16 + 16 + + + + + + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + QAbstractSpinBox::PlusMinus + + + QAbstractSpinBox::CorrectToNearestValue + + + + + + + + + 3 + + + 100000.000000000000000 + + + QAbstractSpinBox::AdaptiveDecimalStepType + + + 20.000000000000000 + + + + + + + false + + + M2 + + + + + + + Mark preset freqs + + + Presets + + + + + + + + 0 + 0 + + + + + + + Run + + + false + + + + + + + + 55 + 16777215 + + + + + 7 + + + + Marker type + + + + + + + + 0 + 0 + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + QAbstractSpinBox::CorrectToNearestValue + + + + + + + + + 6 + + + 0.100000000000000 + + + 6000.000000000000000 + + + 1.000000000000000 + + + QAbstractSpinBox::AdaptiveDecimalStepType + + + 108.000000000000000 + + + + + + + Add Band preset from M1 and M2 + + + + + + + + + + + + 55 + 16777215 + + + + + 7 + + + + + + + + + 0 + 0 + + + + true + + + QAbstractSpinBox::CorrectToNearestValue + + + + + + + + + 6 + + + 0.100000000000000 + + + 6000.000000000000000 + + + 1.000000000000000 + + + QAbstractSpinBox::AdaptiveDecimalStepType + + + 87.500000000000000 + + + + + + + M4 + + + + + + + + 7 + 75 + true + + + + Presets / Filter + + + + + + + Set markers in range + + + 1 + + + ... + + + Qt::UpArrow + + + + + + + + 7 + 75 + true + + + + Markers + + + + + + + + 0 + 0 + + + + + 90 + 16777215 + + + + <html><head/><body><p>Preset Frequency list</p></body></html> + + + false + + + + + + QComboBox::InsertAtBottom + + + + + + + + 7 + 75 + true + + + + Start / Centre MHz + + + + + + + Set markers to start frequency + + + ... + + + Qt::LeftArrow + + + + + + + Filter preset list + + + + + + + + 55 + 16777215 + + + + + Sans Serif + 7 + + + + Marker type + + + + + + + + 0 + 0 + + + + false + + + + + + + + + + + 7 + 75 + true + + + + Stop / Span MHz + + + + + + + + + + true + + + 3D Spectrum + + + + + + + + + 0 + 0 + + + + + 16 + 0 + + + + + 7 + + + + 3 + + + 0.010000000000000 + + + + + + + + Sans Serif + 7 + + + + Shade = (Colour * dBm + const) ^ exponent + + + + + + + + 7 + + + + Qt::LeftToRight + + + Smooth + + + + + + + + 0 + 0 + + + + + 16 + 0 + + + + + 7 + + + + B + + + 3 + + + 0.400000000000000 + + + 0.001000000000000 + + + 0.400000000000000 + + + + + + + Qt::LeftToRight + + + Show Grid + + + true + + + + + + + + 0 + 2 + + + + + 5 + 0 + + + + + 9 + + + + Reset + + + + 10 + 16 + + + + + + + + + 0 + 0 + + + + + 16 + 0 + + + + + 7 + + + + -10.000000000000000 + + + 10.000000000000000 + + + 0.100000000000000 + + + 0.600000000000000 + + + + + + + + 9 + + + + ... + + + Qt::UpArrow + + + + + + + + 7 + + + + Qt::LeftToRight + + + Normals + + + + + + + + 9 + + + + Up + + + Qt::NoArrow + + + + + + + + 0 + 0 + + + + + 16 + 0 + + + + + 7 + + + + -10.000000000000000 + + + 10.000000000000000 + + + 0.100000000000000 + + + -0.300000000000000 + + + + + + + + 9 + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + true + + + + 0 + 0 + + + + + + + + + 9 + + + + F + + + Qt::NoArrow + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + 0 + 0 + + + + + 16 + 0 + + + + + 7 + + + + ^ exponent + + + + + + + + 7 + 75 + true + + + + RGB Height Shader Settings + + + + + + + + 9 + + + + B + + + Qt::NoArrow + + + + + + + + 9 + + + + ... + + + Qt::DownArrow + + + + + + + + 9 + + + + R + + + Qt::NoArrow + + + + + + + + 9 + + + + 90 + + + 5 + + + 5 + + + + + + + + 0 + 0 + + + + + 16 + 0 + + + + + 7 + + + + 3 + + + 0.010000000000000 + + + + + + + + 9 + + + + Dn + + + Qt::NoArrow + + + + + + + + 9 + + + + ... + + + Qt::RightArrow + + + + + + + + 0 + 0 + + + + + 16 + 0 + + + + + 7 + + + + G + + + 3 + + + 0.001000000000000 + + + 0.001000000000000 + + + 0.010000000000000 + + + + + + + + 9 + + + + ... + + + Qt::LeftArrow + + + + + + + + 9 + + + + L + + + Qt::NoArrow + + + + + + + + 9 + + + + Orbit + + + + + + + ... + + + Qt::UpArrow + + + + + + + + 9 + + + + Enable 3D + + + + + + + + 9 + + + + 10 + + + 1 + + + 1 + + + + + + + + 0 + 0 + + + + + 16 + 0 + + + + + 7 + + + + x sig dBm + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + + 7 + + + + R + + + 3 + + + 0.001000000000000 + + + 0.001000000000000 + + + 0.010000000000000 + + + + + + + + 0 + 0 + + + + + 16 + 0 + + + + + 7 + + + + -10.000000000000000 + + + 10.000000000000000 + + + 0.100000000000000 + + + 2.000000000000000 + + + + + + + 200 + + + 40 + + + 40 + + + Qt::Horizontal + + + true + + + false + + + + + + + + 0 + 0 + + + + + 16 + 0 + + + + + 7 + + + + 3 + + + 0.010000000000000 + + + + + + + + 0 + 0 + + + + + 16 + 0 + + + + + 7 + + + + + constant + + + + + + + + 9 + + + + Axes + + + + + + + + 9 + + + + Run + + + + + + + ... + + + Qt::DownArrow + + + + + + + + + + + + + + + + 0 + 0 + 1000 + 23 + + + + + &Help + + + + + + &Settings + + + + + + + + + setting + + + + + level + + + + + About QtTinySA + + + + + Preferences + + + + + Sweeps + + + + + Bands and Markers + + + + + + PlotWidget + QWidget +
pyqtgraph
+ 1 +
+ + GLViewWidget + QOpenGLWidget +
pyqtgraph.opengl
+
+
+ + + + + 10 + + + 10 + + + true + + + true + + + true + + + + + +
From 6d983ba8c54f7d45b2fd91f13fd2588a3939a1e7 Mon Sep 17 00:00:00 2001 From: G4IXT Date: Tue, 2 Apr 2024 21:19:48 +0100 Subject: [PATCH 12/17] v0.10.2 bugfix fixed addBandPressed() line 930 hid row header in frequencies table to prevent selecting whole row --- QtTinySA.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/QtTinySA.py b/QtTinySA.py index 8dc1752..334c168 100755 --- a/QtTinySA.py +++ b/QtTinySA.py @@ -72,7 +72,7 @@ def __init__(self): self.runTimer = QtCore.QElapsedTimer() # debug self.scale = 174 self.scanMemory = 50 - #self.scan3D = False + # self.scan3D = False self.surface = None self.vGrid = None self.usbCheck = QtCore.QTimer() @@ -457,7 +457,7 @@ def updateGUI(self, frequencies, readings): # called once per scan by fullSweep np.fliplr(readings) if ui.points_auto.isChecked(): ui.points_box.setValue(np.size(frequencies)) - #if ui.Enabled3D.isChecked(): + # if ui.Enabled3D.isChecked(): if ui.stackedWidget.currentWidget() == ui.View3D: z = readings + 120 # Surface plot height shader needs positive numbers so convert from dBm to dBf logging.debug(f'z = {z}') @@ -927,7 +927,7 @@ def addBandPressed(): popUp(message, QMessageBox.Ok, QMessageBox.Information) return name = 'M' + str(round(S1.vline.value(), 6)) - bands.insertData(name, S1.vline.value(), S2.vline.value(), '') + bands.insertData(name, ui.filterBox.currentText(), S1.vline.value(), S2.vline.value(), 'aliceblue', None) else: message = 'M1 and M2 must both be enabled to add a new Band' popUp(message, QMessageBox.Ok, QMessageBox.Information) @@ -1274,6 +1274,7 @@ def isMixerMode(): fType = QSqlRelationalDelegate(preferences.freqBands) preferences.freqBands.setItemDelegate(fType) + colHeader = preferences.freqBands.horizontalHeader() colHeader.setSectionResizeMode(QtWidgets.QHeaderView.ResizeToContents) @@ -1296,7 +1297,7 @@ def isMixerMode(): # connect the preferences dialogue box freq band table widget to the data model preferences.freqBands.setModel(bands.tm) preferences.freqBands.hideColumn(0) # ID -rowHeader = preferences.freqBands.verticalHeader() +preferences.freqBands.verticalHeader().setVisible(False) # Map database tables to preferences/GUI fields * lines need to be in this order and here or the mapping doesn't work * checkboxes.createTableModel() From dfe8634c9d929d7468c56421a2fa73aaae706e8b Mon Sep 17 00:00:00 2001 From: G4IXT Date: Thu, 4 Apr 2024 13:45:13 +0100 Subject: [PATCH 13/17] v0.10.2 bugfix Fixed insertdata() arguments order incorrect Fixed 'visible' column ignored on import from CSV --- QtTinySA.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/QtTinySA.py b/QtTinySA.py index 334c168..52936ac 100755 --- a/QtTinySA.py +++ b/QtTinySA.py @@ -817,12 +817,12 @@ def tableClicked(self): self.currentRow = preferences.freqBands.currentIndex().row() # the row index from the QModelIndexObject logging.debug(f'row {self.currentRow} clicked') - def insertData(self, name, typeF, startF, stopF, colour, visible): + def insertData(self, name, typeF, startF, stopF, visible, colour): record = self.tm.record() + record.setValue('value', int(eval(visible))) # converts string(visible) 'True' 'False' to 1 or 0 record.setValue('name', name) record.setValue('startF', f'{startF:.6f}') record.setValue('stopF', f'{stopF:.6f}') - # record.setValue('LO', f'{LO}') bandstype.tm.setFilter('preset = "' + typeF + '"') # using relation directly doesn't seem to work bandstype.tm.select() record.setValue('preset', bandstype.tm.record(0).value('ID')) @@ -857,7 +857,7 @@ def readCSV(self, fileName): logging.info(f'header = {header}') indx = self.findCols(header) continue - if len(indx) == 6: # (name, preset(=type), startF, stopF, value(=visible), colour) + if len(indx) == 6: # (name, preset(=type), startF, stopF, visible, colour) logging.info(f'row = {row}') bands.insertData(row[indx[0]], row[indx[1]], float(row[indx[2]]), float(row[indx[3]]), row[indx[4]], row[indx[5]]) elif len(indx) == 3: @@ -927,7 +927,7 @@ def addBandPressed(): popUp(message, QMessageBox.Ok, QMessageBox.Information) return name = 'M' + str(round(S1.vline.value(), 6)) - bands.insertData(name, ui.filterBox.currentText(), S1.vline.value(), S2.vline.value(), 'aliceblue', None) + bands.insertData(name, ui.filterBox.currentText(), S1.vline.value(), S2.vline.value(), 'True', 'aliceblue') else: message = 'M1 and M2 must both be enabled to add a new Band' popUp(message, QMessageBox.Ok, QMessageBox.Information) From e6fb2b6cbb1732e62ca7366d37f0458ae8ad017a Mon Sep 17 00:00:00 2001 From: Ian <76836635+g4ixt@users.noreply.github.com> Date: Thu, 4 Apr 2024 14:30:51 +0100 Subject: [PATCH 14/17] Update README.md --- README.md | 30 +++--------------------------- 1 file changed, 3 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index f286507..1afb3da 100644 --- a/README.md +++ b/README.md @@ -15,35 +15,11 @@ http://athome.kaashoek.com/tinySA/python/ The serial communication commands are based on Martin's Python NanoVNA/TinySA Toolset https://github.com/Ho-Ro -Dependencies: Install from your repository - numpy, pyqtgraph, pyopengl, pyqt5, pyserial. -You may need to add the Qt5 SQLite 3 database driver (libqt5sql5-sqlite) and Python3 bindings for QT5's SQL Module. +Dependencies: Install from your repository - numpy, pyqtgraph, pyopengl, pyqt5, pyserial, platformdirs. +You may need to add the Qt5 SQLite 3 database driver (libqt5sql5-sqlite) and Python3 bindings for QT5's SQL Module. You may need to update 'platformdirs'. If you get a serial exception on startup, add your username to the 'dialout' group. The 3D (time) spectrum requires OpenGL The GUI was originally designed for a 7" 1024 x 600 screen but should maximise properly. The GUI appearence may change significantly due to development. -There is limited error trapping. The 3D spectrum can sometimes crash the Application, but this only happens if it's enabled. - -Working Features (v0.8 onwards): - -Trace updates as tinySA scans. -LNA on/off. -SPUR auto/off. -Scan points selectable between 20 and 30,000 set manually or automatically based on RBW. -RBW control. -4 different colour traces, all can be turned on/off and set to average, max hold or min hold. -Selectable averaging. -Selectable memory depth. -Band frequency selection. -Start/stop frequency selection. -4 different colour markers. Each trace has 1 marker associated with it. Markers can be set to normal, delta, or one of the four largest peaks -with a selectable threshold. -The selected marker(s) can be set to sweep start frequency with a button, or can be draggged to any desired frequency. -All standard pyqtgraph features, selectable by right-click on the graph display, including: - Export as CSV, HDF5, Image file of various types, Matplotlib window, SVG -3D spectrum with measurements over time represented as a surface plot. Can be clicked/zoomed/dragged/rotated using the mouse -and with the control buttons. -The 3D spectrum can be enabled/disabled on its tab page. Disabled by default. -Trace and marker settings are saved when the programme is closed and restored when opened. -The 'band' frequencies can be edited and made visible or hidden in the preferences menu. -The signal level reminder lines can be made visible or hidden in the preferences menu. +There is limited error trapping. From e3b03fe79cbb366c9ac4e3756b1dc8e850ca931c Mon Sep 17 00:00:00 2001 From: Ian <76836635+g4ixt@users.noreply.github.com> Date: Thu, 4 Apr 2024 14:40:14 +0100 Subject: [PATCH 15/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1afb3da..59d637f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # QtTinySA -![Markers](https://github.com/g4ixt/QtTinySA/assets/76836635/cd2b9ee6-08e6-4c02-a7c2-6e2146e24ebf) +![Screenshot_20240404_143416](https://github.com/g4ixt/QtTinySA/assets/76836635/47d9e6e9-daeb-4ae3-8e9c-91b5f041f6ff) A Python 'TinySA Ultra' (and original 'TinySA') GUI programme using Qt5 and PyQt5. Designed to run in Linux but works in Windows (minimal testing) and mac (no testing). The Windows executable does not work on Windows versions < 10. From e13aead85db1fee01fb787c95d018d75808269f6 Mon Sep 17 00:00:00 2001 From: G4IXT Date: Thu, 4 Apr 2024 21:17:17 +0100 Subject: [PATCH 16/17] v0.10.2 bugfix Fixed band combobox restoration at startup --- QtTinySA.py | 15 +++++++++++---- Screenshots/Screenshot_20240404_143416.png | Bin 0 -> 53729 bytes Screenshots/Screenshot_20240404_143445.png | Bin 0 -> 198520 bytes Screenshots/Screenshot_20240404_143501.png | Bin 0 -> 92123 bytes 4 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 Screenshots/Screenshot_20240404_143416.png create mode 100644 Screenshots/Screenshot_20240404_143445.png create mode 100644 Screenshots/Screenshot_20240404_143501.png diff --git a/QtTinySA.py b/QtTinySA.py index 52936ac..846d336 100755 --- a/QtTinySA.py +++ b/QtTinySA.py @@ -169,6 +169,7 @@ def restoreSettings(self): self.freq_changed(False) # start/stop mode pointsChanged() ui.graphWidget.setXRange(ui.start_freq.value(), ui.stop_freq.value()) + logging.info(f'restoreSettings(): band = {numbers.tm.record(0).value("band")}') # update trace and marker settings from the database. 1 = last saved (default) settings S1.dLoad(1) @@ -179,11 +180,9 @@ def restoreSettings(self): S2.vline.setValue(numbers.tm.record(0).value('m2f')) S3.vline.setValue(numbers.tm.record(0).value('m3f')) S4.vline.setValue(numbers.tm.record(0).value('m4f')) - # set each marker to a different colour S1.vline.label.setColor('y') S2.vline.setPen(color='m', width=0.75, style=QtCore.Qt.DashLine) - # S2.vline.setPen(color=QtGui.QColor('darkgreen'), width=0.75, style=QtCore.Qt.DashLine) S2.vline.label.setColor('m') S3.vline.setPen(color='c', width=0.75, style=QtCore.Qt.DashLine) S3.vline.label.setColor('c') @@ -191,9 +190,10 @@ def restoreSettings(self): S4.vline.label.setColor('w') setPreferences() + ui.band_box.setCurrentText(numbers.tm.record(0).value("band")) + band_changed() def scan(self): # called by 'run' button - # self.scan3D = ui.Enabled3D.isChecked() if self.usb is not None: if self.sweeping: # if it's running, stop it self.sweeping = False # tells the measurement thread to stop once current scan complete @@ -457,7 +457,6 @@ def updateGUI(self, frequencies, readings): # called once per scan by fullSweep np.fliplr(readings) if ui.points_auto.isChecked(): ui.points_box.setValue(np.size(frequencies)) - # if ui.Enabled3D.isChecked(): if ui.stackedWidget.currentWidget() == ui.View3D: z = readings + 120 # Surface plot height shader needs positive numbers so convert from dBm to dBf logging.debug(f'z = {z}') @@ -1021,6 +1020,14 @@ def about(): def exit_handler(): if tinySA.dev is not None: + # save the marker frequencies + record = numbers.tm.record(0) + record.setValue('m1f', float(S1.vline.value())) + record.setValue('m2f', float(S2.vline.value())) + record.setValue('m3f', float(S3.vline.value())) + record.setValue('m4f', float(S4.vline.value())) + numbers.tm.setRecord(0, record) + # save the gui field values and checkbox states numbers.dwm.submit() checkboxes.dwm.submit() if tinySA.sweeping: diff --git a/Screenshots/Screenshot_20240404_143416.png b/Screenshots/Screenshot_20240404_143416.png new file mode 100644 index 0000000000000000000000000000000000000000..69890d034d6f15777f12e8147ad19aeacabbd745 GIT binary patch literal 53729 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≫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

(RQBAHo=Z(Dy$kI^t^smTYh#2@CeSQ6H{*b5^ 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

n(63<{|$E11~3^Hj|i68=fT9Z^1 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 MZFI9r^G?+N0DvyLVgLXD literal 0 HcmV?d00001 From 9cc3cc63db5e1271eec6d6e9f4b8668556611755 Mon Sep 17 00:00:00 2001 From: G4IXT Date: Fri, 5 Apr 2024 10:25:56 +0100 Subject: [PATCH 17/17] v0.10.2 --- QtTinySA.py | 2 +- ...240404_143445.png => 3D_20240404_143445.png} | Bin Screenshots/LNB_Mode_20240405_101426.png | Bin 0 -> 48666 bytes Screenshots/LNB_high_LO_20240405_101841.png | Bin 0 -> 48333 bytes ...3501.png => Preferences_20240404_143501.png} | Bin Screenshots/Preferences_LNB_20240405_101516.png | Bin 0 -> 92572 bytes ..._143416.png => Spectrum_20240404_143416.png} | Bin 7 files changed, 1 insertion(+), 1 deletion(-) rename Screenshots/{Screenshot_20240404_143445.png => 3D_20240404_143445.png} (100%) create mode 100644 Screenshots/LNB_Mode_20240405_101426.png create mode 100644 Screenshots/LNB_high_LO_20240405_101841.png rename Screenshots/{Screenshot_20240404_143501.png => Preferences_20240404_143501.png} (100%) create mode 100644 Screenshots/Preferences_LNB_20240405_101516.png rename Screenshots/{Screenshot_20240404_143416.png => Spectrum_20240404_143416.png} (100%) diff --git a/QtTinySA.py b/QtTinySA.py index 846d336..08bf079 100755 --- a/QtTinySA.py +++ b/QtTinySA.py @@ -190,7 +190,7 @@ def restoreSettings(self): S4.vline.label.setColor('w') setPreferences() - ui.band_box.setCurrentText(numbers.tm.record(0).value("band")) + ui.band_box.setCurrentText(numbers.tm.record(0).value("band")) # this shouldn't be needed but it is band_changed() def scan(self): # called by 'run' button diff --git a/Screenshots/Screenshot_20240404_143445.png b/Screenshots/3D_20240404_143445.png similarity index 100% rename from Screenshots/Screenshot_20240404_143445.png rename to Screenshots/3D_20240404_143445.png diff --git a/Screenshots/LNB_Mode_20240405_101426.png b/Screenshots/LNB_Mode_20240405_101426.png new file mode 100644 index 0000000000000000000000000000000000000000..762335dc5ec7051a9a9a09ef1bdbce250efece50 GIT binary patch literal 48666 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 literal 0 HcmV?d00001 diff --git a/Screenshots/LNB_high_LO_20240405_101841.png b/Screenshots/LNB_high_LO_20240405_101841.png new file mode 100644 index 0000000000000000000000000000000000000000..9fee3adbf33949bcd80d4c4bfaf6c4d2151261f2 GIT binary patch literal 48333 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 literal 0 HcmV?d00001 diff --git a/Screenshots/Screenshot_20240404_143501.png b/Screenshots/Preferences_20240404_143501.png similarity index 100% rename from Screenshots/Screenshot_20240404_143501.png rename to Screenshots/Preferences_20240404_143501.png diff --git a/Screenshots/Preferences_LNB_20240405_101516.png b/Screenshots/Preferences_LNB_20240405_101516.png new file mode 100644 index 0000000000000000000000000000000000000000..c9d5305346899a5fa11986d7c4f9741585cd8218 GIT binary patch literal 92572 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

n(63<{|$E11~3^Hj|i68=fT9Z^1 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 F{{p-JZ({%e literal 0 HcmV?d00001 diff --git a/Screenshots/Screenshot_20240404_143416.png b/Screenshots/Spectrum_20240404_143416.png similarity index 100% rename from Screenshots/Screenshot_20240404_143416.png rename to Screenshots/Spectrum_20240404_143416.png

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 i9qS8MkaZzDq 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 z�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