tdaq is a toolkit to create distributed DAQ systems, over TCP/IP.
$> go get github.com/go-daq/tdaq/... 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:
