DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
timinglibs
include
timinglibs
timingcmd
Structs.hpp
Go to the documentation of this file.
1
/*
2
* This file is 100% generated. Any manual edits will likely be lost.
3
*
4
* This contains struct and other type definitions for shema in
5
* namespace dunedaq::timinglibs::timingcmd.
6
*/
7
#ifndef DUNEDAQ_TIMINGLIBS_TIMINGCMD_STRUCTS_HPP
8
#define DUNEDAQ_TIMINGLIBS_TIMINGCMD_STRUCTS_HPP
9
10
#include <cstdint>
11
12
#include <nlohmann/json.hpp>
13
#include <vector>
14
#include <string>
15
16
namespace
dunedaq::timinglibs::timingcmd
{
17
18
// @brief A bool
19
using
BoolData
=
bool
;
20
21
// @brief A double
22
using
DoubleData
= double;
23
24
25
// @brief An int
26
using
IntData
= int32_t;
27
28
29
// @brief A PLL register bit(s) value
30
using
UintData
= uint32_t;
// NOLINT
31
32
33
// @brief Endpoint location data
34
struct
EndpointLocation
35
{
36
37
// @brief Fanout slot of the endpoint
38
IntData
fanout_slot
= 0;
39
40
// @brief SFP slot of the endpoint
41
IntData
sfp_slot
= 0;
42
43
// @brief Address of the endpoint
44
UintData
address
= 0;
45
};
46
47
// @brief Structure for payload of hsi configure commands
48
struct
HSIConfigureCmdPayload
49
{
50
51
// @brief Rising edge mask for HSI triggering
52
UintData
rising_edge_mask
= 0;
53
54
// @brief Falling edge mask for HSI triggering
55
UintData
falling_edge_mask
= 0;
56
57
// @brief Invert edge mask for HSI triggering
58
UintData
invert_edge_mask
= 0;
59
60
// @brief Source of data for HSI triggering
61
UintData
data_source
= 0;
62
63
// @brief Source of data for HSI triggering in emulation (bit 0)
64
DoubleData
random_rate
= 0.0;
65
};
66
67
// @brief Name of a target instance of a kind
68
using
String
= std::string;
69
70
// @brief Structure for io reset commands
71
struct
IOResetCmdPayload
72
{
73
74
// @brief Path of clock config file
75
String
clock_config
=
""
;
76
77
// @brief Soft reset
78
BoolData
soft
=
false
;
79
80
// @brief Clock source, 0 for PLL input 0, 1 for in 1, etc.. 255 for free run mode
81
UintData
clock_source
= 0;
82
};
83
84
// @brief Structure for io reset commands
85
struct
SyncTimestampPayload
86
{
87
88
// @brief Timestamp source, 0 for upstream, 1 for software, 2 for mixed
89
UintData
timestamp_source
= 0;
90
};
91
92
// @brief Structure for payload of endpoint commands
93
struct
TimingEndpointCmdPayload
94
{
95
96
// @brief ID of target endpoint
97
UintData
endpoint_id
= 0;
98
};
99
100
// @brief Structure for payload of endpoint configure commands
101
struct
TimingEndpointConfigureCmdPayload
102
{
103
104
// @brief ID of target endpoint
105
UintData
endpoint_id
= 0;
106
107
// @brief Endpoint address
108
UintData
address
= 0;
109
110
// @brief Endpoint partition
111
UintData
partition
= 0;
112
};
113
114
// @brief A vector of endpoint locations
115
using
TimingEndpointLocations
= std::vector<dunedaq::timinglibs::timingcmd::EndpointLocation>;
116
117
// @brief The timing hw cmd name. FIXME: this should be an enum!
118
using
TimingHwCmdId
= std::string;
119
120
// @brief Generic structure for timing hw cmd payloads
121
using
TimingHwCmdPayload
= nlohmann::json;
122
123
// @brief Timing hw cmd structure
124
struct
TimingHwCmd
125
{
126
127
// @brief ID of hw cmd
128
TimingHwCmdId
id
=
""
;
129
130
// @brief Cmd target
131
String
device
=
""
;
132
133
// @brief Hw cmd payload
134
TimingHwCmdPayload
payload
= {};
135
};
136
137
// @brief Structure for payloads of endpoint scan configure commands
138
struct
TimingMasterEndpointScanPayload
139
{
140
141
// @brief List of target endpoint
142
TimingEndpointLocations
endpoints
= {};
143
};
144
145
// @brief Structure for payload of endpoint configure commands
146
struct
TimingMasterSendFLCmdCmdPayload
147
{
148
149
// @brief ID of target endpoint
150
UintData
fl_cmd_id
= 0;
151
152
// @brief Channel on which to send command
153
UintData
channel
= 0;
154
155
// @brief How many commands to send
156
UintData
number_of_commands_to_send
= 0;
157
};
158
159
// @brief Structure for payload of timing master set endpoint delay command
160
struct
TimingMasterSetEndpointDelayCmdPayload
161
{
162
163
// @brief Endpoint address
164
UintData
address
= 0;
165
166
// @brief Endpoint coarse delay
167
UintData
coarse_delay
= 0;
168
169
// @brief Endpoint fine delay
170
UintData
fine_delay
= 0;
171
172
// @brief Endpoint phase delay
173
UintData
phase_delay
= 0;
174
175
// @brief Measure round trip time after delay setting
176
BoolData
measure_rtt
=
false
;
177
178
// @brief Control SFP or not
179
BoolData
control_sfp
=
false
;
180
181
// @brief Mux to endpoint (or not)
182
IntData
sfp_mux
= 0;
183
};
184
185
// @brief Structure for payload of partition commands
186
struct
TimingPartitionCmdPayload
187
{
188
189
// @brief ID of target partition
190
UintData
partition_id
= 0;
191
};
192
193
// @brief Structure for payload of partition configure commands
194
struct
TimingPartitionConfigureCmdPayload
195
{
196
197
// @brief ID of target partition
198
UintData
partition_id
= 0;
199
200
// @brief Trigger mask for fixed length cmd distribution
201
UintData
trigger_mask
= 0;
202
203
// @brief Spill interface on
204
BoolData
spill_gate_enabled
=
false
;
205
206
// @brief Rate control on
207
BoolData
rate_control_enabled
=
false
;
208
};
209
210
}
// namespace dunedaq::timinglibs::timingcmd
211
212
#endif
// DUNEDAQ_TIMINGLIBS_TIMINGCMD_STRUCTS_HPP
dunedaq::timinglibs::timingcmd
Definition
Nljs.hpp:16
dunedaq::timinglibs::timingcmd::String
std::string String
Definition
Structs.hpp:68
dunedaq::timinglibs::timingcmd::DoubleData
double DoubleData
Definition
Structs.hpp:22
dunedaq::timinglibs::timingcmd::BoolData
bool BoolData
Definition
Structs.hpp:19
dunedaq::timinglibs::timingcmd::IntData
int32_t IntData
Definition
Structs.hpp:26
dunedaq::timinglibs::timingcmd::UintData
uint32_t UintData
Definition
Structs.hpp:30
dunedaq::timinglibs::timingcmd::TimingEndpointLocations
std::vector< dunedaq::timinglibs::timingcmd::EndpointLocation > TimingEndpointLocations
Definition
Structs.hpp:115
dunedaq::timinglibs::timingcmd::TimingHwCmdId
std::string TimingHwCmdId
Definition
Structs.hpp:118
dunedaq::timinglibs::timingcmd::TimingHwCmdPayload
nlohmann::json TimingHwCmdPayload
Definition
Structs.hpp:121
dunedaq::bool
Unknown serialization type<< t,((char) t)) template< typename T > inline std::string datatype_to_string() { return "Unknown";} namespace serialization { template< typename T > struct is_serializable :std::false_type {};enum SerializationType { kMsgPack };inline SerializationType from_string(const std::string s) { if(s=="msgpack") return kMsgPack;throw UnknownSerializationTypeString(ERS_HERE, s);} constexpr uint8_t serialization_type_byte(SerializationType stype) { switch(stype) { case kMsgPack:return 'M';default:throw UnknownSerializationTypeEnum(ERS_HERE);} } constexpr SerializationType DEFAULT_SERIALIZATION_TYPE=kMsgPack;template< class T > std::vector< uint8_t > serialize(const T &obj, SerializationType stype=DEFAULT_SERIALIZATION_TYPE) { switch(stype) { case kMsgPack:{ msgpack::sbuffer buf;msgpack::pack(buf, obj);std::vector< uint8_t > ret(buf.size()+1);ret[0]=serialization_type_byte(stype);std::copy(buf.data(), buf.data()+buf.size(), ret.begin()+1);return ret;} default:throw UnknownSerializationTypeEnum(ERS_HERE);} } template< class T, typename CharType=unsigned char > T deserialize(const std::vector< CharType > &v) { switch(v[0]) { case serialization_type_byte(kMsgPack):{ try { msgpack::object_handle oh=msgpack::unpack(const_cast< char * >(reinterpret_cast< const char * >(v.data()+1)), v.size() - 1,[](msgpack::type::object_type, std::size_t, void *) -> bool
Definition
Serialization.hpp:256
dunedaq::timinglibs::timingcmd::EndpointLocation
Definition
Structs.hpp:35
dunedaq::timinglibs::timingcmd::EndpointLocation::address
UintData address
Definition
Structs.hpp:44
dunedaq::timinglibs::timingcmd::EndpointLocation::sfp_slot
IntData sfp_slot
Definition
Structs.hpp:41
dunedaq::timinglibs::timingcmd::EndpointLocation::fanout_slot
IntData fanout_slot
Definition
Structs.hpp:38
dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload
Definition
Structs.hpp:49
dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload::falling_edge_mask
UintData falling_edge_mask
Definition
Structs.hpp:55
dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload::invert_edge_mask
UintData invert_edge_mask
Definition
Structs.hpp:58
dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload::rising_edge_mask
UintData rising_edge_mask
Definition
Structs.hpp:52
dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload::random_rate
DoubleData random_rate
Definition
Structs.hpp:64
dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload::data_source
UintData data_source
Definition
Structs.hpp:61
dunedaq::timinglibs::timingcmd::IOResetCmdPayload
Definition
Structs.hpp:72
dunedaq::timinglibs::timingcmd::IOResetCmdPayload::clock_source
UintData clock_source
Definition
Structs.hpp:81
dunedaq::timinglibs::timingcmd::IOResetCmdPayload::clock_config
String clock_config
Definition
Structs.hpp:75
dunedaq::timinglibs::timingcmd::IOResetCmdPayload::soft
BoolData soft
Definition
Structs.hpp:78
dunedaq::timinglibs::timingcmd::SyncTimestampPayload
Definition
Structs.hpp:86
dunedaq::timinglibs::timingcmd::SyncTimestampPayload::timestamp_source
UintData timestamp_source
Definition
Structs.hpp:89
dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload
Definition
Structs.hpp:94
dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload::endpoint_id
UintData endpoint_id
Definition
Structs.hpp:97
dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload
Definition
Structs.hpp:102
dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload::address
UintData address
Definition
Structs.hpp:108
dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload::endpoint_id
UintData endpoint_id
Definition
Structs.hpp:105
dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload::partition
UintData partition
Definition
Structs.hpp:111
dunedaq::timinglibs::timingcmd::TimingHwCmd
Definition
Structs.hpp:125
dunedaq::timinglibs::timingcmd::TimingHwCmd::device
String device
Definition
Structs.hpp:131
dunedaq::timinglibs::timingcmd::TimingHwCmd::payload
TimingHwCmdPayload payload
Definition
Structs.hpp:134
dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload
Definition
Structs.hpp:139
dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload::endpoints
TimingEndpointLocations endpoints
Definition
Structs.hpp:142
dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload
Definition
Structs.hpp:147
dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload::fl_cmd_id
UintData fl_cmd_id
Definition
Structs.hpp:150
dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload::number_of_commands_to_send
UintData number_of_commands_to_send
Definition
Structs.hpp:156
dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload::channel
UintData channel
Definition
Structs.hpp:153
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload
Definition
Structs.hpp:161
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload::control_sfp
BoolData control_sfp
Definition
Structs.hpp:179
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload::sfp_mux
IntData sfp_mux
Definition
Structs.hpp:182
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload::address
UintData address
Definition
Structs.hpp:164
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload::coarse_delay
UintData coarse_delay
Definition
Structs.hpp:167
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload::phase_delay
UintData phase_delay
Definition
Structs.hpp:173
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload::measure_rtt
BoolData measure_rtt
Definition
Structs.hpp:176
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload::fine_delay
UintData fine_delay
Definition
Structs.hpp:170
dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload
Definition
Structs.hpp:187
dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload::partition_id
UintData partition_id
Definition
Structs.hpp:190
dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload
Definition
Structs.hpp:195
dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload::spill_gate_enabled
BoolData spill_gate_enabled
Definition
Structs.hpp:204
dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload::rate_control_enabled
BoolData rate_control_enabled
Definition
Structs.hpp:207
dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload::partition_id
UintData partition_id
Definition
Structs.hpp:198
dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload::trigger_mask
UintData trigger_mask
Definition
Structs.hpp:201
Generated on
for DUNE-DAQ by
1.17.0