Change _execute_phase() to accept charge_cutoff, discharge_cutoff
Use the passed-in values instead of nonexistent self.parent.charge_cutoff
Update function calls accordingly
start_time synchronization
(C und D)
QQueue is fully replaced with collections.deque
print(f"Devices found: {self.session.devices}") for debugging
A 1.5-second delay before initializing the session
Proper cleanup of session and threads
A fallback check and exception if no ADALM1000 is detected
Thread Safety:
Replaced threading.Lock with QMutex and QMutexLocker
Created dedicated TestSequenceThread class using QThread
Data Handling:
Replaced deque with QQueue for better Qt integration
Added data point limiting (10,000 points) to prevent memory issues
Plot Improvements:
Smoother auto-scaling with gradual transitions
Better axis management with hysteresis
Code Quality:
PEP 8 compliance (consistent naming, docstrings)
Type hints for better code clarity
Google-style docstrings for all public methods
New Features:
Progress bar for test phases
Better tooltips for UI elements
Enhanced error handling and recovery
Performance:
More efficient data buffering
Optimized plot updates
(D)
Graceful Shutdown Sequence:
Stop all measurement threads first
Wait for them to complete
Then cleanup the USB session
Error Handling:
Add more specific exception handling for USB operations
Consider adding retries for non-critical operations
Logging:
Replace print statements with proper logging
Consider logging to a file for debugging purposes
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.