-
Notifications
You must be signed in to change notification settings - Fork 13
/
readout.cfg
215 lines (166 loc) · 4.86 KB
/
readout.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
###################################
# readout configuration file
#
# comments lines start with #
# section names are in brackets []
# settings are defined with key=value pairs
###################################
###################################
# general settings
###################################
[readout]
# per-equipment data rate limit, in Hertz (-1 for unlimited)
rate=-1
# time (in seconds) after which program exits automatically (-1 for unlimited)
exitTimeout=-1
###################################
# memory banks
###################################
# All section names should start with 'bank-' to be taken into account.
# They define memory to be allocated to readout
# If bank name not specified in each equipment, the first available bank (created first) will be used.
# Types of memory banks include: malloc, MemoryMappedFile
# NB: the FairMQChannel consumers may also create some banks, which will not be
# listed here, and created before them.
[bank-default]
type=malloc
size=128M
###################################
# equipments
###################################
# All section names should start with 'equipment-' to be taken into account.
# The section parameters then depend on the selected equipmentType value
# Equipment types implemented: dummy, rorc
# dummy equipment type - random data, size 1-2 kB
# here we define 2 instances
[equipment-dummy-1]
name=dummy-1
equipmentType=dummy
enabled=1
eventMaxSize=20000
eventMinSize=10000
memoryPoolNumberOfPages=100
memoryPoolPageSize=128k
fillData=0
[equipment-dummy-2]
name=dummy-2
equipmentType=dummy
enabled=1
eventMaxSize=30000
eventMinSize=20000
memoryPoolNumberOfPages=100
memoryPoolPageSize=128k
fillData=0
# a rorc equipment using RORC module library/driver
# you need root privileges to access the device
[equipment-rorc-1]
equipmentType=rorc
enabled=0
# readout buffer size allocated in hugetlbfs
# here 256MB in pages of 2MB
# values accept suffixed valued k,M,G for kilo,mega,giga bytes
memoryBufferSize=256M
memoryPageSize=2M
# following parameter names as defined for ROC params (see ROC module)
# mandatory ROC parameters
cardId=86:00.0
# optional ROC parameters (default values shown)
#channelNumber=0
#dataSource=Internal
#linkMask=0-31
#readoutMode=CONTINUOUS
#resetLevel=INTERNAL
###################################
# data consumers
###################################
# collect data statistics
[consumer-stats]
consumerType=stats
enabled=1
# this publishes stats, if enabled, to O2 monitoring system
monitoringEnabled=1
monitoringUpdatePeriod=5
monitoringURI=infologger://
# recording to file
[consumer-rec]
consumerType=fileRecorder
enabled=0
# the fileName value defines the path of the file to be created
# it may include some runtime variables:
# ${XYZ} -> get variable XYZ from environment
# %t -> unix timestamp (seconds since epoch)
# %T -> formatted date/time string, in the form YYYY_MM_DD__h_m_s__
fileName=/tmp/data.raw
# push to fairMQ device
# currently fixed local TCP port 5555
# needs FairMQ at compile time
[consumer-fmq]
consumerType=FairMQDevice
enabled=0
[consumer-data-sampling]
consumerType=DataSampling
enabled=0
# the address to which data will be sent for the data sampling
# default : ipc:///tmp/readout-pipe-1
# push to fairMQ device
# light FMQ channel implementation
# WP5-compatible output
[consumer-fmq-wp5]
# session name must match --session parameter of all O2 devices in the chain
sessionName=default
consumerType=FairMQChannel
enabled=0
transportType=shmem
channelName=readout-out
channelType=pair
channelAddress=ipc:///tmp/readout-pipe-0
unmanagedMemorySize=2G
disableSending=0
#need also a memory pool for headers and partial HBf chunks copies
memoryPoolNumberOfPages=100
memoryPoolPageSize=128k
[receiver-fmq]
transportType=shmem
channelName=readout
channelType=pair
channelAddress=ipc:///tmp/readout-pipe-0
decodingMode=readout
#one of: readout, none
# equipment that emulates CRU data format (RDH in 8k blocks, LHC clocks, etc)
[equipment-emulator-1]
name=emulator-1
equipmentType=cruEmulator
enabled=0
eventMaxSize=8000
eventMinSize=8000
idleSleepTime=100
memoryPoolNumberOfPages=100
memoryPoolPageSize=3200k
# number of links enabled
numberOfLinks=16
# base id of link - incremented with number of links
linkId=100
[equipment-emulator-2]
name=emulator-2
equipmentType=cruEmulator
enabled=0
eventMaxSize=8000
eventMinSize=8000
idleSleepTime=100
memoryPoolNumberOfPages=100
memoryPoolPageSize=3200k
numberOfLinks=16
linkId=200
####################################################################
# example consumer-processor compressing data with zlib in 4 threads
# output is forwarded to another instance of consumer-stats
[consumer-processor]
consumerType=processor
libraryPath=libO2ReadoutProcessorZlibCompress.so
numberOfThreads=4
consumerOutput=consumer-stats-out
enabled=0
[consumer-stats-out]
consumerType=stats
enabled=0
####################################################################