Skip to content

v1: add star.iswap.configuration and the STARConfiguration injection container#1083

Open
BioCam wants to merge 2 commits into
PyLabRobot:v1b1from
BioCam:v1-iswap-configuration
Open

v1: add star.iswap.configuration and the STARConfiguration injection container#1083
BioCam wants to merge 2 commits into
PyLabRobot:v1b1from
BioCam:v1-iswap-configuration

Conversation

@BioCam

@BioCam BioCam commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

Establishes the per-capability configuration layer for the STAR iSWAP - the v1 equivalent of v0's iSWAPInformation - plus the device-level container for injecting it. This PR adds the configuration only; it does not change any existing command behaviour.

  • iSWAPConfiguration (iswap.py): the iSWAP's device facts (encoder resolutions, drive/speed/acceleration ranges, geometric constants) and per-machine calibration, exposed as iSWAPBackend.configuration. Per-machine fields carry Hamilton factory defaults pending EEPROM population at setup.
  • STARConfiguration (driver.py): one optional field per capability, named after the capability attribute (iswap), injected at construction via STAR/STARLet/driver and distributed to each backend as its .configuration. Injection-only (held privately); the runtime home stays star.iswap.configuration. Grows one field per capability as each gains a configuration.

Additive and behaviour-preserving: existing commands are unchanged, zero-config construction still works (factory defaults), and the chatterbox accepts a custom configuration for simulation. The full STAR test suite passes; the red CI lint/typecheck are pre-existing base breakages unrelated to this change.

🤖 Generated with Claude Code

BioCam and others added 2 commits June 10, 2026 09:03
Introduce the iSWAPConfiguration dataclass holding iSWAP device facts
(per-increment resolutions, drive/speed/acceleration ranges, geometric
constants) and per-machine calibration, exposed as
iSWAPBackend.configuration. This is the foundation the iSWAP read and
move commands depend on. Per-machine fields carry Hamilton factory
defaults pending EEPROM population at setup.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…gh the device

Introduce STARConfiguration (driver.py): one optional field per capability,
named after the capability attribute (iswap), injected at construction and
distributed to each backend as its `.configuration`. Thread it through
STARDriver, STARChatterboxDriver, and the STAR/STARLet device, replacing the
standalone chatterbox iswap kwarg. The container is injection-only (held
privately as `_configuration`); the runtime home stays `star.iswap.configuration`.
Add the iswap module docstring.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@BioCam BioCam requested a review from rickwierenga June 10, 2026 14:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant