From 9ca9ab098c890dd2da324d903fe42537a59614fc Mon Sep 17 00:00:00 2001 From: Martin Killenberg <martin.killenberg@desy.de> Date: Wed, 18 Jan 2023 18:10:19 +0100 Subject: [PATCH] implement measurement file and auto name in GUI --- Python_script/climate-lab-gui.py | 53 ++++++++++++++++++++++--------- Python_script/climate-lab-main.ui | 8 ++--- 2 files changed, 42 insertions(+), 19 deletions(-) mode change 100644 => 100755 Python_script/climate-lab-gui.py diff --git a/Python_script/climate-lab-gui.py b/Python_script/climate-lab-gui.py old mode 100644 new mode 100755 index dc6ad32..9ac69e3 --- a/Python_script/climate-lab-gui.py +++ b/Python_script/climate-lab-gui.py @@ -1,35 +1,57 @@ +#!/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_() + diff --git a/Python_script/climate-lab-main.ui b/Python_script/climate-lab-main.ui index e23d165..b29d54f 100644 --- a/Python_script/climate-lab-main.ui +++ b/Python_script/climate-lab-main.ui @@ -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"> -- GitLab