-
Notifications
You must be signed in to change notification settings - Fork 178
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(app): disable module commands when protocol paused #5209
Conversation
The module command cards displayed in the protocol run page have historically allowed users to send module commands (like setting temperature) when the protocol was active but paused. That used to work essentially as a side effect: modules didn't respect pausing, so you could tell them to do things while the protocol was paused. Now that modules respect pausing, sending module commands when the protocol is paused results in the modules not doing anything. The science and UX intent of controlling modules from the protocol run page is to implement pre-protocol preparation (like preheat) or post-protocol behavior (like keeping some incubation going), not to control the modules when paused - and in fact, when more advanced module control behaviors land in protocol designer or in the python api, controlling modules when the protocol is paused could break protocol execution. This PR changes the module command cards to only work when the protocol is not paused or running.
Codecov Report
@@ Coverage Diff @@
## edge #5209 +/- ##
==========================================
+ Coverage 60.85% 61.23% +0.37%
==========================================
Files 1027 1033 +6
Lines 29316 29817 +501
==========================================
+ Hits 17841 18259 +418
- Misses 11475 11558 +83
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Working as intended
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm don't really love disappearing the control UI instead of disabling it with an explanatory tooltip
Issues with text spacing on the run screen for module card when the protocol is paused Note: The issue is only on run tab |
The module command cards displayed in the protocol run page have
historically allowed users to send module commands (like setting
temperature) when the protocol was active but paused. That used to work
essentially as a side effect: modules didn't respect pausing, so you
could tell them to do things while the protocol was paused.
Now that modules respect pausing, sending module commands when the
protocol is paused results in the modules not doing anything.
The science and UX intent of controlling modules from the protocol run
page is to implement pre-protocol preparation (like preheat) or
post-protocol behavior (like keeping some incubation going), not to
control the modules when paused - and in fact, when more advanced module
control behaviors land in protocol designer or in the python api,
controlling modules when the protocol is paused could break protocol
execution.
This PR changes the module command cards to only work when the protocol
is not paused or running.
Testing
Note: Testing this pr requires #5194 to be installed on a robot (or a robot on 3.16.1 or previous)
Risk Assessment
Limited to out-of-protocol module interaction (and only in the app, at that). However, we should make sure to test both the protocol run page module cards and the pipette info page run cards.