MainCode/adalm1000_logger.py aktualisiert

Mit diesen Anpassungen verschwindet:

    das Mitschleppen alter Kurven,

    die Crash-Gefahr durch eine halb abgestoppte QThread/Worker-Kombination.
C
This commit is contained in:
Jan 2025-08-05 15:07:49 +02:00
parent b5c587d981
commit d59e75cad4

View File

@ -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