-
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): Verify attached/protocol pipettes #3458
Conversation
Codecov Report
@@ Coverage Diff @@
## edge #3458 +/- ##
==========================================
- Coverage 52.23% 52.14% -0.09%
==========================================
Files 794 794
Lines 23155 23219 +64
==========================================
+ Hits 12095 12108 +13
- Misses 11060 11111 +51
Continue to review full report at Codecov.
|
When we introduced our pipetteModelSpecs/pipetteNameSpecs split for our pipette data, we settled on pipette 'name' being the _kind_ of pipette - 'p300_single', 'p10_multi', etc pipette 'model' being the specific model version of pipette - 'p300_single_v1.5', 'p+20_single_v2.0', etc However, we didn't fully realize this throughout our stack. The name attribute of both the robot singleton pipette objects and the hardware control pipette objects (and everything that depended on them) still used 'name' to mean 'model'. This causes confusion for devs and also bugs like #3458 This PR fixes that by - Making the 'name' attributes on both the old and new pipettes return the name - Making new 'model' attributes on old and new pipettes that return the model - Piping everything around internally There's also changes to the tests to adapt their internal mocks for the above. Though the above pr does fix the bug it mentions, this also provides another way for clients to avoid confusing the simulated _v1 pipettes and the real versioned pipettes: check that the pipette _names_ match between the /pipettes endpoint and the protocol rpc output.
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.
📽
When we introduced our pipetteModelSpecs/pipetteNameSpecs split for our pipette data, we settled on pipette 'name' being the _kind_ of pipette - 'p300_single', 'p10_multi', etc pipette 'model' being the specific model version of pipette - 'p300_single_v1.5', 'p+20_single_v2.0', etc However, we didn't fully realize this throughout our stack. The name attribute of both the robot singleton pipette objects and the hardware control pipette objects (and everything that depended on them) still used 'name' to mean 'model'. This causes confusion for devs and also bugs like #3458 This PR fixes that by - Making the 'name' attributes on both the old and new pipettes return the name - Making new 'model' attributes on old and new pipettes that return the model - Piping everything around internally There's also changes to the tests to adapt their internal mocks for the above. Though the above pr does fix the bug it mentions, this also provides another way for clients to avoid confusing the simulated _v1 pipettes and the real versioned pipettes: check that the pipette _names_ match between the /pipettes endpoint and the protocol rpc output.
overview
This PR served as both a Bug Report and a Bug Fix. Support had reported wrong/no pipette attached messages in File Info and Calibrate Pipettes pages even after the user had gone to instrument settings and attached the correct/missing pipettes. The app was comparing models vs name. This PR gets both actual and session pipette names from shared data to avoid pipette version mismatch.
changelog
review requests
Can be tested on sanniti-bot with
api/tests/opentrons/data/bradford_assay.py
.detach one of the pipettes before loading protocol
upload protocol and observe missing/wrong pipette message in File Info and Calibrate Pipettes pages
attach the pipette
Missing pipette warning no longer exists in File Info Page
Missing pipette warning no longer exists in Calibrate Pipettes Page