Skip to content
This repository was archived by the owner on Jul 2, 2024. It is now read-only.

go-daq/tdaq

Repository files navigation

tdaq

GitHub release CI codecov Go Report Card GoDoc License DOI

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:

web-ui