diff --git a/Python_script/prototype.py b/Python_script/prototype.py index 5c014eb2a1858b1a243100cd0aeeca6abd8cb12f..0ab7c2eb837ea2591e083128b58c3fe2243ff5a0 100755 --- a/Python_script/prototype.py +++ b/Python_script/prototype.py @@ -138,7 +138,8 @@ class Measurements: print('Setpoint: ' + str(next_temp) + ' ' + str(next_hum) + ' | Temp: ' + data.temp + ' °C' + ' | Humid: ' + data.hum + '%' + ' | soaking read nr' + str(len(magnitudes_queue))) - self.write_data(writer, next_temp, next_hum, data, self.cook_up_equi_indicator()) + self.store_and_plot_data(next_temp, next_hum, data, self.cook_up_equi_indicator()) + writer.writerow(self.data_collection[-1]) if self.temperature_stable and self.humidity_stable and self.magnitude_stable and\ self.phase_stable: @@ -164,7 +165,8 @@ class Measurements: self.phase_stable = (reference_phase-self.max_delta_phase <= phase) and\ (phase <= reference_phase+self.max_delta_phase) - supposedly_stable_measurements.append([data, self.cook_up_equi_indicator()]) + self.store_and_plot_data(next_temp, next_hum, data, self.cook_up_equi_indicator()) + supposedly_stable_measurements.append(self.data_collection[-1]) if (self.temperature_stable and self.humidity_stable and self.magnitude_stable and self.phase_stable): @@ -175,13 +177,14 @@ class Measurements: print('Measurement not stable. Retrying.') break - for [d, measurement_equi] in supposedly_stable_measurements: + for measurement in supposedly_stable_measurements: if all_measurements_stable: - equi = TEMPERATURE_STABLE | HUMIDITY_STABLE | MAGNITUDE_STABLE | PHASE_STABLE | MEASUREMENT_STABLE + measurement['EQUILIBRIUM_INDICATOR'] = TEMPERATURE_STABLE | HUMIDITY_STABLE |\ + MAGNITUDE_STABLE | PHASE_STABLE |\ + MEASUREMENT_STABLE do_another_measurement = False - else: - equi = measurement_equi - self.write_data(writer, next_temp, next_hum, d, equi) + + writer.writerow(measurement) except KeyboardInterrupt: pass @@ -202,7 +205,7 @@ class Measurements: return MeasurementData(int(self.clock.time()), temp, hum, power, frequency, s11, s21, s12, s22) - def write_data(self, writer, target_temp, target_hum, data, equi_indicator): + def store_and_plot_data(self, target_temp, target_hum, data, equi_indicator): measurement = { 'TIMESTAMP': data.timestamp, 'TARGET_TEMPERATURE': target_temp, @@ -221,7 +224,6 @@ class Measurements: 'S22_PHASE': self.calculate_mean_phase(data.s22), 'S22_MAGNITUDE': self.calculate_mean_magnitude(data.s22) } - writer.writerow(measurement) self.data_collection.append(measurement) data_frame = pd.DataFrame(self.data_collection) self.measurement_plot.draw(data_frame)