-
Notifications
You must be signed in to change notification settings - Fork 179
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
feat(step-generation, protocol-designer): add timeline error for off deck labware #12997
Conversation
Codecov Report
@@ Coverage Diff @@
## edge #12997 +/- ##
==========================================
- Coverage 72.79% 72.65% -0.15%
==========================================
Files 2363 2368 +5
Lines 64585 64970 +385
Branches 7222 7374 +152
==========================================
+ Hits 47016 47201 +185
- Misses 15885 16055 +170
- Partials 1684 1714 +30
Flags with carried forward coverage won't be shown. Click here to find out more.
|
9d309e6
to
67d3808
Compare
@@ -133,3 +133,7 @@ | |||
.module_model { | |||
height: 3rem; | |||
} | |||
|
|||
.pipette_select { |
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.
classNames
was already being prop drilled so it made more sense to just add on to that rather than convert all the PipetteSelect
components to using styled-components
@@ -99,24 +100,27 @@ export function PipetteFields(props: Props): JSX.Element { | |||
const nameBlockList = [...OT2_PIPETTES, 'p1000_96'] |
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.
nit: if this is going to be called nameBlockList
as a const, it would make more sense to have the ternary on robot type in this line. Right now, it is only actually the nameBlockList for Flexes.
e.g.
const nameBlockList = robotType === OT2_ROBOT_TYPE ? OT3_PIPETTES : [...OT2_PIPETTES, 'p1000_96']
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.
oops ya, good call
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.
should we also throw an error in moveLabware
if the labware is source or dest is 'offDeck', and we're using the gripper?
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.
yeah! that makes sense to me
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 think the same error creator should work for this?
@@ -28,6 +28,8 @@ export const moveLabware: CommandCreator<MoveLabwareArgs> = ( | |||
labware, | |||
}) | |||
) | |||
} else if (prevRobotState.labware[labware].slot === 'offDeck' && useGripper) { |
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.
this is only checking if the source location is off deck, we should also check if the destination is off deck here
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.
okay just added it, however, the offDeck
option is being filtered out in the labware location dropdown if a gripper is being used for it so hopefully users never run into this.
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.
Cool thanks for updating it. Since step-generation and protocol-designer are two separate modules, we shouldn't rely on form or field level protections in PD to prevent accessing non-sensical parameters in step-generation. Also theoretically, step-generation could be used by more than just PD. Its job is to validate step args against all known errors and turn them into protocol engine commands.
}, | ||
"LABWARE_OFF_DECK": { | ||
"title": "Robot interacting with an off deck labware", | ||
"body": "Labware must be on the deck for the robot to interact with it. To resolve this error, please make sure the labware is on deck." | ||
}, | ||
"HEATER_SHAKER_LATCH_CLOSED": { | ||
"title": "Heater-Shaker labware latch is closed", | ||
"body": "Before the robot can interact with labware on the Heater-Shaker module, the labware latch must be open. To resolve this error, please add a Heater-Shaker step ahead of the current step, and set the labware latch status to \"open\"." |
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.
Note: going to have Ed review and rewrite these and include the change in a different PR.
Also, the previous i18n strings for HEATER_SHAKER_LATCH_CLOSED
accidentally got deleted when i was rebasing something at some point, that is why it is randomly added here.
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.
lgtm!
components/src/forms/Select.tsx
Outdated
import { Box } from '../primitives' | ||
import { SPACING } from '../ui-style-constants' |
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.
these should go before type imports 😛
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.
😬
closes RAUT-525
Overview
If you try to interact with a labware that you moved off deck previously in the protocol, you will get a timeline error
Also fix up some weirdness in the
Select
component causing some dropdowns to have too wide a height and width.Test Plan
Changelog
HEATER_SHAKER_LATCH_CLOSED
- i think i had a merge conflict and accidentally deleted the previous i18n strings 😢labwareOffDeck
and add to the appropriate atomic commandsReview requests
see test plan
Risk assessment
low