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 <string>
14
#include <vector>
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
// @brief An int
25
using
IntData
= int32_t;
26
27
// @brief A PLL register bit(s) value
28
using
UintData
= uint32_t;
// NOLINT
29
30
// @brief Endpoint location data
31
struct
EndpointLocation
32
{
33
34
// @brief Fanout slot of the endpoint
35
IntData
fanout_slot
= 0;
36
37
// @brief SFP slot of the endpoint
38
IntData
sfp_slot
= 0;
39
40
// @brief Address of the endpoint
41
UintData
address
= 0;
42
};
43
44
// @brief Structure for payload of hsi configure commands
45
struct
HSIConfigureCmdPayload
46
{
47
48
// @brief Rising edge mask for HSI triggering
49
UintData
rising_edge_mask
= 0;
50
51
// @brief Falling edge mask for HSI triggering
52
UintData
falling_edge_mask
= 0;
53
54
// @brief Invert edge mask for HSI triggering
55
UintData
invert_edge_mask
= 0;
56
57
// @brief Source of data for HSI triggering
58
UintData
data_source
= 0;
59
60
// @brief Source of data for HSI triggering in emulation (bit 0)
61
DoubleData
random_rate
= 0.0;
62
};
63
64
// @brief Name of a target instance of a kind
65
using
String
= std::string;
66
67
// @brief Structure for io reset commands
68
struct
IOResetCmdPayload
69
{
70
71
// @brief Path of clock config file
72
String
clock_config
=
""
;
73
74
// @brief Soft reset
75
BoolData
soft
=
false
;
76
77
// @brief Clock source, 0 for PLL input 0, 1 for in 1, etc.. 255 for free run mode
78
UintData
clock_source
= 0;
79
};
80
81
// @brief Structure for io reset commands
82
struct
SyncTimestampPayload
83
{
84
85
// @brief Timestamp source, 0 for upstream, 1 for software, 2 for mixed
86
UintData
timestamp_source
= 0;
87
};
88
89
// @brief Structure for payload of endpoint commands
90
struct
TimingEndpointCmdPayload
91
{
92
93
// @brief ID of target endpoint
94
UintData
endpoint_id
= 0;
95
};
96
97
// @brief Structure for payload of endpoint configure commands
98
struct
TimingEndpointConfigureCmdPayload
99
{
100
101
// @brief ID of target endpoint
102
UintData
endpoint_id
= 0;
103
104
// @brief Endpoint address
105
UintData
address
= 0;
106
107
// @brief Endpoint partition
108
UintData
partition
= 0;
109
};
110
111
// @brief A vector of endpoint locations
112
using
TimingEndpointLocations
= std::vector<dunedaq::timinglibs::timingcmd::EndpointLocation>;
113
114
// @brief The timing hw cmd name. FIXME: this should be an enum!
115
using
TimingHwCmdId
= std::string;
116
117
// @brief Generic structure for timing hw cmd payloads
118
using
TimingHwCmdPayload
= nlohmann::json;
119
120
// @brief Timing hw cmd structure
121
struct
TimingHwCmd
122
{
123
124
// @brief ID of hw cmd
125
TimingHwCmdId
id
=
""
;
126
127
// @brief Cmd target
128
String
device
=
""
;
129
130
// @brief Hw cmd payload
131
TimingHwCmdPayload
payload
= {};
132
};
133
134
// @brief Structure for payloads of endpoint scan configure commands
135
struct
TimingMasterEndpointScanPayload
136
{
137
138
// @brief List of target endpoint
139
TimingEndpointLocations
endpoints
= {};
140
};
141
142
// @brief Structure for payload of endpoint configure commands
143
struct
TimingMasterSendFLCmdCmdPayload
144
{
145
146
// @brief ID of target endpoint
147
UintData
fl_cmd_id
= 0;
148
149
// @brief Channel on which to send command
150
UintData
channel
= 0;
151
152
// @brief How many commands to send
153
UintData
number_of_commands_to_send
= 0;
154
};
155
156
// @brief Structure for payload of timing master set endpoint delay command
157
struct
TimingMasterSetEndpointDelayCmdPayload
158
{
159
160
// @brief Endpoint address
161
UintData
address
= 0;
162
163
// @brief Endpoint coarse delay
164
UintData
coarse_delay
= 0;
165
166
// @brief Endpoint fine delay
167
UintData
fine_delay
= 0;
168
169
// @brief Endpoint phase delay
170
UintData
phase_delay
= 0;
171
172
// @brief Measure round trip time after delay setting
173
BoolData
measure_rtt
=
false
;
174
175
// @brief Control SFP or not
176
BoolData
control_sfp
=
false
;
177
178
// @brief Mux to endpoint (or not)
179
IntData
sfp_mux
= 0;
180
};
181
182
// @brief Structure for payload of partition commands
183
struct
TimingPartitionCmdPayload
184
{
185
186
// @brief ID of target partition
187
UintData
partition_id
= 0;
188
};
189
190
// @brief Structure for payload of partition configure commands
191
struct
TimingPartitionConfigureCmdPayload
192
{
193
194
// @brief ID of target partition
195
UintData
partition_id
= 0;
196
197
// @brief Trigger mask for fixed length cmd distribution
198
UintData
trigger_mask
= 0;
199
200
// @brief Spill interface on
201
BoolData
spill_gate_enabled
=
false
;
202
203
// @brief Rate control on
204
BoolData
rate_control_enabled
=
false
;
205
};
206
207
}
// namespace dunedaq::timinglibs::timingcmd
208
209
#endif
// DUNEDAQ_TIMINGLIBS_TIMINGCMD_STRUCTS_HPP
dunedaq::timinglibs::timingcmd
Definition
Nljs.hpp:15
dunedaq::timinglibs::timingcmd::String
std::string String
Definition
Structs.hpp:65
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:25
dunedaq::timinglibs::timingcmd::UintData
uint32_t UintData
Definition
Structs.hpp:28
dunedaq::timinglibs::timingcmd::TimingEndpointLocations
std::vector< dunedaq::timinglibs::timingcmd::EndpointLocation > TimingEndpointLocations
Definition
Structs.hpp:112
dunedaq::timinglibs::timingcmd::TimingHwCmdId
std::string TimingHwCmdId
Definition
Structs.hpp:115
dunedaq::timinglibs::timingcmd::TimingHwCmdPayload
nlohmann::json TimingHwCmdPayload
Definition
Structs.hpp:118
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:251
dunedaq::timinglibs::timingcmd::EndpointLocation
Definition
Structs.hpp:32
dunedaq::timinglibs::timingcmd::EndpointLocation::address
UintData address
Definition
Structs.hpp:41
dunedaq::timinglibs::timingcmd::EndpointLocation::sfp_slot
IntData sfp_slot
Definition
Structs.hpp:38
dunedaq::timinglibs::timingcmd::EndpointLocation::fanout_slot
IntData fanout_slot
Definition
Structs.hpp:35
dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload
Definition
Structs.hpp:46
dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload::falling_edge_mask
UintData falling_edge_mask
Definition
Structs.hpp:52
dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload::invert_edge_mask
UintData invert_edge_mask
Definition
Structs.hpp:55
dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload::rising_edge_mask
UintData rising_edge_mask
Definition
Structs.hpp:49
dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload::random_rate
DoubleData random_rate
Definition
Structs.hpp:61
dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload::data_source
UintData data_source
Definition
Structs.hpp:58
dunedaq::timinglibs::timingcmd::IOResetCmdPayload
Definition
Structs.hpp:69
dunedaq::timinglibs::timingcmd::IOResetCmdPayload::clock_source
UintData clock_source
Definition
Structs.hpp:78
dunedaq::timinglibs::timingcmd::IOResetCmdPayload::clock_config
String clock_config
Definition
Structs.hpp:72
dunedaq::timinglibs::timingcmd::IOResetCmdPayload::soft
BoolData soft
Definition
Structs.hpp:75
dunedaq::timinglibs::timingcmd::SyncTimestampPayload
Definition
Structs.hpp:83
dunedaq::timinglibs::timingcmd::SyncTimestampPayload::timestamp_source
UintData timestamp_source
Definition
Structs.hpp:86
dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload
Definition
Structs.hpp:91
dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload::endpoint_id
UintData endpoint_id
Definition
Structs.hpp:94
dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload
Definition
Structs.hpp:99
dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload::address
UintData address
Definition
Structs.hpp:105
dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload::endpoint_id
UintData endpoint_id
Definition
Structs.hpp:102
dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload::partition
UintData partition
Definition
Structs.hpp:108
dunedaq::timinglibs::timingcmd::TimingHwCmd
Definition
Structs.hpp:122
dunedaq::timinglibs::timingcmd::TimingHwCmd::device
String device
Definition
Structs.hpp:128
dunedaq::timinglibs::timingcmd::TimingHwCmd::payload
TimingHwCmdPayload payload
Definition
Structs.hpp:131
dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload
Definition
Structs.hpp:136
dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload::endpoints
TimingEndpointLocations endpoints
Definition
Structs.hpp:139
dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload
Definition
Structs.hpp:144
dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload::fl_cmd_id
UintData fl_cmd_id
Definition
Structs.hpp:147
dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload::number_of_commands_to_send
UintData number_of_commands_to_send
Definition
Structs.hpp:153
dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload::channel
UintData channel
Definition
Structs.hpp:150
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload
Definition
Structs.hpp:158
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload::control_sfp
BoolData control_sfp
Definition
Structs.hpp:176
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload::sfp_mux
IntData sfp_mux
Definition
Structs.hpp:179
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload::address
UintData address
Definition
Structs.hpp:161
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload::coarse_delay
UintData coarse_delay
Definition
Structs.hpp:164
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload::phase_delay
UintData phase_delay
Definition
Structs.hpp:170
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload::measure_rtt
BoolData measure_rtt
Definition
Structs.hpp:173
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload::fine_delay
UintData fine_delay
Definition
Structs.hpp:167
dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload
Definition
Structs.hpp:184
dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload::partition_id
UintData partition_id
Definition
Structs.hpp:187
dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload
Definition
Structs.hpp:192
dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload::spill_gate_enabled
BoolData spill_gate_enabled
Definition
Structs.hpp:201
dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload::rate_control_enabled
BoolData rate_control_enabled
Definition
Structs.hpp:204
dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload::partition_id
UintData partition_id
Definition
Structs.hpp:195
dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload::trigger_mask
UintData trigger_mask
Definition
Structs.hpp:198
Generated on
for DUNE-DAQ by
1.18.0