diff --git a/MainCode/adalm1000_logger.py b/MainCode/adalm1000_logger.py index 6388e47..9f62fa5 100644 --- a/MainCode/adalm1000_logger.py +++ b/MainCode/adalm1000_logger.py @@ -1269,13 +1269,22 @@ class BatteryTester(QMainWindow): def start_cycle_test(self): """Start the battery cycle test""" # Clean up any previous test + if hasattr(self, 'test_sequence_worker'): + try: + self.test_sequence_worker.stop() + except: + pass + self.test_sequence_worker.deleteLater() if hasattr(self, 'test_sequence_thread'): self.test_sequence_thread.quit() - self.test_sequence_thread.wait(500) - if hasattr(self, 'test_sequence_worker'): - self.test_sequence_worker.deleteLater() + self.test_sequence_thread.wait() + self.test_sequence_thread.deleteLater() del self.test_sequence_thread - + self.reset_test() + self.reset_plot() + if hasattr(self, 'measurement_thread'): + self.measurement_thread.start_time = time.time() + # Reset stop flag self.request_stop = False @@ -1376,11 +1385,20 @@ class BatteryTester(QMainWindow): def start_discharge_test(self): """Start the battery discharge test""" # Clean up any previous test + self.reset_test() # löscht time_data, voltage_data, current_data, display_*, phase_data + self.reset_plot() + if hasattr(self, 'measurement_thread'): + self.measurement_thread.start_time = time.time() + if hasattr(self, 'discharge_worker'): + try: + self.discharge_worker.stop() + except: + pass + self.discharge_worker.deleteLater() if hasattr(self, 'discharge_thread'): self.discharge_thread.quit() - self.discharge_thread.wait(500) - if hasattr(self, 'discharge_worker'): - self.discharge_worker.deleteLater() + self.discharge_thread.wait() # warte unbegrenzt, bis er wirklich fertig ist + self.discharge_thread.deleteLater() del self.discharge_thread # Reset stop flag @@ -1472,12 +1490,21 @@ class BatteryTester(QMainWindow): def start_charge_test(self): """Start the battery charge test""" # Clean up any previous test + if hasattr(self, 'charge_worker'): + try: + self.charge_worker.stop() + except: + pass + self.charge_worker.deleteLater() if hasattr(self, 'charge_thread'): self.charge_thread.quit() - self.charge_thread.wait(500) - if hasattr(self, 'charge_worker'): - self.charge_worker.deleteLater() + self.charge_thread.wait() + self.charge_thread.deleteLater() del self.charge_thread + self.reset_test() + self.reset_plot() + if hasattr(self, 'measurement_thread'): + self.measurement_thread.start_time = time.time() # Reset stop flag self.request_stop = False