Overview
The DOOCS Python Interface for Experiments (doocspie) library provides the basic functions for I/O operations with the DOOCS control system, as well as subpackages for recurrent tasks when performing experiments and evaluating data with Python within the context of DOOCS. General information on DOOCS, the Distributed Object-Oriented Control System Framework, can be found here: https://doocs-web.desy.de. Currently, doocspie consists of the components depicted below:
The core package provides all the low-level functionalities of pydoocs, which represents the Python bindings to
the C++ DOOCS client API. The fundamental higher level functions for I/O operations with the DOOCS control system,
including custom exceptions, are part of the doocspie package itself. The classes in the abo package allow
sophisticated synchronous readout utilizing callback functions and/or iterators. The gui package provides simplified
access to DOOCS property servers, allowing visualization with the Java DOOCS Data Display (JDDD), as well as a
scriptable graphical user interface (GUI) for custom data visualization with PyQt. For our dedicated user beamline
applications, the pyqt package offers frequently used functionalities to make the GUI code shorter and simpler. The
daq package provides means for simplified readout using DAQ monitors, and finally, the util package facilitates
solving typical tasks when analyzing data.
We aim to steadily provide the doocspie library for the latest three Python minor versions, and its Git repository can be found here: https://gitlab.desy.de/flash-python-apps-and-libs/doocspie.