Beyond the EPICS: comprehensive Python IOC development with QueueIOC

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Li, Peng-Cheng, Bi, Xiao-Xue, Huang, Ying-Ke, Zhang, Dian-Shuai, Deng, Xiao-Bao, Zhang, Qun, Lei, Ge, Li, Gang, Liu, Yu
Formato: Preprint
Publicado: 2024
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866911513219956736
author Li, Peng-Cheng
Bi, Xiao-Xue
Huang, Ying-Ke
Zhang, Dian-Shuai
Deng, Xiao-Bao
Zhang, Qun
Lei, Ge
Li, Gang
Liu, Yu
author_facet Li, Peng-Cheng
Bi, Xiao-Xue
Huang, Ying-Ke
Zhang, Dian-Shuai
Deng, Xiao-Bao
Zhang, Qun
Lei, Ge
Li, Gang
Liu, Yu
contents Background and Purpose: Architectural deficiencies in EPICS lead to inefficiency in the development and application of EPICS IOCs. An unintrusive solution is replacing EPICS IOCs with more maintainable and flexible Python IOCs, only reusing the CA protocol of EPICS. While there are libraries like caproto and PCASPy that help to create Python IOCs, they still feel insufficient for more complex requirements. Methods: Noticing caput, caget and camonitor are just specialised combinations of requests/replies and notifications in client-server communication, by combining barebone caproto and event loops like those in server-like programs, the QueueIOC framework for Python IOCs is created, which has the potential to systematically reduce the development and maintenance cost of IOCs. Results: Examples based on QueueIOC are first given for workalikes of StreamDevice and asyn; also given are examples for "sequencer" applications, like those based on seq, include monochromators, motor anti-bumping and motor multiplexing. A QueueIOC-based framework for detector integration is presented in an accompanying paper. Also reported is a simple but expressive architecture for GUIs, as well as software to use with the ~/iocBoot convention which addresses some issues we find with a similar solution based on procServ.
format Preprint
id arxiv_https___arxiv_org_abs_2411_01258
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Beyond the EPICS: comprehensive Python IOC development with QueueIOC
Li, Peng-Cheng
Bi, Xiao-Xue
Huang, Ying-Ke
Zhang, Dian-Shuai
Deng, Xiao-Bao
Zhang, Qun
Lei, Ge
Li, Gang
Liu, Yu
Instrumentation and Detectors
High Energy Physics - Experiment
Background and Purpose: Architectural deficiencies in EPICS lead to inefficiency in the development and application of EPICS IOCs. An unintrusive solution is replacing EPICS IOCs with more maintainable and flexible Python IOCs, only reusing the CA protocol of EPICS. While there are libraries like caproto and PCASPy that help to create Python IOCs, they still feel insufficient for more complex requirements. Methods: Noticing caput, caget and camonitor are just specialised combinations of requests/replies and notifications in client-server communication, by combining barebone caproto and event loops like those in server-like programs, the QueueIOC framework for Python IOCs is created, which has the potential to systematically reduce the development and maintenance cost of IOCs. Results: Examples based on QueueIOC are first given for workalikes of StreamDevice and asyn; also given are examples for "sequencer" applications, like those based on seq, include monochromators, motor anti-bumping and motor multiplexing. A QueueIOC-based framework for detector integration is presented in an accompanying paper. Also reported is a simple but expressive architecture for GUIs, as well as software to use with the ~/iocBoot convention which addresses some issues we find with a similar solution based on procServ.
title Beyond the EPICS: comprehensive Python IOC development with QueueIOC
topic Instrumentation and Detectors
High Energy Physics - Experiment
url https://arxiv.org/abs/2411.01258