diff --git a/Python_script/climate-lab-gui.py b/Python_script/climate-lab-gui.py index df9aff565fa66dd915109e133dcd9d758c8c53ea..cc85ac35a9e82df9fc9c6fb79e39c403d836a175 100755 --- a/Python_script/climate-lab-gui.py +++ b/Python_script/climate-lab-gui.py @@ -34,10 +34,10 @@ class TestStandMainWindow(QMainWindow): False, config_data) try: 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()) + temperatures = meas.perform_sweep(self.startParameter.value(), self.stopParameter.value(), + self.stepParameter.value(), self.fixedParameter.value(), + self.soakingTime.value(), self.stableReads.value(), + 'temperature') temp_extensions = [] for t in temperatures: temp_extensions.append(str(t)+'deg_'+str(self.fixedParameter.value())+'rh') diff --git a/Python_script/prototype.py b/Python_script/prototype.py index a29781ff88429fc21a9d1247779d200bbd48a7a0..9e09a5e29a8b2b5893767215091e2499284cdc7c 100755 --- a/Python_script/prototype.py +++ b/Python_script/prototype.py @@ -93,23 +93,33 @@ class Measurements: return measurement_number - def perform_temperature_sweep(self, start_temp, stop_temp, temp_step, target_hum, soaking_time, n_stable_reads): - current_temp = start_temp - temperatures = [] - while current_temp < stop_temp: - temperatures.append(current_temp) - current_temp = round(current_temp + temp_step, 1) - temperatures.append(stop_temp) - - for temp in temperatures: - output_name = self.output_basename + '_'+str(temp)+'deg_'+str(target_hum)+'rh.csv' - self.measurement_plot.fig.suptitle("Temp. sweep measurement "+str(temperatures.index(temp)+1)+'/'+str(len(temperatures))+ - ': ' + str(temp) + ' degC, ' + str(target_hum) + ' rel. hum.', + def perform_sweep(self, start_val, stop_val, step_val, const_param, soaking_time, n_stable_reads, sweep_type): + current_val = start_val + sweep_values = [] + while current_val < stop_val: + sweep_values.append(current_val) + current_val = round(current_val + step_val, 1) + sweep_values.append(stop_val) + + for val in sweep_values: + if sweep_type == 'temperature': + target_temp = val + target_hum = const_param + elif sweep_type == 'humidity': + target_temp = const_param + target_hum = val + else: + raise Exception('Unknown sweep type: '+sweep_type) + + output_name = self.output_basename + '_'+str(target_temp)+'deg_'+str(target_hum)+'rh.csv' + self.measurement_plot.fig.suptitle(sweep_type + " sweep measurement "+str(sweep_values.index(val)+1)+ + '/'+str(len(sweep_values))+': ' + str(target_temp)+' degC, ' + + str(target_hum) + ' rel. hum.', color="red") - self.perform_single_measurement(output_name, temp, target_hum, soaking_time, n_stable_reads) + self.perform_single_measurement(output_name, target_temp, target_hum, soaking_time, n_stable_reads) plt.close() - return temperatures + return sweep_values def perform_single_measurement(self, output, target_temp, target_hum, soaking_time, n_stable_reads): with open(output, mode='w', newline='') as csv_file: @@ -351,8 +361,8 @@ def run_temperature_sweep_from_file(temperature_sweep_file, meas): soaking_time = int(list_of_values[4]) n_stable_reads = int(list_of_values[5]) - return meas.perform_temperature_sweep(start_temp, stop_temp, temperature_step, target_hum, soaking_time, - n_stable_reads), target_hum + return meas.perform_sweep(start_temp, stop_temp, temperature_step, target_hum, soaking_time, + n_stable_reads, 'temperature'), target_hum except KeyboardInterrupt: pass