The Distributed Object-Oriented Control System - DOOCS - provides a versatile software framework for creating accelerator-based control system applications. These can range from monitoring simple temperature sensors up to high-level controls and feedbacks of beam parameters as required for complex accelerator operations.
DOOCS is based on an distributed client-server architecture combined with a device-oriented view. The devices are the basic entities and can be virtual i.e. implemented in software or real ones with hardware attached. Each control system parameter is made accessible via network calls through a device application.
Its transportation layer is based on the standardized, industrial RPC protocol and allows for a robust and efficient data transfer. Support for integrating a timing system providing clock, trigger and other time-based accelerator information is built-in into the core software and comfortably accessible within the framework.
The DOOCS framework is written in C++ and supports a variety of fieldbus and hardware interfaces via device classes. These are accessible through additional libraries which can be linked as needed individually to the server core library. Libraries for creating client applications in C++, Java, Python or MATLAB are available either as a separate implementation or as C-bindings. Support for high-level controls as required for particle accelerator operations are provided as individual sets of libraries.
The graphical user interface is implemented as a lightweight, yet powerful Java application: the Java DOOCS Data Display - JDDD. The interface follows a thin-client approach with a functional and rich set of widgets. Individual UI components can be easily created through a versatile editor IDE without the knowledge of any programming language.
DOOCS is open-source code and freely available for usage under the GNU Lesser General Public License version 2.1.
How to create your own accelerator control applications using the DOOCS framework can be found in the DOOCS developer's manual:
How to create your own control system user interfaces for the DOOCS framework using the JDDD editor and runtime engine is available in the JDDD user's manual:
Core and interface libraries are publically accessible through a Git repository complemented with examples for server applications and some generic solutions for accelerator control software.
If you'd like to contact us ...
... send us an email at
... or join our developer mailing list for discussion