Speaker
Description
Beam-instrumentation workflows frequently cross control-system boundaries: machine conditions may be provided by one framework while beamline detectors and actuators are controlled by another. High-level acquisition code then tends to accumulate framework-specific polling loops, callbacks, state bookkeeping, fan-out logic, and fault-handling paths even when the underlying workflow is conceptually the same.
We present rx-controls-suite, a thin ReactiveX composition layer for scientific control systems. EPICS and Tango reads, monitors, and writes are exposed as composable streams in Python and C++, with additional Tango and TINE support in Java. A demonstrator combines a simulated Tango storage ring with an EPICS tomography beamline in one Python process. A shared beam-health stream drives shutter supervision, scan suspension and recovery after beam loss, vacuum-fault abort logic, and per-exposure quality tagging. A Bluesky bridge adapts the same streams to Status, Signal, and document-stream protocols, allowing non-EPICS machine data to participate in RunEngine orchestration without rewriting scan logic around framework-specific callbacks.
The poster discusses the architecture, ReactiveX contract testing of the C++ adapters, the boundaries of the approach, and the potential for reusable beam-instrumentation acquisition recipes across control-system frameworks.