DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
Nljs.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 functions struct and other type definitions for shema in
5 * namespace dunedaq::timinglibs::timingcmd to be serialized via nlohmann::json.
6 */
7#ifndef DUNEDAQ_TIMINGLIBS_TIMINGCMD_NLJS_HPP
8#define DUNEDAQ_TIMINGLIBS_TIMINGCMD_NLJS_HPP
9
10// My structs
12
13
14#include <nlohmann/json.hpp>
15
17
18 using data_t = nlohmann::json;
19
20 inline void to_json(data_t& j, const EndpointLocation& obj) {
21 j["fanout_slot"] = obj.fanout_slot;
22 j["sfp_slot"] = obj.sfp_slot;
23 j["address"] = obj.address;
24 }
25
26 inline void from_json(const data_t& j, EndpointLocation& obj) {
27 if (j.contains("fanout_slot"))
28 j.at("fanout_slot").get_to(obj.fanout_slot);
29 if (j.contains("sfp_slot"))
30 j.at("sfp_slot").get_to(obj.sfp_slot);
31 if (j.contains("address"))
32 j.at("address").get_to(obj.address);
33 }
34
35 inline void to_json(data_t& j, const HSIConfigureCmdPayload& obj) {
36 j["rising_edge_mask"] = obj.rising_edge_mask;
37 j["falling_edge_mask"] = obj.falling_edge_mask;
38 j["invert_edge_mask"] = obj.invert_edge_mask;
39 j["data_source"] = obj.data_source;
40 j["random_rate"] = obj.random_rate;
41 }
42
43 inline void from_json(const data_t& j, HSIConfigureCmdPayload& obj) {
44 if (j.contains("rising_edge_mask"))
45 j.at("rising_edge_mask").get_to(obj.rising_edge_mask);
46 if (j.contains("falling_edge_mask"))
47 j.at("falling_edge_mask").get_to(obj.falling_edge_mask);
48 if (j.contains("invert_edge_mask"))
49 j.at("invert_edge_mask").get_to(obj.invert_edge_mask);
50 if (j.contains("data_source"))
51 j.at("data_source").get_to(obj.data_source);
52 if (j.contains("random_rate"))
53 j.at("random_rate").get_to(obj.random_rate);
54 }
55
56 inline void to_json(data_t& j, const IOResetCmdPayload& obj) {
57 j["clock_config"] = obj.clock_config;
58 j["soft"] = obj.soft;
59 j["clock_source"] = obj.clock_source;
60 }
61
62 inline void from_json(const data_t& j, IOResetCmdPayload& obj) {
63 if (j.contains("clock_config"))
64 j.at("clock_config").get_to(obj.clock_config);
65 if (j.contains("soft"))
66 j.at("soft").get_to(obj.soft);
67 if (j.contains("clock_source"))
68 j.at("clock_source").get_to(obj.clock_source);
69 }
70
71 inline void to_json(data_t& j, const SyncTimestampPayload& obj) {
72 j["timestamp_source"] = obj.timestamp_source;
73 }
74
75 inline void from_json(const data_t& j, SyncTimestampPayload& obj) {
76 if (j.contains("timestamp_source"))
77 j.at("timestamp_source").get_to(obj.timestamp_source);
78 }
79
80 inline void to_json(data_t& j, const TimingEndpointCmdPayload& obj) {
81 j["endpoint_id"] = obj.endpoint_id;
82 }
83
84 inline void from_json(const data_t& j, TimingEndpointCmdPayload& obj) {
85 if (j.contains("endpoint_id"))
86 j.at("endpoint_id").get_to(obj.endpoint_id);
87 }
88
89 inline void to_json(data_t& j, const TimingEndpointConfigureCmdPayload& obj) {
90 j["endpoint_id"] = obj.endpoint_id;
91 j["address"] = obj.address;
92 j["partition"] = obj.partition;
93 }
94
96 if (j.contains("endpoint_id"))
97 j.at("endpoint_id").get_to(obj.endpoint_id);
98 if (j.contains("address"))
99 j.at("address").get_to(obj.address);
100 if (j.contains("partition"))
101 j.at("partition").get_to(obj.partition);
102 }
103
104 inline void to_json(data_t& j, const TimingHwCmd& obj) {
105 j["id"] = obj.id;
106 j["device"] = obj.device;
107 j["payload"] = obj.payload;
108 }
109
110 inline void from_json(const data_t& j, TimingHwCmd& obj) {
111 if (j.contains("id"))
112 j.at("id").get_to(obj.id);
113 if (j.contains("device"))
114 j.at("device").get_to(obj.device);
115 obj.payload = j.at("payload");
116 }
117
118 inline void to_json(data_t& j, const TimingMasterEndpointScanPayload& obj) {
119 j["endpoints"] = obj.endpoints;
120 }
121
123 if (j.contains("endpoints"))
124 j.at("endpoints").get_to(obj.endpoints);
125 }
126
127 inline void to_json(data_t& j, const TimingMasterSendFLCmdCmdPayload& obj) {
128 j["fl_cmd_id"] = obj.fl_cmd_id;
129 j["channel"] = obj.channel;
130 j["number_of_commands_to_send"] = obj.number_of_commands_to_send;
131 }
132
134 if (j.contains("fl_cmd_id"))
135 j.at("fl_cmd_id").get_to(obj.fl_cmd_id);
136 if (j.contains("channel"))
137 j.at("channel").get_to(obj.channel);
138 if (j.contains("number_of_commands_to_send"))
139 j.at("number_of_commands_to_send").get_to(obj.number_of_commands_to_send);
140 }
141
143 j["address"] = obj.address;
144 j["coarse_delay"] = obj.coarse_delay;
145 j["fine_delay"] = obj.fine_delay;
146 j["phase_delay"] = obj.phase_delay;
147 j["measure_rtt"] = obj.measure_rtt;
148 j["control_sfp"] = obj.control_sfp;
149 j["sfp_mux"] = obj.sfp_mux;
150 }
151
153 if (j.contains("address"))
154 j.at("address").get_to(obj.address);
155 if (j.contains("coarse_delay"))
156 j.at("coarse_delay").get_to(obj.coarse_delay);
157 if (j.contains("fine_delay"))
158 j.at("fine_delay").get_to(obj.fine_delay);
159 if (j.contains("phase_delay"))
160 j.at("phase_delay").get_to(obj.phase_delay);
161 if (j.contains("measure_rtt"))
162 j.at("measure_rtt").get_to(obj.measure_rtt);
163 if (j.contains("control_sfp"))
164 j.at("control_sfp").get_to(obj.control_sfp);
165 if (j.contains("sfp_mux"))
166 j.at("sfp_mux").get_to(obj.sfp_mux);
167 }
168
169 inline void to_json(data_t& j, const TimingPartitionCmdPayload& obj) {
170 j["partition_id"] = obj.partition_id;
171 }
172
173 inline void from_json(const data_t& j, TimingPartitionCmdPayload& obj) {
174 if (j.contains("partition_id"))
175 j.at("partition_id").get_to(obj.partition_id);
176 }
177
179 j["partition_id"] = obj.partition_id;
180 j["trigger_mask"] = obj.trigger_mask;
181 j["spill_gate_enabled"] = obj.spill_gate_enabled;
182 j["rate_control_enabled"] = obj.rate_control_enabled;
183 }
184
186 if (j.contains("partition_id"))
187 j.at("partition_id").get_to(obj.partition_id);
188 if (j.contains("trigger_mask"))
189 j.at("trigger_mask").get_to(obj.trigger_mask);
190 if (j.contains("spill_gate_enabled"))
191 j.at("spill_gate_enabled").get_to(obj.spill_gate_enabled);
192 if (j.contains("rate_control_enabled"))
193 j.at("rate_control_enabled").get_to(obj.rate_control_enabled);
194 }
195
196} // namespace dunedaq::timinglibs::timingcmd
197
198#endif // DUNEDAQ_TIMINGLIBS_TIMINGCMD_NLJS_HPP
void from_json(const data_t &j, EndpointLocation &obj)
Definition Nljs.hpp:26
void to_json(data_t &j, const EndpointLocation &obj)
Definition Nljs.hpp:20