[Add] Event data capture and CLI only fylgje for headless use
-
During recent detector tests on BIFROST it became obvious that only creating histograms from AR51 data samples would not be sufficient in all cases, and that diagnostic needs will sometimes require extracting the event data and storing it directly to file.
-
This commit breaks the DataManager monolith into more-specialized parts. An EventManager accepts CAEN formatted event data, optionally stores that to an internal registry for later file output, and provides the data to a PixelManager, for EFU-equivalent pixel identification, and a HistogramManager, for creating the different visualization histograms which fylgje can display.
-
The Pixel and Histogram managers are optional properties of the EventManager, so a more-lightweight runtime can be achieved by not instantiating these.
-
Only those parts which are present and store data will write-out information to HDF5 files.
-
Command line switches are added to allow a user to specify which of the outputs they would like to store in any generated file.
-
The command line interface has been updated to allow specifying the message time range, and output file name directly.
-
The consumer has been modified to better support setting the time range directly, and functionality has been added aimed at ensuring the correct time units (milliseconds since UTC epoch) are always used with the Kafka messages.
-
Qt dependencies mean that the GUI variant of
fylgjecan not be used over a (headless) ssh connection. -
The base command line interface now uses
argsfor argument parsing and all Qt dependencies are moved into GUI.h, GUI.cpp, etc., so that two different CMake targets can be built with and without Qt (fylgjeandfylgje-cli, respectively). -
The CLI only interface is accessible from either binary, but requires an extra flag (-x, --cli). It collects data between given time points or a time-point and preceding or following duration, and saves the collected data to the specified filename.
-
A command line option -l or --license allows access to license information for
fylgje/daqliteand libraries that it uses. -
A user specifies which license they want along with the flag, which allows retrieving the license for, e.g.,
args, without any ambiguity.