Beyond the EPICS: comprehensive Python IOC development with QueueIOC
Fuente:
arXiv
Guardado en:
| Autores principales: | , , , , , , , , |
|---|---|
| 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 |