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:

../_images/doocspie_sphinx.png

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.