Skip to content
/ abcd Public

ABCD is a distributed Data Acquisition system (DAQ), in which a different process is assigned to each task of the system ( e.g. data acquisition, analysis, HV management...).

License

Notifications You must be signed in to change notification settings

ec-jrc/abcd

Repository files navigation

ABCD: Acquisition and Broadcast of Collected Data

ABCD is a distributed Data Acquisition (DAQ) framework, in which each task related to the DAQ runs in a separate process (e.g. data acquisition, hardware management, data processing, analysis,...). Its main application is the acquisition of data from signal digitizers in Nuclear Physics experiments. The system is composed of a set of simple modules that exchange information through dedicated communication sockets. ABCD supports the acquisition from various signal digitizers from different vendors (e.g. CAEN, SP Devices, Red Pitaya, and Digilent). The user interface is implemented as a web-service and can be accessed with a regular web browser.

The official documentation and tutorial reside at: https://abcd-docs.readthedocs.io/

Compilation and installation

Use CMake to build and install ABCD:

cmake -S . -B build
cmake --build build --parallel 8
sudo cmake --install build

If doing a manual instal with cmake --install ... then ldconfig should be launched after the installation. ldconfig configures the cache of the system-wide libraries, so that the waan libraries can be located by waan.

Modules interfacing with hardware are not built by default, as they depend on specific vendors' libraries. To compile the specific modules use the -D BUILD_<MODULE>=ON option in the configuration phase, as in:

cmake -S . -B build -D BUILD_ABSP=ON -D BUILD_ABCD=ON
cmake --build build --parallel 8
sudo cmake --install build

Ubuntu package(s) generation and installation

An Ubuntu package may be generated with CMake and CPack. The default prefix for CMake on UNIX platforms is /usr/local, but it should be changed to /usr at the configuration phase to generate a proper deb package. Some scripts need to be configured with the proper prefix and this is done at the configuration phase. There is no need to run ldconfig after the installation, as it is automatically run by the postinst script of the deb package.

To generate and install the deb package:

cmake -S . -B build --install-prefix /usr
cmake --build build --parallel 8
cd build/
cpack
sudo dpkg -i abcd-core-...

Hardware interfacing modules need to be explicitly enabled as in the standard build. If enabled, separate packages are generated for each hardware module, as in:

cmake -S . -B build -D BUILD_ABSP=ON -D BUILD_ABCD=ON --install-prefix /usr
cmake --build build --parallel 8
cd build/
cpack
sudo dpkg -i abcd-core-...
sudo dpkg -i abcd-absp-...
sudo dpkg -i abcd-abcd-...

If there were some missing packages on which ABCD depends on, install them with:

sudo apt install --fix-broken

About

ABCD is a distributed Data Acquisition system (DAQ), in which a different process is assigned to each task of the system ( e.g. data acquisition, analysis, HV management...).

Resources

License

Stars

Watchers

Forks

Packages

No packages published