Files
StreamGenerator/README.md
Edward Wall 2bfde8c1c6
Some checks failed
Test And Build / Lint (push) Failing after 3s
Test And Build / Build (push) Failing after 3s
adds some documentation and fixes compiler warning
2025-11-24 11:12:16 +01:00

1.9 KiB

StreamGenerator

The StreamGenerator, is an Epics module that almost completely implements the same interface as the sinqDAQ Epics module, as an attempt to maintain a consistent interface across all our data acquisition systems. Sitting behind the interface, however, is different electronics and firmware, specifically, a multi-readout module "Correlation Unit" system, which was developed at MLZ.

Correlation Unit Documentation

The UDP based interface, as well as many other specifics of the detector system are described in the first file, and within the doc directory of the qmesydaq repository.

Retrieving Code

Clone the repository to a local directory via:

git clone --recurse-submodules -j8 git@gitea.psi.ch:lin-epics-modules/StreamGenerator.git

Dependencies

Currently, this project requires a system install of librdkafka. On Redhat, this means you should run:

dnf install -y librdkafka-devel

Additionally, you must first build Google's flatbuffers and ESS's streaming-data-types libraries, which are both included in this project as submodules under the dep directory and which are both necessary to build this project.

First, you should enter the flatbuffers directory and run the following:

cmake -G "Unix Makefiles"
make -j

After these steps, you will find the program flatc has been built and placed in the directory.

Next, you should return to the top of this project's directory tree, and create the flatbuffers from ESS's schema files. This you can do as follows:

./dep/flatbuffers/flatc -o schemas/ --cpp --gen-mutable --gen-name-strings --scoped-enums ./dep/streaming-data-types/schemas/*

This generates header files from each of ESS's schemas and places them in a schemas directory.