1. Beyond the EPICS: comprehensive Python IOC development with QueueIOC
- Author
-
Li, Peng-Cheng, Bi, Xiao-Xue, Huang, Ying-Ke, Zhang, Dian-Shuai, Deng, Xiao-Bao, Zhang, Qun, Lei, Ge, Li, Gang, and Liu, Yu
- Subjects
Physics - Instrumentation and Detectors ,High Energy Physics - Experiment - Abstract
Architectural deficiencies in EPICS lead to inefficiency in the development and application of EPICS input/output controllers (IOCs). An unintrusive solution is replacing EPICS IOCs with more maintainable and flexible Python IOCs, only reusing the Channel Access (CA) protocol of EPICS. After a digression about GUI development inspired by EPICS operator interfaces (OPIs), the structural similarity between standalone GUI backends, the Mamba backend, EPICS IOCs and other server programs is analysed. By combining the caproto library and event loops like those in these server programs, the QueueIOC framework for Python IOCs is created, which has the potential to systematically replace most EPICS IOCs currently used. Examples are first given for workalikes of StreamDevice and asyn; examples for seq-like applications include monochromators, motor anti-bumping and motor multiplexing. Also shown is software to use with the ~/iocBoot convention which addresses some issues with a similar solution based on procServ, along with a workalike of procServControl. A QueueIOC-based framework for detector integration, which overcomes areaDetector's limitations in performance and architecture, is presented in an accompanying paper., Comment: 14 pages, 8 figures
- Published
- 2024