Add Tecan XCalibur pump interface and test suite #1122
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a new device interface for the Tecan XCalibur syringe pump, including a corresponding test suite.
Additions:
TecanXCaliburPump
class underdevices/pump/
, implementing core pump functionality.test_tecan_x_calibur.py
undertests/pump/
, using a customFakeSerial
class to simulate command/response behavior.Note on integration:
Integration into configuration.yaml and Navigate’s startup flow is left to the core team, as it may depend on internal conventions. I’m happy to assist though in a follow-up PR if helpful.
Note on try/except usage:
In another PR we discussed that try/except blocks may not always be preferred in Navigate. I'm now aware of that design philosophy, but I chose to use it here because I believe it can offer more flexibility.
Specifically, if these methods are called higher up in the stack, developers can choose either to:
except pass
or logging + retry).I imagine both cases have their place, though I’ll admit I’m no expert in microscopy control. I'm absolutely open to changing this if it doesn’t align with Navigate’s philosophy. Just let me know!