Author: Auger-Williams, R.J.
Paper Title Page
MO4BCO02 Lessons from Using Python GraphQL Libraries to Develop an EPICS PV Server for Web UIs 191
 
  • R.J. Auger-Williams
    OSL, St Ives, Cambridgeshire, United Kingdom
  • A.L. Alexander, T.M. Cobb, M.J. Gaughran, A.J. Rose, A.W.R. Wells, A.A. Wilson
    DLS, Oxfordshire, United Kingdom
 
  Diamond Light Source is currently developing a web-based EPICS control system User Interface (UI). This will replace the use of EDM and the Eclipse-based CS-Studio at Diamond, and it will integrate with future Acquisition and Analysis software. For interoperability, it will use the Phoebus BOB file format. The architecture consists of a back-end application using EPICS Python libraries to obtain PV data and the query language GraphQL to serve these data to a React-based front end. A prototype was made in 2021, and we are now doing further development from the prototype to meet the first use cases. Our current work focuses on the back-end application, Coniql, and for the query interface we have selected the Strawberry GraphQL implementation from the many GraphQL libraries available. We discuss the reasons for this decision, highlight the issues that arose with GraphQL, and outline our solutions. We also demonstrate how well these libraries perform within the context of the EPICS web UI requirements using a set of performance metrics. Finally, we provide a summary of our development plans.  
slides icon Slides MO4BCO02 [4.243 MB]  
DOI • reference for this paper ※ doi:10.18429/JACoW-ICALEPCS2023-MO4BCO02  
About • Received ※ 29 September 2023 — Accepted ※ 13 October 2023 — Issued ※ 20 October 2023  
Cite • reference for this paper using ※ BibTeX, ※ LaTeX, ※ Text/Word, ※ RIS, ※ EndNote (xml)  
 
TH1BCO03 The Tango Controls Collaboration Status in 2023 1100
 
  • T. Juerges
    SKAO, Macclesfield, United Kingdom
  • G. Abeillé
    SOLEIL, Gif-sur-Yvette, France
  • R.J. Auger-Williams
    OSL, St Ives, Cambridgeshire, United Kingdom
  • B. Bertrand, V. Hardion, A.F. Joubert
    MAX IV Laboratory, Lund University, Lund, Sweden
  • R. Bourtembourg, A. Götz, D. Lacoste, N. Leclercq
    ESRF, Grenoble, France
  • T. Braun
    byte physics, Annaburg, Germany
  • G. Cuní, C. Pascual-Izarra, S. Rubio-Manrique
    ALBA-CELLS, Cerdanyola del Vallès, Spain
  • Yu. Matveev
    DESY, Hamburg, Germany
  • M. Nabywaniec, T.R. Noga, Ł. Żytniak
    S2Innovation, Kraków, Poland
  • L. Pivetta
    Elettra-Sincrotrone Trieste S.C.p.A., Basovizza, Italy
 
  Since 2021 the Tango Controls collaboration has improved and optimised its efforts in many areas. Not only have Special Interest Group meetings (SIGs) been introduced to speed up the adoption of new technologies or improvements, the kernel has switched to a fixed six-month release cycle for quicker adoption of stable kernel versions by the community. CI/CD provides now early feedback on test failures and compatibility issues. Major code refactoring allowed for a much more efficient use of developer resources. Relevant bug fixes, improvements and new features are now adopted at a much higher rate than ever before. The community participation has also noticeably improved. The kernel switched to C++14 and the logging system is undergoing a major refactoring. Among many new features and tools is jupyTango, Jupyter Notebooks on Tango Controls steroids. PyTango is now easy to install via binary wheels, old Python versions are no longer supported, the build-system is switching to CMake, and releases are now made much closer to stable cppTango releases.  
slides icon Slides TH1BCO03 [1.357 MB]  
DOI • reference for this paper ※ doi:10.18429/JACoW-ICALEPCS2023-TH1BCO03  
About • Received ※ 05 October 2023 — Revised ※ 24 October 2023 — Accepted ※ 21 November 2023 — Issued ※ 13 December 2023
Cite • reference for this paper using ※ BibTeX, ※ LaTeX, ※ Text/Word, ※ RIS, ※ EndNote (xml)