DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
listrev
python
listrev
listrevapp_gen.py
Go to the documentation of this file.
1
# This module facilitates the generation of WIB modules within WIB apps
2
3
# Set moo schema search path
4
from
dunedaq.env
import
get_moo_model_path
5
import
moo.io
6
7
moo.io.default_load_path = get_moo_model_path()
8
9
# Load configuration types
10
import
moo.otypes
11
12
moo.otypes.load_types(
"listrev/listreverser.jsonnet"
)
13
moo.otypes.load_types(
"listrev/randomdatalistgenerator.jsonnet"
)
14
moo.otypes.load_types(
"listrev/reversedlistvalidator.jsonnet"
)
15
16
# Import new types
17
import
dunedaq.listrev.listreverser
as
lr
18
import
dunedaq.listrev.randomdatalistgenerator
as
rlg
19
import
dunedaq.listrev.reversedlistvalidator
as
rlv
20
21
22
from
daqconf.core.app
import
App, ModuleGraph
23
from
daqconf.core.daqmodule
import
DAQModule
24
from
daqconf.core.conf_utils
import
Endpoint, Direction
25
26
# ===============================================================================
27
def
get_listrev_app
(
28
nickname,
29
host="localhost",
30
n_wait_ms=100,
31
request_timeout_ms=1000,
32
request_rate_hz=10,
33
generator_indicies=[],
34
reverser_indicies=[],
35
has_validator=False,
36
n_generators=1,
37
n_reversers=1,
38
n_ints_min=50,
39
n_ints_max=200,
40
n_reqs=100,
41
):
42
"""
43
Here an entire application is generated.
44
"""
45
# Define modules
46
47
modules = []
48
49
modules += [
50
DAQModule(
51
name=f
"rdlg{gidx}"
,
52
plugin=
"RandomDataListGenerator"
,
53
conf=rlg.ConfParams(send_timeout_ms=n_wait_ms, request_timeout_ms=request_timeout_ms, generator_id=gidx),
54
)
for
gidx
in
generator_indicies
55
]
56
57
modules += [
58
DAQModule(
59
name=f
"lr{ridx}"
,
60
plugin=
"ListReverser"
,
61
conf=lr.ConfParams(
62
send_timeout_ms=n_wait_ms,
63
request_timeout_ms=request_timeout_ms,
64
num_generators=n_generators,
65
reverser_id=ridx
66
),
67
)
for
ridx
in
reverser_indicies
68
]
69
70
if
has_validator:
71
modules += [
72
DAQModule(
73
name=
"lrv"
,
74
plugin=
"ReversedListValidator"
,
75
conf=rlv.ConfParams(
76
send_timeout_ms=n_wait_ms,
77
request_timeout_ms=request_timeout_ms,
78
request_rate_hz=request_rate_hz,
79
max_outstanding_requests=n_reqs,
80
num_reversers=n_reversers,
81
num_generators=n_generators,
82
min_list_size=n_ints_min,
83
max_list_size=n_ints_max
84
),
85
)
86
]
87
88
mgraph = ModuleGraph(modules)
89
90
for
gidx
in
generator_indicies:
91
for
ridx
in
range(n_reversers):
92
mgraph.add_endpoint(f
"lr{ridx}_list_connection"
, f
"rdlg{gidx}.q{ridx}"
,
"IntList"
, Direction.OUT)
93
mgraph.add_endpoint(
94
f
"rdlg{gidx}_request_connection"
,
95
f
"rdlg{gidx}.request_input"
,
96
"RequestList"
,
97
Direction.IN
98
)
99
mgraph.add_endpoint(f
"creates"
, f
"rdlg{gidx}.create_input"
,
"CreateList"
, Direction.IN, is_pubsub=
True
, toposort=
False
)
100
101
for
ridx
in
reverser_indicies:
102
mgraph.add_endpoint(f
"lr{ridx}_list_connection"
, f
"lr{ridx}.list_input"
,
"IntList"
, Direction.IN)
103
mgraph.add_endpoint(f
"validator_list_connection"
, f
"lr{ridx}.output"
,
"ReversedList"
, Direction.OUT)
104
mgraph.add_endpoint(
105
f
"lr{ridx}_request_connection"
,
106
f
"lr{ridx}.request_input"
,
107
"RequestList"
,
108
Direction.IN
109
)
110
111
for
gidx
in
range(n_generators):
112
mgraph.add_endpoint(f
"rdlg{gidx}_request_connection"
, f
"lr{ridx}.request_output_{gidx}"
,
"RequestList"
, Direction.OUT)
113
114
if
has_validator:
115
mgraph.add_endpoint(
"validator_list_connection"
,
"lrv.list_input"
,
"ReversedList"
, Direction.IN)
116
for
ridx
in
range(n_reversers):
117
mgraph.add_endpoint(
118
f
"lr{ridx}_request_connection"
,
119
f
"lrv.request_output_{ridx}"
,
120
"RequestList"
,
121
Direction.OUT
122
)
123
mgraph.add_endpoint(f
"creates"
,
"lrv.creates_out"
,
"CreateList"
, Direction.OUT, is_pubsub=
True
, toposort=
False
)
124
125
lr_app = App(modulegraph=mgraph, host=host, name=nickname)
126
127
return
lr_app
dunedaq.env
Definition
env.py:1
listrev.listrevapp_gen.get_listrev_app
get_listrev_app(nickname, host="localhost", n_wait_ms=100, request_timeout_ms=1000, request_rate_hz=10, generator_indicies=[], reverser_indicies=[], has_validator=False, n_generators=1, n_reversers=1, n_ints_min=50, n_ints_max=200, n_reqs=100)
Definition
listrevapp_gen.py:41
Generated on
for DUNE-DAQ by
1.17.0