7#ifndef DUNEDAQ_TIMINGLIBS_TIMINGCMD_MSGPACK_HPP
8#define DUNEDAQ_TIMINGLIBS_TIMINGCMD_MSGPACK_HPP
28struct convert<
dunedaq::timinglibs::timingcmd::TimingHwCmdPayload> {
30 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
31 if (o.via.array.size != 1)
throw msgpack::type_error();
32 v=dunedaq::timinglibs::timingcmd::TimingHwCmdPayload::parse(o.via.array.ptr[0].as<std::string>());
37struct pack<
dunedaq::timinglibs::timingcmd::TimingHwCmdPayload> {
38 template <
typename Stream>
51struct convert<
dunedaq::timinglibs::timingcmd::EndpointLocation> {
53 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
54 if (o.via.array.size != 3)
throw msgpack::type_error();
55 v.fanout_slot = o.via.array.ptr[0].as<dunedaq::timinglibs::timingcmd::IntData>();
56 v.sfp_slot = o.via.array.ptr[1].as<dunedaq::timinglibs::timingcmd::IntData>();
62struct pack<
dunedaq::timinglibs::timingcmd::EndpointLocation> {
63 template <
typename Stream>
67 o.pack(
v.fanout_slot);
77struct convert<
dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload> {
79 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
80 if (o.via.array.size != 5)
throw msgpack::type_error();
90struct pack<
dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload> {
91 template <
typename Stream>
95 o.pack(
v.rising_edge_mask);
96 o.pack(
v.falling_edge_mask);
97 o.pack(
v.invert_edge_mask);
98 o.pack(
v.data_source);
99 o.pack(
v.random_rate);
107struct convert<
dunedaq::timinglibs::timingcmd::IOResetCmdPayload> {
109 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
110 if (o.via.array.size != 3)
throw msgpack::type_error();
112 v.soft = o.via.array.ptr[1].as<dunedaq::timinglibs::timingcmd::BoolData>();
118struct pack<
dunedaq::timinglibs::timingcmd::IOResetCmdPayload> {
119 template <
typename Stream>
123 o.pack(
v.clock_config);
125 o.pack(
v.clock_source);
133struct convert<
dunedaq::timinglibs::timingcmd::SyncTimestampPayload> {
135 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
136 if (o.via.array.size != 1)
throw msgpack::type_error();
142struct pack<
dunedaq::timinglibs::timingcmd::SyncTimestampPayload> {
143 template <
typename Stream>
147 o.pack(
v.timestamp_source);
155struct convert<
dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload> {
157 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
158 if (o.via.array.size != 1)
throw msgpack::type_error();
164struct pack<
dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload> {
165 template <
typename Stream>
169 o.pack(
v.endpoint_id);
177struct convert<
dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload> {
179 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
180 if (o.via.array.size != 3)
throw msgpack::type_error();
188struct pack<
dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload> {
189 template <
typename Stream>
193 o.pack(
v.endpoint_id);
203struct convert<
dunedaq::timinglibs::timingcmd::TimingHwCmd> {
205 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
206 if (o.via.array.size != 3)
throw msgpack::type_error();
214struct pack<
dunedaq::timinglibs::timingcmd::TimingHwCmd> {
215 template <
typename Stream>
229struct convert<
dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload> {
231 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
232 if (o.via.array.size != 1)
throw msgpack::type_error();
238struct pack<
dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload> {
239 template <
typename Stream>
251struct convert<
dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload> {
253 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
254 if (o.via.array.size != 3)
throw msgpack::type_error();
262struct pack<
dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload> {
263 template <
typename Stream>
269 o.pack(
v.number_of_commands_to_send);
277struct convert<
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload> {
279 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
280 if (o.via.array.size != 7)
throw msgpack::type_error();
285 v.measure_rtt = o.via.array.ptr[4].as<dunedaq::timinglibs::timingcmd::BoolData>();
286 v.control_sfp = o.via.array.ptr[5].as<dunedaq::timinglibs::timingcmd::BoolData>();
287 v.sfp_mux = o.via.array.ptr[6].as<dunedaq::timinglibs::timingcmd::IntData>();
292struct pack<
dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload> {
293 template <
typename Stream>
298 o.pack(
v.coarse_delay);
299 o.pack(
v.fine_delay);
300 o.pack(
v.phase_delay);
301 o.pack(
v.measure_rtt);
302 o.pack(
v.control_sfp);
311struct convert<
dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload> {
313 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
314 if (o.via.array.size != 1)
throw msgpack::type_error();
320struct pack<
dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload> {
321 template <
typename Stream>
325 o.pack(
v.partition_id);
333struct convert<
dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload> {
335 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
336 if (o.via.array.size != 4)
throw msgpack::type_error();
339 v.spill_gate_enabled = o.via.array.ptr[2].as<dunedaq::timinglibs::timingcmd::BoolData>();
340 v.rate_control_enabled = o.via.array.ptr[3].as<dunedaq::timinglibs::timingcmd::BoolData>();
345struct pack<
dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload> {
346 template <
typename Stream>
350 o.pack(
v.partition_id);
351 o.pack(
v.trigger_mask);
352 o.pack(
v.spill_gate_enabled);
353 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)