EpicsPvServer

For conceptual protocol usage, see:

class pyrogue.protocols.epicsV7.EpicsPvServer(*, base, root, incGroups=None, excGroups=None, pvMap=None)[source]

EPICS PV server that exposes PyRogue variables as EPICS process variables.

Uses pythonSoftIOC (softioc) to serve variables from a PyRogue tree over the EPICS CA/PVA protocol. Records are updated when PyRogue variable listeners fire (e.g. via auto-polling or explicit reads); softioc does not invoke a Python callback on client caget/ctxt.get().

Parameters:
  • base (str) – Base string prepended to PV names (device name for SetDeviceName).

  • root (pyrogue.Root) – PyRogue root node containing variables to expose.

  • incGroups (str | list[str] | None, optional) – Include only variables in these groups.

  • excGroups (str | list[str] | None, optional) – Exclude variables in these groups. Defaults to [‘NoServe’].

  • pvMap (dict[str, str] | None, optional) – Explicit rogue_path-to-EPICS_name mapping. If None, all variables passing incGroups/excGroups filter are auto-mapped.

list()[source]

Get the PyRogue path to EPICS PV name mapping.

Returns:

Mapping of variable paths to EPICS PV names.

Return type:

dict

dump(fname=None)[source]

Print or write the PV mapping to file.

For PVs whose CA record name was hashed (name exceeded 60 chars), an annotation showing the CA short name is appended.

Parameters:

fname (str, optional) – If provided, write mapping to this file; otherwise print to stdout.

Return type:

None