https://github.com/go-daq/tdaq
tdaq: a toolkit for building DAQ systems
https://github.com/go-daq/tdaq
daq data-acquisition golang hep particle-physics
Last synced: 5 months ago
JSON representation
tdaq: a toolkit for building DAQ systems
- Host: GitHub
- URL: https://github.com/go-daq/tdaq
- Owner: go-daq
- License: bsd-3-clause
- Created: 2019-09-05T17:32:54.000Z (almost 7 years ago)
- Default Branch: main
- Last Pushed: 2023-10-20T09:46:13.000Z (over 2 years ago)
- Last Synced: 2024-06-21T14:21:51.590Z (almost 2 years ago)
- Topics: daq, data-acquisition, golang, hep, particle-physics
- Language: Go
- Homepage:
- Size: 377 KB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# tdaq
[](https://github.com/go-daq/tdaq/releases)
[](https://github.com/go-daq/tdaq/actions)
[](https://codecov.io/gh/go-daq/tdaq)
[](https://goreportcard.com/report/github.com/go-daq/tdaq)
[](https://godoc.org/github.com/go-daq/tdaq)
[](https://github.com/go-daq/tdaq/license)
[](https://zenodo.org/badge/latestdoi/206621458)
`tdaq` is a toolkit to create distributed DAQ systems, over TCP/IP.
## Installation
```
$> go get github.com/go-daq/tdaq/...
```
## Example
In a terminal, launch the `run-control`:
```
$> tdaq-runctl -web=:8080 -i -lvl dbg
tdaq-runctl INFO listening on ":44000"...
::::::::::::::::::::::::::
::: RunControl shell :::
::::::::::::::::::::::::::
- /config -> configure tdaq processes
- /init -> initialize tdaq processes
- /run -> start a new run
- /stop -> stop current run
- /reset -> reset tdaq processes
- /status -> display status of all tdaq processes
- /quit -> terminate tdaq processes (and quit)
tdaq-runctl INFO waiting for commands...
tdaq-runctl>>
tdaq-runctl INFO starting web run-ctl server on ":8080"...
tdaq-runctl INFO received /join from conn 127.0.0.1:44066
tdaq-runctl INFO proc: "tdaq-datasrc"
tdaq-runctl INFO - outputs:
tdaq-runctl INFO - name: "/adc"
tdaq-runctl INFO addr: "[::]:34373"
tdaq-runctl INFO received /join from conn 127.0.0.1:44112
tdaq-runctl INFO proc: "tdaq-datasink"
tdaq-runctl INFO - inputs:
tdaq-runctl INFO - name: "/adc"
tdaq-runctl>> /config
tdaq-runctl INFO /config processes...
tdaq-runctl DBG sending /config to "tdaq-datasrc"...
tdaq-runctl DBG sending /config to "tdaq-datasink"...
tdaq-runctl DBG sending /config to "tdaq-datasrc"... [ok]
tdaq-runctl DBG sending /config to "tdaq-datasink"... [ok]
tdaq-runctl>> /init
tdaq-runctl INFO /init processes...
tdaq-runctl DBG sending cmd CmdInit to "tdaq-datasrc"...
tdaq-runctl DBG sending cmd CmdInit... [ok]
tdaq-runctl DBG sending cmd CmdInit to "tdaq-datasrc"... [ok]
tdaq-runctl DBG sending cmd CmdInit to "tdaq-datasink"...
tdaq-runctl DBG sending cmd CmdInit... [ok]
tdaq-runctl DBG sending cmd CmdInit to "tdaq-datasink"... [ok]
tdaq-runctl>> /run
tdaq-runctl INFO /start processes...
tdaq-runctl DBG sending cmd CmdStart to "tdaq-datasrc"...
tdaq-runctl DBG sending cmd CmdStart... [ok]
tdaq-runctl DBG sending cmd CmdStart to "tdaq-datasrc"... [ok]
tdaq-runctl DBG sending cmd CmdStart to "tdaq-datasink"...
tdaq-runctl DBG sending cmd CmdStart... [ok]
tdaq-runctl DBG sending cmd CmdStart to "tdaq-datasink"... [ok]
tdaq-runctl>> /stop
tdaq-runctl INFO /stop processes...
tdaq-runctl DBG sending cmd CmdStop to "tdaq-datasrc"...
tdaq-runctl DBG sending cmd CmdStop... [ok]
tdaq-runctl DBG sending cmd CmdStop to "tdaq-datasrc"... [ok]
tdaq-runctl DBG sending cmd CmdStop to "tdaq-datasink"...
tdaq-runctl DBG sending cmd CmdStop... [ok]
tdaq-runctl DBG sending cmd CmdStop to "tdaq-datasink"... [ok]
tdaq-runctl>> /run
tdaq-runctl INFO /start processes...
tdaq-runctl DBG sending cmd CmdStart to "tdaq-datasrc"...
tdaq-runctl DBG sending cmd CmdStart... [ok]
tdaq-runctl DBG sending cmd CmdStart to "tdaq-datasrc"... [ok]
tdaq-runctl DBG sending cmd CmdStart to "tdaq-datasink"...
tdaq-runctl DBG sending cmd CmdStart... [ok]
tdaq-runctl DBG sending cmd CmdStart to "tdaq-datasink"... [ok]
tdaq-runctl>> /stop
tdaq-runctl INFO /stop processes...
tdaq-runctl DBG sending cmd CmdStop to "tdaq-datasink"...
tdaq-runctl DBG sending cmd CmdStop... [ok]
tdaq-runctl DBG sending cmd CmdStop to "tdaq-datasink"... [ok]
tdaq-runctl DBG sending cmd CmdStop to "tdaq-datasrc"...
tdaq-runctl DBG sending cmd CmdStop... [ok]
tdaq-runctl DBG sending cmd CmdStop to "tdaq-datasrc"... [ok]
tdaq-runctl>> /quit
tdaq-runctl INFO /quit processes...
tdaq-runctl DBG sending cmd CmdQuit to "tdaq-datasrc"...
tdaq-runctl DBG sending cmd CmdQuit... [ok]
tdaq-runctl DBG sending cmd CmdQuit to "tdaq-datasrc"... [ok]
tdaq-runctl DBG sending cmd CmdQuit to "tdaq-datasink"...
tdaq-runctl DBG sending cmd CmdQuit... [ok]
tdaq-runctl DBG sending cmd CmdQuit to "tdaq-datasink"... [ok]
tdaq-runctl INFO shutting down...
tdaq-runctl INFO closing...
```
In a second terminal, launch the `tdaq-datasrc` data producer application:
```
$> tdaq-datasrc -lvl dbg
tdaq-datasrc DBG received /config command...
tdaq-datasrc DBG received /init command...
tdaq-datasrc DBG received /start command...
tdaq-datasrc DBG received /stop command... -> n=57
tdaq-datasrc DBG received /start command...
tdaq-datasrc DBG received /stop command... -> n=457
tdaq-datasrc DBG received "/quit" command...
```
In a third terminal, launch the `tdaq-datasink` data consumer application:
```
$> tdaq-datasink -lvl dbg
tdaq-datasink DBG received /config command...
tdaq-datasink DBG received /init command...
tdaq-datasink DBG received /start command...
tdaq-datasink DBG received /stop command... -> n=57
tdaq-datasink DBG received /start command...
tdaq-datasink DBG received /stop command... -> n=457
tdaq-datasink DBG received "/quit" command...
```
One has also access to a web-based control UI for the run-ctl:
