EPICS V4 Access
EPICS-facing protocol integration in Rogue and PyRogue is built around serving selected PyRogue Variables into an EPICS V4 namespace.
Use these pages for conceptual behavior and integration patterns. API object details remain in the Python API reference.
How The EPICS Integration Is Structured
The EPICS V4 integration has two primary components:
EpicsPvServerscans the running PyRogue tree, selects Variables to expose, and creates the EPICS PV namespace.EpicsPvHolderrepresents one served PV and handles value updates, type mapping, and EPICS put/rpc behavior for its bound Variable or Command.
In practice, EpicsPvServer owns many EpicsPvHolder instances.
Typical Workflow
Start a PyRogue
Rootand ensure Variables are tagged with the intended include and exclude groups.Create
EpicsPvServer(base=..., root=..., incGroups=..., excGroups=..., pvMap=...).Register it with the
Rootprotocol lifecycle and inspect the resulting mapping withlist()ordump().Validate end-to-end behavior with an EPICS client.
Group Filtering
Variable exposure is controlled by normal PyRogue group filtering.
incGroups includes only matching Variables when it is set, and
excGroups excludes matching Variables. The default exclusion list includes
NoServe, which lets one tree support multiple deployments while exposing
only the intended EPICS PV surface.
For group semantics and filtering behavior in the tree model, see Groups.
Subtopics
Server setup and PV mapping details: Epics PV Server Protocol
Per-variable publication behavior: Epics PV Holder Protocol