You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
One softioc hosts N controllers, each with its id as the verbatim PV prefix. EPICS path-to-PV mapping treats path[0] (the id) verbatim; subsequent path segments continue through snake-to-Pascal conversion. The previous EpicsIOCOptions dataclass and its pv_prefix field are removed entirely — the id is the prefix.
Scope:
EPICS CA transport adopts the multi-controller connect() signature properly: hosts all configured controllers in one softioc.
EpicsIOCOptions and its pv_prefix field deleted; demo and tests updated accordingly.
Per-transport CA id validator runs at connect() time: rejects illegal characters AND emits a clear error when the id plus longest path exceeds the EPICS 60-character PV name limit.
tests/conftest.pypv_prefix fixture migrated to id-based naming.
Extend tests/test_multi_controller.py with the EPICS-CA scenario: two controllers wire into one IOC with distinct PV prefixes and no clash.
CA transport test gains a per-transport id-validation case demonstrating the fail-fast behaviour at connect() time.
User stories from #351 covered: 16, 17, 18, 32, 34.
Acceptance criteria
One softioc serves all configured controllers; each controller's PVs appear under its verbatim id
Parent
#351
What to build
One softioc hosts N controllers, each with its
idas the verbatim PV prefix. EPICS path-to-PV mapping treatspath[0](the id) verbatim; subsequent path segments continue through snake-to-Pascal conversion. The previousEpicsIOCOptionsdataclass and itspv_prefixfield are removed entirely — the id is the prefix.Scope:
connect()signature properly: hosts all configured controllers in one softioc.prefixparameter to the PV-prefix utility is removed.EpicsIOCOptionsand itspv_prefixfield deleted; demo and tests updated accordingly.connect()time: rejects illegal characters AND emits a clear error when the id plus longest path exceeds the EPICS 60-character PV name limit.tests/conftest.pypv_prefixfixture migrated to id-based naming.tests/test_multi_controller.pywith the EPICS-CA scenario: two controllers wire into one IOC with distinct PV prefixes and no clash.connect()time.User stories from #351 covered: 16, 17, 18, 32, 34.
Acceptance criteria
prefixparameter removedEpicsIOCOptions.pv_prefixremoved; no callers remainconftest.pv_prefixfixture migrated to id-based namingtests/test_multi_controller.pycovers the two-IOC-no-clash scenario over CABlocked by