Skip to content
Snippets Groups Projects
Commit 9ca9ab09 authored by Martin Killenberg's avatar Martin Killenberg
Browse files

implement measurement file and auto name in GUI

parent cf58c731
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/python3
from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton, QTextEdit
from PyQt5 import uic, QtCore, QtGui, QtWidgets
import sys
import prototype
import json
import time
class TestStandMainWindow(QMainWindow):
def __init__(self, *args, **kwargs):
def __init__(self, qt_app, *args, **kwargs):
super().__init__(*args, **kwargs)
uic.loadUi('climate-lab-main.ui', self)
self.qt_app = qt_app
self.startButton.clicked.connect(lambda: self.doMeasurement())
self.startButton.clicked.connect(lambda: self.do_measurement())
def do_measurement(self):
if self.humSweepButton.isChecked():
QtWidgets.QMessageBox.information(self, 'Information', 'Humidity sweep is not implemented yet!')
return
def doMeasurement(self):
self.setEnabled(False)
self.qt_app.processEvents();
with open('test_stand_parameter.json', 'r') as f:
config_data = json.load(f)
output_basename = self.baseName.text()
if self.autoNameCheckbox.isChecked():
output_basename = time.strftime("%Y_%m_%d-%H_%M_%S") + "_results"
else:
output_basename = self.baseName.text()
meas = prototype.Measurements(config_data['chamber_ip'], config_data['vna_ip'], output_basename,
False, config_data)
try:
temperatures = meas.perform_temperature_sweep(self.startParameter.value(), self.stopParameter.value(),
self.stepParameter.value(),
self.fixedParameter.value(), self.soakingTime.value(),
self.stableReads.value())
temp_extensions = []
for t in temperatures:
temp_extensions.append(str(t)+'deg_'+str(self.fixedParameter.value())+'rh')
prototype.plot_output(output_basename, temp_extensions, True, output_basename +
': Temperature sweep ' + str(temperatures[0]) + ' degC to ' +
str(temperatures[-1]) + ' degC')
if self.tempSweepButton.isChecked():
temperatures = meas.perform_temperature_sweep(self.startParameter.value(), self.stopParameter.value(),
self.stepParameter.value(),
self.fixedParameter.value(), self.soakingTime.value(),
self.stableReads.value())
temp_extensions = []
for t in temperatures:
temp_extensions.append(str(t)+'deg_'+str(self.fixedParameter.value())+'rh')
prototype.plot_output(output_basename, temp_extensions, True, output_basename +
': Temperature sweep ' + str(temperatures[0]) + '--' +
str(temperatures[-1]) + ' degC @ '+ str(self.fixedParameter.value()) + ' % r.h.')
elif self.measurementFileButton.isChecked():
try:
n_measurements = meas.perform_measurements(self.measurementFile.text())
prototype.plot_output(output_basename, range(n_measurements), True, output_basename)
except FileNotFoundError as e:
QtWidgets.QMessageBox.warning(self, 'Warning', str(e))
finally:
meas.chamber.close()
self.setEnabled(True)
......@@ -37,6 +59,7 @@ class TestStandMainWindow(QMainWindow):
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = TestStandMainWindow()
mainWindow = TestStandMainWindow(app)
mainWindow.show()
app.exec_()
......@@ -49,7 +49,7 @@
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="measuementFile">
<widget class="QLineEdit" name="measurementFile">
<property name="enabled">
<bool>false</bool>
</property>
......@@ -90,7 +90,7 @@
<item row="2" column="0">
<widget class="QGroupBox" name="parametersGroupBox">
<property name="title">
<string>Parameters</string>
<string>Sweep parameters</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
......@@ -136,7 +136,7 @@
<number>1</number>
</property>
<property name="value">
<double>32.000000000000000</double>
<double>22.000000000000000</double>
</property>
</widget>
</item>
......@@ -360,7 +360,7 @@
<connection>
<sender>measurementFileButton</sender>
<signal>toggled(bool)</signal>
<receiver>measuementFile</receiver>
<receiver>measurementFile</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment