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> {
52 msgpack::object
const& operator()(msgpack::object
const& o, dunedaq::timinglibs::timingcmd::EndpointLocation& v)
const {
53 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
54 if (o.via.array.size != 3)
throw msgpack::type_error();
62struct pack<dunedaq::timinglibs::timingcmd::EndpointLocation> {
63 template <
typename Stream>
64 packer<Stream>& operator()(msgpack::packer<Stream>& o, dunedaq::timinglibs::timingcmd::EndpointLocation
const& v)
const {
67 o.pack(
v.fanout_slot);
77struct convert<dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload> {
78 msgpack::object
const& operator()(msgpack::object
const& o, dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload& v)
const {
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>
92 packer<Stream>& operator()(msgpack::packer<Stream>& o, dunedaq::timinglibs::timingcmd::HSIConfigureCmdPayload
const& v)
const {
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> {
108 msgpack::object
const& operator()(msgpack::object
const& o, dunedaq::timinglibs::timingcmd::IOResetCmdPayload& v)
const {
109 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
110 if (o.via.array.size != 3)
throw msgpack::type_error();
118struct pack<dunedaq::timinglibs::timingcmd::IOResetCmdPayload> {
119 template <
typename Stream>
120 packer<Stream>& operator()(msgpack::packer<Stream>& o, dunedaq::timinglibs::timingcmd::IOResetCmdPayload
const& v)
const {
123 o.pack(
v.clock_config);
125 o.pack(
v.clock_source);
133struct convert<dunedaq::timinglibs::timingcmd::SyncTimestampPayload> {
134 msgpack::object
const& operator()(msgpack::object
const& o, dunedaq::timinglibs::timingcmd::SyncTimestampPayload& v)
const {
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>
144 packer<Stream>& operator()(msgpack::packer<Stream>& o, dunedaq::timinglibs::timingcmd::SyncTimestampPayload
const& v)
const {
147 o.pack(
v.timestamp_source);
155struct convert<dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload> {
156 msgpack::object
const& operator()(msgpack::object
const& o, dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload& v)
const {
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>
166 packer<Stream>& operator()(msgpack::packer<Stream>& o, dunedaq::timinglibs::timingcmd::TimingEndpointCmdPayload
const& v)
const {
169 o.pack(
v.endpoint_id);
177struct convert<dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload> {
178 msgpack::object
const& operator()(msgpack::object
const& o, dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload& v)
const {
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>
190 packer<Stream>& operator()(msgpack::packer<Stream>& o, dunedaq::timinglibs::timingcmd::TimingEndpointConfigureCmdPayload
const& v)
const {
193 o.pack(
v.endpoint_id);
203struct convert<dunedaq::timinglibs::timingcmd::TimingHwCmd> {
204 msgpack::object
const& operator()(msgpack::object
const& o, dunedaq::timinglibs::timingcmd::TimingHwCmd& v)
const {
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>
216 packer<Stream>& operator()(msgpack::packer<Stream>& o, dunedaq::timinglibs::timingcmd::TimingHwCmd
const& v)
const {
229struct convert<dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload> {
230 msgpack::object
const& operator()(msgpack::object
const& o, dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload& v)
const {
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>
240 packer<Stream>& operator()(msgpack::packer<Stream>& o, dunedaq::timinglibs::timingcmd::TimingMasterEndpointScanPayload
const& v)
const {
251struct convert<dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload> {
252 msgpack::object
const& operator()(msgpack::object
const& o, dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload& v)
const {
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>
264 packer<Stream>& operator()(msgpack::packer<Stream>& o, dunedaq::timinglibs::timingcmd::TimingMasterSendFLCmdCmdPayload
const& v)
const {
269 o.pack(
v.number_of_commands_to_send);
277struct convert<dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload> {
278 msgpack::object
const& operator()(msgpack::object
const& o, dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload& v)
const {
279 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
280 if (o.via.array.size != 7)
throw msgpack::type_error();
292struct pack<dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload> {
293 template <
typename Stream>
294 packer<Stream>& operator()(msgpack::packer<Stream>& o, dunedaq::timinglibs::timingcmd::TimingMasterSetEndpointDelayCmdPayload
const& v)
const {
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> {
312 msgpack::object
const& operator()(msgpack::object
const& o, dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload& v)
const {
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>
322 packer<Stream>& operator()(msgpack::packer<Stream>& o, dunedaq::timinglibs::timingcmd::TimingPartitionCmdPayload
const& v)
const {
325 o.pack(
v.partition_id);
333struct convert<dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload> {
334 msgpack::object
const& operator()(msgpack::object
const& o, dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload& v)
const {
335 if (o.type != msgpack::type::ARRAY)
throw msgpack::type_error();
336 if (o.via.array.size != 4)
throw msgpack::type_error();
345struct pack<dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload> {
346 template <
typename Stream>
347 packer<Stream>& operator()(msgpack::packer<Stream>& o, dunedaq::timinglibs::timingcmd::TimingPartitionConfigureCmdPayload
const& v)
const {
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)