Initialization Order:
Now initializes all data structures (time_data, voltage_data, etc.) in __init__ before they're used
Initializes device after UI setup using QTimer.singleShot
Error Handling:
Properly handles the case when no ADALM1000 is detected
Disables the start button until a device is connected
Device Connection:
Shows clear status messages about device connection state
Provides a reconnect button for manual reconnection attempts
Thread Safety:
Ensures all data structures exist before any thread tries to access them
(D)