Repository navigation
LiCONiC StoreX: migrate to the v1 device architecture - #1513
Open
rickwierenga wants to merge 6 commits into
Open
rickwierenga wants to merge 6 commits into
rickwierenga wants to merge 6 commits into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Add a direct
pylabrobot.liconic.StoreXdevice that owns serial communication, calibrated cassettes, the loading tray, and the shovel. Fetch and store operations sequence the PLC primitives in Python and update inventory after each confirmed physical stage.If a reply is lost or a transfer is cancelled, the driver retains the last confirmed inventory and records the uncertain stage. Further handling is blocked until explicit reconciliation; reconnecting does not clear that state or home the mechanism.
get_target_*/set_target_*methods.Validation: 102 tests pass under
python -m unittestacross StoreX, legacy LiCONiC/incubator, and serial transport tests. StoreX tests use standard unittest mocks and explicit command/reply expectations, covering interrupted transfers, cancellation, concurrent operations, physical-state checks, and climate actual/target separation. A before/after comparison confirms identical output for all 36 legacy rack factories, 102 error mappings, and every legacy calibration value. Ruff, mypy, notebook validation, and the Sphinx build with warnings treated as errors pass.Hardware validation is still pending; setup warns and the registry marks the device as needing testing. Cassette pitch and swap-home orientation require instrument-specific calibration. Inventory and recovery records are in memory; serialization and an independently tracked second transfer route are not supported.