Part of the tutorial examples (#388). The composition & methods example — sub-controllers / ControllerVector, @scan, @command — on the temperature backend.
(Formerly "the io= pattern"; io= objects are gone, replaced by getter/setter callables, so there is nothing to "factor into". This module's role is now composition, and it is walked as part of the declarative tutorial — see #405 / #408. It is not its own tutorial.)
Scope
Acceptance
uv run --locked tox -e pre-commit,type-checking,tests green.
ADR: 0014
Priority: build this baseline before the framework issues.
Parent: #388
Blocked by: none
Part of the tutorial examples (#388). The composition & methods example — sub-controllers /
ControllerVector,@scan,@command— on the temperature backend.(Formerly "the
io=pattern";io=objects are gone, replaced by getter/setter callables, so there is nothing to "factor into". This module's role is now composition, and it is walked as part of the declarative tutorial — see #405 / #408. It is not its own tutorial.)Scope
src/fastcs/demo/controllers.pyin place (the demo temperature controller): multiple ramp sub-controllers in aControllerVector, a voltage-distributing@scan, and a cancel-all@command. IO isgetter/settercallables.Float(...),io_ref=...).AttrRW(float, precision=3, getter=…, setter=…)— migrated by getter/setter IO rework; remove AttributeIORef and DataType #392.Acceptance
uv run --locked tox -e pre-commit,type-checking,testsgreen.ADR: 0014
Priority: build this baseline before the framework issues.
Parent: #388
Blocked by: none