# README
tdaq
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:
# Packages
No description provided by the author
Package config.
Package flags provides an easy creation of standard tdaq flag parameters for tdaq processes.
No description provided by the author
Package job provides a high-level API to create and schedule a pool of run-ctl and tdaq servers together.
Package log provides routines for logging messages.
Package xdaq provides components for filtering and exercizing TDAQ sequences.
# Functions
No description provided by the author
NewDecoder creates a new decoder connected to the provided io.Reader.
NewEncoder creates a new encoder, connected to the provided io.Writer.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Constants
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Structs
No description provided by the author
No description provided by the author
No description provided by the author
Decoder decodes values from the underlying io.Reader, according to the TDAQ wire protocol.
Encoder encodes values to the underlying io.Writer, according to the TDAQ wire protocol.
No description provided by the author
No description provided by the author
Frame is the datum being exchanged between tdaq processes.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Interfaces
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Type aliases
No description provided by the author
CmdType describes the type of a command frame.
FrameType describes the type of a Frame.
No description provided by the author
No description provided by the author
No description provided by the author