From a685eccceb12a49b344d70528c3894ae76f43ab1 Mon Sep 17 00:00:00 2001
From: Martin Killenberg <martin.killenberg@desy.de>
Date: Thu, 19 Jan 2023 18:36:29 +0100
Subject: [PATCH] implement humidity sweep in GUI

---
 Python_script/climate-lab-gui.py  | 30 ++++++++++++++++++++++++++----
 Python_script/climate-lab-main.ui | 16 ++++++++++++++++
 2 files changed, 42 insertions(+), 4 deletions(-)

diff --git a/Python_script/climate-lab-gui.py b/Python_script/climate-lab-gui.py
index cc85ac3..ec99002 100755
--- a/Python_script/climate-lab-gui.py
+++ b/Python_script/climate-lab-gui.py
@@ -14,12 +14,20 @@ class TestStandMainWindow(QMainWindow):
         self.qt_app = qt_app
 
         self.startButton.clicked.connect(lambda: self.do_measurement())
+        self.tempSweepButton.clicked.connect(lambda: self.set_temp_sweep_labels())
+        self.humSweepButton.clicked.connect(lambda: self.set_hum_sweep_labels())
 
-    def do_measurement(self):
-        if self.humSweepButton.isChecked():
-            QtWidgets.QMessageBox.information(self, 'Information', 'Humidity sweep is not implemented yet!')
-            return
+    def set_temp_sweep_labels(self):
+        self.parametersGroupBox.setEnabled(True)
+        self.startStopStepGroupBox.setTitle('Temperature [degC]')
+        self.fixedParameterLabel.setText('Humidity [% r.h.]')
+
+    def set_hum_sweep_labels(self):
+        self.parametersGroupBox.setEnabled(True)
+        self.startStopStepGroupBox.setTitle('Humidity [% r.h.]')
+        self.fixedParameterLabel.setText('Temperature [degC]')
 
+    def do_measurement(self):
         self.setEnabled(False)
         self.qt_app.processEvents();
 
@@ -47,6 +55,20 @@ class TestStandMainWindow(QMainWindow):
                                       ': Temperature sweep ' + str(temperatures[0]) + '--' +
                                       str(temperatures[-1]) + ' degC @ '+ str(self.fixedParameter.value()) + ' % r.h.')
 
+            elif self.humSweepButton.isChecked():
+                humidities = meas.perform_sweep(self.startParameter.value(), self.stopParameter.value(),
+                                                self.stepParameter.value(), self.fixedParameter.value(),
+                                                self.soakingTime.value(), self.stableReads.value(),
+                                                'humidity')
+                hum_extensions = []
+                for h in humidities:
+                    hum_extensions.append(str(self.fixedParameter.value())+'deg_'+str(h)+'rh')
+                analysis.plot_sweep([self.fixedParameter.value()]*len(humidities), humidities, output_basename,
+                                    'humidity')
+                prototype.plot_output(output_basename, hum_extensions, True, output_basename +
+                                      ': Humidity sweep ' + str(humidities[0]) + '--' +
+                                      str(humidities[-1]) + ' % r.h. @ '+ str(self.fixedParameter.value()) + ' degC')
+
             elif self.measurementFileButton.isChecked():
                 try:
                     n_measurements = meas.perform_measurements(self.measurementFile.text())
diff --git a/Python_script/climate-lab-main.ui b/Python_script/climate-lab-main.ui
index b29d54f..c221840 100644
--- a/Python_script/climate-lab-main.ui
+++ b/Python_script/climate-lab-main.ui
@@ -389,5 +389,21 @@
     </hint>
    </hints>
   </connection>
+  <connection>
+   <sender>measurementFileButton</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>parametersGroupBox</receiver>
+   <slot>setDisabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>51</x>
+     <y>117</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>70</x>
+     <y>175</y>
+    </hint>
+   </hints>
+  </connection>
  </connections>
 </ui>
-- 
GitLab