60 lines
1.9 KiB
Markdown
60 lines
1.9 KiB
Markdown
# StreamGenerator
|
|
|
|
The StreamGenerator, is an Epics module that almost completely implements the
|
|
same interface as the [sinqDAQ](https://gitea.psi.ch/lin-epics-modules/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.
|
|
|
|
- [20220608\_ErwiN\_Detector.pdf](./docs/20220608_ErwiN_Detector.pdf)
|
|
- [qmesydaq/doc](https://gitea.psi.ch/lin-controls/qmesydaq/src/branch/master/doc/)
|
|
|
|
## 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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
./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.
|