Categorygithub.com/go-daq/tdaq
modulepackage
0.14.3
Repository: https://github.com/go-daq/tdaq.git
Documentation: pkg.go.dev

# README

tdaq

GitHub release Build Status 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

# 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