Introduction

DAQling is an open-source lightweight C++ software framework, to be used as core for data acquisition systems of small and medium-sized experiments.

The framework offers a complete DAQ ecosystem, including communication layer with a selection of back-ends (including the widespread ZeroMQ messaging library), configuration management based on the JSON format, control of distributed applications based on Python, extendable operational monitoring with web-based visualization, and a set of generic utilities.

The framework provides automated host and build environment setup based on the Ansible automation tool. Finally, the end-user code is wrapped in so-called “Modules”, that can be loaded at configuration time, and implement specific roles according to the data flow of the experiment.

Project overview

DAQling can be cloned from https://gitlab.cern.ch/ep-dt-di/daq/daqling.

DAQling_top is the top-level skeleton project, which includes DAQling as a git submodule. It should be forked to start a custom project. Setting up the "repository mirroring", will allow the forked project to keep the dist-master branch up-to-date with DAQling_top.
It can be found at https://gitlab.cern.ch/ep-dt-di/daq/daqling_top.

Getting started

The framework is supported on Alma Linux 9. Host configuration and build instructions can be found in the DAQling README.md file.

Instructions on how to run a demo or custom system are also present in the DAQling README.md file.

DAQling-based experiments

The FASER experiment's DAQ system is based on DAQling. You can find their code at https://gitlab.cern.ch/faser/online/faser-daq