Hi all,
I wanted to share a project that may be interesting to people working with EPICS, PVXS, acquisition scripts, or higher-level control-system automation.
The project is called rx-controls-suite:
https://urldefense.us/v3/__https://github.com/scientific-software-hub/rx-controls-suite__;!!G_uCfscf7eWS!dLLG5g5HnbbiJvQpn7Sq75aLLC5Lgx6AgUJF_Ccg4Z_wpdj6XUk9hDjeUcQ33aGbZtWw4kXOrNFbSDl6gMbOGm-wBtCFyqIQ$
The basic idea is to express common control-system tasks as reactive streams and reusable recipes.
For example:
poll or monitor a value;
combine several values into one snapshot;
react to fault conditions;
apply quality flags;
share one health stream with multiple consumers;
build acquisition or middleware logic as a pipeline.
The suite originally grew from Tango-related work, but the goal is explicitly cross-platform: the same ReactiveX-style operator vocabulary across different control systems and languages.
I have now added a C++ EPICS and Python subprojects:
RxEpics/cpp
RxEpics/python
It wraps EPICS/PVXS concepts as rxcpp::observable<T> streams, aligned with the existing Python design. There is also a corresponding RxTango/cpp side, because one of the long-term goals is to express cross-SCADA recipes using the same vocabulary on both sides.
The motivation is not to replace existing EPICS tools. It is to explore whether some recurring automation patterns can be made more explicit and reusable, instead of being reimplemented each time with custom loops, callbacks, buffers, timestamp matching, and error-handling glue.
I recently presented the broader idea at the Tango Users Group Meeting 2026, using a demo that combines a simulated Tango storage ring and an EPICS beamline in one Python process:
https://urldefense.us/v3/__https://www.youtube.com/watch?v=9CyGPIwJlxc__;!!G_uCfscf7eWS!dLLG5g5HnbbiJvQpn7Sq75aLLC5Lgx6AgUJF_Ccg4Z_wpdj6XUk9hDjeUcQ33aGbZtWw4kXOrNFbSDl6gMbOGm-wBjncTtBQ$
I would appreciate feedback from the EPICS community, especially around the C++/PVXS direction:
Does a ReactiveX-style layer around EPICS/PVXS sound useful?
Are there existing EPICS patterns or tools this should align with?
Which recurring EPICS automation recipe would be a good first serious example?
Best regards,
Igor Khokhriakov
- Navigate by Date:
- Prev:
Re: Problems with Dante (XGLab) Driver Mark Rivers via Tech-talk
- Next:
Re: Problems with Dante (XGLab) Driver Dariush Hampai via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
<2026>
- Navigate by Thread:
- Prev:
Epicsarchiver-mgmt-client Sky Brewer via Tech-talk
- Next:
2026 white paper on EPICS vs commercial SCADA software Evans, Richard K. (GRC-H000) via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
<2026>
|