MainCode/adalm1000_logger.py aktualisiert
def toggle_recording(self): def update_status(self): def stop_test(self): These changes add proper checks for the existence and state of current_cycle_file before trying to access its properties or methods. The program should now handle stopping live monitoring without crashing. (D)
This commit is contained in:
parent
60fc215f30
commit
725bc83ab6
@ -825,14 +825,16 @@ class BatteryTester(QMainWindow):
|
||||
self.start_live_monitoring()
|
||||
else:
|
||||
self.record_button.setChecked(False)
|
||||
self.current_cycle_file = None # Ensure it's None if creation failed
|
||||
except Exception as e:
|
||||
print(f"Error starting recording: {e}")
|
||||
self.record_button.setChecked(False)
|
||||
self.current_cycle_file = None # Ensure it's None on error
|
||||
QMessageBox.critical(self, "Error", f"Failed to start recording:\n{str(e)}")
|
||||
else:
|
||||
# Stop recording
|
||||
try:
|
||||
if hasattr(self, 'current_cycle_file') and self.current_cycle_file:
|
||||
if hasattr(self, 'current_cycle_file') and self.current_cycle_file is not None:
|
||||
self.finalize_log_file()
|
||||
self.record_button.setText("Start Recording")
|
||||
self.status_bar.showMessage("Live recording stopped")
|
||||
@ -985,8 +987,8 @@ class BatteryTester(QMainWindow):
|
||||
self.capacity_label.setText(f"{self.capacity_ah:.4f}")
|
||||
|
||||
# Logging (1x per second)
|
||||
if hasattr(self, 'log_writer') and (now - self._last_log_time >= 1.0):
|
||||
if self.time_data and hasattr(self, 'current_cycle_file') and not self.current_cycle_file.closed:
|
||||
if hasattr(self, 'log_writer') and hasattr(self, 'current_cycle_file') and self.current_cycle_file is not None:
|
||||
if self.time_data and not self.current_cycle_file.closed and (now - self._last_log_time >= 1.0):
|
||||
try:
|
||||
current_time = self.time_data[-1]
|
||||
voltage = self.voltage_data[-1]
|
||||
@ -1018,12 +1020,13 @@ class BatteryTester(QMainWindow):
|
||||
self._last_log_time = now
|
||||
except Exception as e:
|
||||
print(f"Error writing to log file: {e}")
|
||||
if hasattr(self, 'current_cycle_file'):
|
||||
if hasattr(self, 'current_cycle_file') and self.current_cycle_file is not None:
|
||||
try:
|
||||
self.current_cycle_file.close()
|
||||
except:
|
||||
pass
|
||||
self.record_button.setChecked(False)
|
||||
self.current_cycle_file = None
|
||||
|
||||
def start_test(self):
|
||||
"""Start the selected test mode"""
|
||||
@ -1496,7 +1499,7 @@ class BatteryTester(QMainWindow):
|
||||
|
||||
def stop_test(self):
|
||||
"""Request immediate stop of the current test or monitoring"""
|
||||
if not self.test_running and not self.record_button.isChecked():
|
||||
if not self.test_running and not (hasattr(self, 'record_button') and self.record_button.isChecked()):
|
||||
return
|
||||
|
||||
self.request_stop = True
|
||||
@ -1519,9 +1522,10 @@ class BatteryTester(QMainWindow):
|
||||
pass
|
||||
|
||||
# Stop recording if active
|
||||
if self.record_button.isChecked():
|
||||
if hasattr(self, 'record_button') and self.record_button.isChecked():
|
||||
self.record_button.setChecked(False)
|
||||
self.finalize_log_file()
|
||||
if hasattr(self, 'current_cycle_file') and self.current_cycle_file is not None:
|
||||
self.finalize_log_file()
|
||||
self.record_button.setText("Start Recording")
|
||||
|
||||
# Reset device to safe state
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user