fastcs.transports.epics.emission#

Per-controller GUI / docs file emission for the EPICS transports.

D4 of #351: each transport produces output_dir/{id}{ext} for every configured controller plus an index{ext} file linking to them. The index is always emitted – even for a single controller – so the file layout is stable as the number of controllers changes. Controllers appear in the index in the order they were declared in fastcs.yaml, which is the order in which controller_apis is passed in.

Members

GUIBuilder

Per-flavour EpicsGUI constructor (CA bare PV / PVA pva:// PV).

emit_docs_files

Write {id}.md per controller plus index.md in output_dir.

emit_gui_files

Write {id}{ext} per controller plus an index file in output_dir.

fastcs.transports.epics.emission.GUIBuilder#

Per-flavour EpicsGUI constructor (CA bare PV / PVA pva:// PV).

alias of Callable[[ControllerAPI], EpicsGUI]

fastcs.transports.epics.emission.emit_gui_files(controller_apis: list[ControllerAPI], options: EpicsGUIOptions, gui_builder: Callable[[ControllerAPI], EpicsGUI]) None[source]#

Write {id}{ext} per controller plus an index file in output_dir.

gui_builder lets each EPICS transport pick its PV-flavoured GUI builder (CA’s EpicsGUI writes bare PVs; PVA’s PvaEpicsGUI prefixes them with pva://). An index file with one DeviceRef button per controller sits at the root of output_dir regardless of how many controllers there are; controllers appear in the order they were declared in fastcs.yaml (i.e. the order of controller_apis).

fastcs.transports.epics.emission.emit_docs_files(controller_apis: list[ControllerAPI], options: EpicsDocsOptions) None[source]#

Write {id}.md per controller plus index.md in output_dir.

Each per-controller file lists the controller’s attributes and commands as a flat reference page. The index links to each one in declaration order, mirroring the GUI emission.