scopehal-apps
scopehal-apps copied to clipboard
[UX] Provide feedback to the user about whether the application is thinking/waiting
Just brain dumping here; maybe an issue isn't the best place for this sort of discussion. As a new user with slow equipment facing driver crashes, when I click a button, it's difficult to tell whether:
- The operation has completed successfully and all the changes have been drawn
- Background op finished ok but screen still drawing changes
- Op finished ok but there were no changes to draw
- App is still receiving data from instrument
- Request has not yet been answered by instrument
- Request has failed or been rejected by the instrument
- Request has timed out
- The application has hung or is looping in the background
- The scope has crashed
Usually, the only feedback I have is limited to:
- There's a new curve on my screen
- The tooltip didn't vanish when I moved the mouse away from the button (app is probably looping or hung)
- Scope is blinking angrily (either transmitting or crashed/bugged)
- Trace data from SCPISocketTransport on the console shows varied data (probably still working on the request) or is looping rapidly (hang)
With the understanding that crashes should become less common and interactions generally more seamless as bugs are worked out, there are a couple of ideas that come to mind:
- Add a visual hint such as the "hourglass next to the cursor" sort of deal, when the app is waiting to hear back, receiving data, or otherwise "thinking"
- Design some system to monitor transport metrics and detect anomalies that suggest something has crashed, and report that back to the user somehow (sounds kinda complex, and hopefully becomes less useful as baseline reliability improves)