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

refactor sweep function

parent 96000ba4
No related branches found
No related tags found
No related merge requests found
......@@ -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')
......
......@@ -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
......
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