- Update the title of the app window with source and reference information

pull/12/head
Rune B. Broberg 2019-09-05 20:42:02 +02:00
rodzic a4b47f118d
commit 48c0ebad95
2 zmienionych plików z 38 dodań i 9 usunięć

Wyświetl plik

@ -311,7 +311,7 @@ class VSWRChart(Chart):
for i in range(len(self.reference)): for i in range(len(self.reference)):
if self.reference[i].freq < fstart or self.reference[i].freq > fstop: if self.reference[i].freq < fstart or self.reference[i].freq > fstop:
continue continue
_, _, vswr = NanoVNASaver.vswr(self.data[i]) _, _, vswr = NanoVNASaver.vswr(self.reference[i])
x = self.leftMargin + 1 + round(self.chartWidth*(self.reference[i].freq - fstart)/fspan) x = self.leftMargin + 1 + round(self.chartWidth*(self.reference[i].freq - fstart)/fspan)
y = 30 + round((maxVSWR - vswr) / span * (self.chartHeight - 10)) y = 30 + round((maxVSWR - vswr) / span * (self.chartHeight - 10))
if y < 30: if y < 30:

Wyświetl plik

@ -16,7 +16,7 @@
import collections import collections
import math import math
import threading import threading
from time import sleep from time import sleep, strftime, gmtime
from typing import List from typing import List
import numpy as np import numpy as np
@ -59,6 +59,9 @@ class NanoVNASaver(QtWidgets.QWidget):
self.referenceS11data: List[Datapoint] = [] self.referenceS11data: List[Datapoint] = []
self.referenceS21data: List[Datapoint] = [] self.referenceS21data: List[Datapoint] = []
self.sweepSource = ""
self.referenceSource = ""
self.calibration = Calibration() self.calibration = Calibration()
self.markers = [] self.markers = []
@ -69,7 +72,8 @@ class NanoVNASaver(QtWidgets.QWidget):
self.color = QtGui.QColor(160, 140, 20, 128) self.color = QtGui.QColor(160, 140, 20, 128)
self.referenceColor = QtGui.QColor(0, 0, 255, 32) self.referenceColor = QtGui.QColor(0, 0, 255, 32)
self.setWindowTitle("NanoVNA Saver " + NanoVNASaver.version) self.baseTitle = "NanoVNA Saver " + NanoVNASaver.version
self.updateTitle()
layout = QtWidgets.QGridLayout() layout = QtWidgets.QGridLayout()
scrollarea = QtWidgets.QScrollArea() scrollarea = QtWidgets.QScrollArea()
outer = QtWidgets.QVBoxLayout() outer = QtWidgets.QVBoxLayout()
@ -575,10 +579,9 @@ class NanoVNASaver(QtWidgets.QWidget):
self.serialLock.release() self.serialLock.release()
def startSerial(self): def startSerial(self):
self.lister.appendPlainText("Opening serial port " + self.serialPort)
if self.serialLock.acquire(): if self.serialLock.acquire():
self.serialPort = self.serialPortInput.text() self.serialPort = self.serialPortInput.text()
self.lister.appendPlainText("Opening serial port " + self.serialPort)
try: try:
self.serial = serial.Serial(port=self.serialPort, baudrate=115200) self.serial = serial.Serial(port=self.serialPort, baudrate=115200)
self.serial.timeout = 0.05 self.serial.timeout = 0.05
@ -695,13 +698,18 @@ class NanoVNASaver(QtWidgets.QWidget):
self.serialLock.release() self.serialLock.release()
return values[1:102] return values[1:102]
def saveData(self, data, data12): def saveData(self, data, data12, source=None):
if self.dataLock.acquire(blocking=True): if self.dataLock.acquire(blocking=True):
self.data = data self.data = data
self.data21 = data12 self.data21 = data12
else: else:
print("ERROR: Failed acquiring data lock while saving.") print("ERROR: Failed acquiring data lock while saving.")
self.dataLock.release() self.dataLock.release()
if source is not None:
self.sweepSource = source
else:
self.sweepSource = strftime("%Y-%m-%d %H:%M:%S", gmtime())
self.updateTitle()
def dataUpdated(self): def dataUpdated(self):
if self.dataLock.acquire(blocking=True): if self.dataLock.acquire(blocking=True):
@ -901,7 +909,7 @@ class NanoVNASaver(QtWidgets.QWidget):
# Okay, we couldn't parse this however much we tried. # Okay, we couldn't parse this however much we tried.
return -1 return -1
def setReference(self, s11data=None, s21data=None): def setReference(self, s11data=None, s21data=None, source=None):
if not s11data: if not s11data:
s11data = self.data s11data = self.data
if not s21data: if not s21data:
@ -915,9 +923,30 @@ class NanoVNASaver(QtWidgets.QWidget):
c.setReference(s21data) c.setReference(s21data)
self.btnResetReference.setDisabled(False) self.btnResetReference.setDisabled(False)
if source is not None:
# Save the reference source info
self.referenceSource = source
else:
self.referenceSource = self.sweepSource
self.updateTitle()
def updateTitle(self):
title = self.baseTitle
insert = ""
if self.sweepSource != "":
insert += "Sweep: " + self.sweepSource + " @ " + str(len(self.data)) + " points"
if self.referenceSource != "":
if insert != "":
insert += ", "
insert += "Reference: " + self.referenceSource + " @ " + str(len(self.referenceS11data)) + " points"
if insert != "":
title = title + " (" + insert + ")"
self.setWindowTitle(title)
def resetReference(self): def resetReference(self):
self.referenceS11data = [] self.referenceS11data = []
self.referenceS21data = [] self.referenceS21data = []
self.referenceSource = ""
for c in self.charts: for c in self.charts:
c.resetReference() c.resetReference()
self.btnResetReference.setDisabled(True) self.btnResetReference.setDisabled(True)
@ -936,13 +965,13 @@ class NanoVNASaver(QtWidgets.QWidget):
filename = self.referenceFileNameInput.text() filename = self.referenceFileNameInput.text()
t = Touchstone(filename) t = Touchstone(filename)
t.load() t.load()
self.setReference(t.s11data, t.s21data) self.setReference(t.s11data, t.s21data, filename)
def loadSweepFile(self): def loadSweepFile(self):
filename = self.referenceFileNameInput.text() filename = self.referenceFileNameInput.text()
t = Touchstone(filename) t = Touchstone(filename)
t.load() t.load()
self.saveData(t.s11data, t.s21data) self.saveData(t.s11data, t.s21data, filename)
self.dataUpdated() self.dataUpdated()
def sizeHint(self) -> QtCore.QSize: def sizeHint(self) -> QtCore.QSize: