RDI Live is a project for live aggregation and display of streaming data. It was built as an internal development tool and uses proio streams gathered continuously from radiation detectors.
This material is based upon work supported by the U.S. Department of Energy, Office of Science, Nuclear Physics program office under Award Number DE-SC0015136.
The tools include the main
- Install the Go compiler toolchain (version 1.11 or newer) from https://golang.org/dl/.
go getthe tools directory recursively
go get github.com/rditech/rdi-live/tools/...
RDI Live uses Protobuf for (de)serialization of event data. Additionally, Protobuf is used to store detector mappings, or metadata that is used to related data streams to things like physical layout and calibration. Finally, Protobuf is used for "slow data", or data that are slowly changing compared to events, and passed along in the proio streams as stream metadata. See, e.g., https://godoc.org/github.com/proio-org/go-proio#Reader and arXiv:1812.03967).
The Protobuf files that describe the data models for these data are stored
proto directory. Also, Protobuf binaries used for storing detector
mappings are located in the
detmap directory. These files are generated
elsewhere. If changes are made to the Protobuf data model files in
the generated source in
model must be regenerated using
go generate. This
protoc command to be installed on your system, as well as a go
Protobuf compiler plugin.
Executable binaries like
rdi-live are intended to be completely
self-contained. To that end, binaries like detector mappings and web data are
packaged into the executables using
Packr. This tool encodes data in certain
directories in this repository into source code that gets compiled into
executables when necessary. For example, Packr is instructed to pack the web
data into source code
resulting in the autogenerated file
This makes a highly portable executable, but it also means that any time web
data or detector mappings are changed, Packr must be called to regenerate
source code with the new data packed in. This can be by first installing the
packr tool, and then running
in the root directory of the repository.
There is no documentation for this package.