7#ifndef DUNEDAQ_TIMINGLIBS_TIMINGCMD_MSGPACK_HPP
8#define DUNEDAQ_TIMINGLIBS_TIMINGCMD_MSGPACK_HPP
27 struct convert<dunedaq::timinglibs::timingcmd::TimingHwCmdPayload>
29 msgpack::object
const& operator()(msgpack::object
const& o,
32 if (o.type != msgpack::type::ARRAY)
33 throw msgpack::type_error();
34 if (o.via.array.size != 1)
35 throw msgpack::type_error();
36 v = dunedaq::timinglibs::timingcmd::TimingHwCmdPayload::parse(o.via.array.ptr[0].as<std::string>());
41 struct pack<dunedaq::timinglibs::timingcmd::TimingHwCmdPayload>
43 template<
typename Stream>
44 packer<Stream>& operator()(msgpack::packer<Stream>& o,
57 struct convert<dunedaq::timinglibs::timingcmd::EndpointLocation>
59 msgpack::object
const& operator()(msgpack::object
const& o,
60 dunedaq::timinglibs::timingcmd::EndpointLocation& v)
const
62 if (o.type != msgpack::type::ARRAY)
63 throw msgpack::type_error();
64 if (o.via.array.size != 3)
65 throw msgpack::type_error();
73 struct pack<dunedaq::timinglibs::timingcmd::EndpointLocation>
75 template<
typename Stream>
76 packer<Stream>& operator()(msgpack::packer<Stream>& o,
77 dunedaq::timinglibs::timingcmd::EndpointLocation
const& v)
const
81 o.pack(
v.fanout_slot);
91 struct convert<dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload>
93 msgpack::object
const& operator()(msgpack::object
const& o,
94 dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload& v)
const
96 if (o.type != msgpack::type::ARRAY)
97 throw msgpack::type_error();
98 if (o.via.array.size != 5)
99 throw msgpack::type_error();
109 struct pack<dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload>
111 template<
typename Stream>
112 packer<Stream>& operator()(msgpack::packer<Stream>& o,
113 dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload
const& v)
const
117 o.pack(
v.rising_edge_mask);
118 o.pack(
v.falling_edge_mask);
119 o.pack(
v.invert_edge_mask);
120 o.pack(
v.data_source);
121 o.pack(
v.random_rate);
129 struct convert<dunedaq::timinglibs::timingcmd::IOResetCmdPayload>
131 msgpack::object
const& operator()(msgpack::object
const& o,
132 dunedaq::timinglibs::timingcmd::IOResetCmdPayload& v)
const
134 if (o.type != msgpack::type::ARRAY)
135 throw msgpack::type_error();
136 if (o.via.array.size != 3)
137 throw msgpack::type_error();
145 struct pack<dunedaq::timinglibs::timingcmd::IOResetCmdPayload>
147 template<
typename Stream>
148 packer<Stream>& operator()(msgpack::packer<Stream>& o,
149 dunedaq::timinglibs::timingcmd::IOResetCmdPayload
const& v)
const
153 o.pack(
v.clock_config);
155 o.pack(
v.clock_source);
163 struct convert<dunedaq::timinglibs::timingcmd::SyncTimestampPayload>
165 msgpack::object
const& operator()(msgpack::object
const& o,
166 dunedaq::timinglibs::timingcmd::SyncTimestampPayload& v)
const
168 if (o.type != msgpack::type::ARRAY)
169 throw msgpack::type_error();
170 if (o.via.array.size != 1)
171 throw msgpack::type_error();
177 struct pack<dunedaq::timinglibs::timingcmd::SyncTimestampPayload>
179 template<
typename Stream>
180 packer<Stream>& operator()(msgpack::packer<Stream>& o,
181 dunedaq::timinglibs::timingcmd::SyncTimestampPayload
const& v)
const
185 o.pack(
v.timestamp_source);
193 struct convert<dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload>
195 msgpack::object
const& operator()(msgpack::object
const& o,
196 dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload& v)
const
198 if (o.type != msgpack::type::ARRAY)
199 throw msgpack::type_error();
200 if (o.via.array.size != 1)
201 throw msgpack::type_error();
207 struct pack<dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload>
209 template<
typename Stream>
210 packer<Stream>& operator()(msgpack::packer<Stream>& o,
211 dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload
const& v)
const
215 o.pack(
v.endpoint_id);
223 struct convert<dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload>
225 msgpack::object
const& operator()(msgpack::object
const& o,
226 dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload& v)
const
228 if (o.type != msgpack::type::ARRAY)
229 throw msgpack::type_error();
230 if (o.via.array.size != 3)
231 throw msgpack::type_error();
239 struct pack<dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload>
241 template<
typename Stream>
242 packer<Stream>& operator()(msgpack::packer<Stream>& o,
243 dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload
const& v)
const
247 o.pack(
v.endpoint_id);
257 struct convert<dunedaq::timinglibs::timingcmd::TimingHwCmd>
259 msgpack::object
const& operator()(msgpack::object
const& o, dunedaq::timinglibs::timingcmd::TimingHwCmd& v)
const
261 if (o.type != msgpack::type::ARRAY)
262 throw msgpack::type_error();
263 if (o.via.array.size != 3)
264 throw msgpack::type_error();
272 struct pack<dunedaq::timinglibs::timingcmd::TimingHwCmd>
274 template<
typename Stream>
275 packer<Stream>& operator()(msgpack::packer<Stream>& o, dunedaq::timinglibs::timingcmd::TimingHwCmd
const& v)
const
289 struct convert<dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload>
291 msgpack::object
const& operator()(msgpack::object
const& o,
292 dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload& v)
const
294 if (o.type != msgpack::type::ARRAY)
295 throw msgpack::type_error();
296 if (o.via.array.size != 1)
297 throw msgpack::type_error();
303 struct pack<dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload>
305 template<
typename Stream>
306 packer<Stream>& operator()(msgpack::packer<Stream>& o,
307 dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload
const& v)
const
319 struct convert<dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload>
321 msgpack::object
const& operator()(msgpack::object
const& o,
322 dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload& v)
const
324 if (o.type != msgpack::type::ARRAY)
325 throw msgpack::type_error();
326 if (o.via.array.size != 3)
327 throw msgpack::type_error();
335 struct pack<dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload>
337 template<
typename Stream>
338 packer<Stream>& operator()(msgpack::packer<Stream>& o,
339 dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload
const& v)
const
345 o.pack(
v.number_of_commands_to_send);
353 struct convert<dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload>
355 msgpack::object
const& operator()(msgpack::object
const& o,
356 dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload& v)
const
358 if (o.type != msgpack::type::ARRAY)
359 throw msgpack::type_error();
360 if (o.via.array.size != 7)
361 throw msgpack::type_error();
373 struct pack<dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload>
375 template<
typename Stream>
376 packer<Stream>& operator()(msgpack::packer<Stream>& o,
377 dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload
const& v)
const
382 o.pack(
v.coarse_delay);
383 o.pack(
v.fine_delay);
384 o.pack(
v.phase_delay);
385 o.pack(
v.measure_rtt);
386 o.pack(
v.control_sfp);
395 struct convert<dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload>
397 msgpack::object
const& operator()(msgpack::object
const& o,
398 dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload& v)
const
400 if (o.type != msgpack::type::ARRAY)
401 throw msgpack::type_error();
402 if (o.via.array.size != 1)
403 throw msgpack::type_error();
409 struct pack<dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload>
411 template<
typename Stream>
412 packer<Stream>& operator()(msgpack::packer<Stream>& o,
413 dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload
const& v)
const
417 o.pack(
v.partition_id);
425 struct convert<dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload>
427 msgpack::object
const& operator()(msgpack::object
const& o,
428 dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload& v)
const
430 if (o.type != msgpack::type::ARRAY)
431 throw msgpack::type_error();
432 if (o.via.array.size != 4)
433 throw msgpack::type_error();
442 struct pack<dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload>
444 template<
typename Stream>
445 packer<Stream>& operator()(msgpack::packer<Stream>& o,
446 dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload
const& v)
const
450 o.pack(
v.partition_id);
451 o.pack(
v.trigger_mask);
452 o.pack(
v.spill_gate_enabled);
453 o.pack(
v.rate_control_enabled);
std::vector< dunedaq::timinglibs::timingcmd::EndpointLocation > TimingEndpointLocations
std::string TimingHwCmdId
nlohmann::json TimingHwCmdPayload
MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS)