7#ifndef DUNEDAQ_TIMING_TIMINGHARDWAREINFO_NLJS_HPP
8#define DUNEDAQ_TIMING_TIMINGHARDWAREINFO_NLJS_HPP
14#include <nlohmann/json.hpp>
18 using data_t = nlohmann::json;
21 j[
"active_sfp_mux"] =
obj.active_sfp_mux;
22 j[
"mmcm_ok"] =
obj.mmcm_ok;
23 j[
"mmcm_sticky"] =
obj.mmcm_sticky;
24 j[
"pll_ok"] =
obj.pll_ok;
25 j[
"pll_sticky"] =
obj.pll_sticky;
29 if (j.contains(
"active_sfp_mux"))
30 j.at(
"active_sfp_mux").get_to(
obj.active_sfp_mux);
31 if (j.contains(
"mmcm_ok"))
32 j.at(
"mmcm_ok").get_to(
obj.mmcm_ok);
33 if (j.contains(
"mmcm_sticky"))
34 j.at(
"mmcm_sticky").get_to(
obj.mmcm_sticky);
35 if (j.contains(
"pll_ok"))
36 j.at(
"pll_ok").get_to(
obj.pll_ok);
37 if (j.contains(
"pll_sticky"))
38 j.at(
"pll_sticky").get_to(
obj.pll_sticky);
42 j[
"cdr_lol"] =
obj.cdr_lol;
43 j[
"cdr_los"] =
obj.cdr_los;
44 j[
"mmcm_ok"] =
obj.mmcm_ok;
45 j[
"mmcm_sticky"] =
obj.mmcm_sticky;
46 j[
"sfp_flt"] =
obj.sfp_flt;
47 j[
"sfp_los"] =
obj.sfp_los;
48 j[
"cdr_freq"] =
obj.cdr_freq;
49 j[
"pll_freq"] =
obj.pll_freq;
53 if (j.contains(
"cdr_lol"))
54 j.at(
"cdr_lol").get_to(
obj.cdr_lol);
55 if (j.contains(
"cdr_los"))
56 j.at(
"cdr_los").get_to(
obj.cdr_los);
57 if (j.contains(
"mmcm_ok"))
58 j.at(
"mmcm_ok").get_to(
obj.mmcm_ok);
59 if (j.contains(
"mmcm_sticky"))
60 j.at(
"mmcm_sticky").get_to(
obj.mmcm_sticky);
61 if (j.contains(
"sfp_flt"))
62 j.at(
"sfp_flt").get_to(
obj.sfp_flt);
63 if (j.contains(
"sfp_los"))
64 j.at(
"sfp_los").get_to(
obj.sfp_los);
65 if (j.contains(
"cdr_freq"))
66 j.at(
"cdr_freq").get_to(
obj.cdr_freq);
67 if (j.contains(
"pll_freq"))
68 j.at(
"pll_freq").get_to(
obj.pll_freq);
72 j[
"cdr_0_lol"] =
obj.cdr_0_lol;
73 j[
"cdr_0_los"] =
obj.cdr_0_los;
74 j[
"cdr_1_lol"] =
obj.cdr_1_lol;
75 j[
"cdr_1_los"] =
obj.cdr_1_los;
76 j[
"mmcm_ok"] =
obj.mmcm_ok;
77 j[
"mmcm_sticky"] =
obj.mmcm_sticky;
78 j[
"sfp_0_flt"] =
obj.sfp_0_flt;
79 j[
"sfp_0_los"] =
obj.sfp_0_los;
80 j[
"sfp_1_flt"] =
obj.sfp_1_flt;
81 j[
"sfp_1_los"] =
obj.sfp_1_los;
82 j[
"sfp_2_flt"] =
obj.sfp_2_flt;
83 j[
"sfp_2_los"] =
obj.sfp_2_los;
84 j[
"cdr_0_freq"] =
obj.cdr_0_freq;
85 j[
"cdr_1_freq"] =
obj.cdr_1_freq;
86 j[
"pll_freq"] =
obj.pll_freq;
90 if (j.contains(
"cdr_0_lol"))
91 j.at(
"cdr_0_lol").get_to(
obj.cdr_0_lol);
92 if (j.contains(
"cdr_0_los"))
93 j.at(
"cdr_0_los").get_to(
obj.cdr_0_los);
94 if (j.contains(
"cdr_1_lol"))
95 j.at(
"cdr_1_lol").get_to(
obj.cdr_1_lol);
96 if (j.contains(
"cdr_1_los"))
97 j.at(
"cdr_1_los").get_to(
obj.cdr_1_los);
98 if (j.contains(
"mmcm_ok"))
99 j.at(
"mmcm_ok").get_to(
obj.mmcm_ok);
100 if (j.contains(
"mmcm_sticky"))
101 j.at(
"mmcm_sticky").get_to(
obj.mmcm_sticky);
102 if (j.contains(
"sfp_0_flt"))
103 j.at(
"sfp_0_flt").get_to(
obj.sfp_0_flt);
104 if (j.contains(
"sfp_0_los"))
105 j.at(
"sfp_0_los").get_to(
obj.sfp_0_los);
106 if (j.contains(
"sfp_1_flt"))
107 j.at(
"sfp_1_flt").get_to(
obj.sfp_1_flt);
108 if (j.contains(
"sfp_1_los"))
109 j.at(
"sfp_1_los").get_to(
obj.sfp_1_los);
110 if (j.contains(
"sfp_2_flt"))
111 j.at(
"sfp_2_flt").get_to(
obj.sfp_2_flt);
112 if (j.contains(
"sfp_2_los"))
113 j.at(
"sfp_2_los").get_to(
obj.sfp_2_los);
114 if (j.contains(
"cdr_0_freq"))
115 j.at(
"cdr_0_freq").get_to(
obj.cdr_0_freq);
116 if (j.contains(
"cdr_1_freq"))
117 j.at(
"cdr_1_freq").get_to(
obj.cdr_1_freq);
118 if (j.contains(
"pll_freq"))
119 j.at(
"pll_freq").get_to(
obj.pll_freq);
123 j[
"cdr_lol"] =
obj.cdr_lol;
124 j[
"cdr_los"] =
obj.cdr_los;
125 j[
"mmcm_ok"] =
obj.mmcm_ok;
126 j[
"mmcm_sticky"] =
obj.mmcm_sticky;
127 j[
"pll_lol"] =
obj.pll_lol;
128 j[
"pll_ok"] =
obj.pll_ok;
129 j[
"pll_sticky"] =
obj.pll_sticky;
130 j[
"sfp_los"] =
obj.sfp_los;
131 j[
"ucdr_lol"] =
obj.ucdr_lol;
132 j[
"ucdr_los"] =
obj.ucdr_los;
133 j[
"usfp_flt"] =
obj.usfp_flt;
134 j[
"usfp_los"] =
obj.usfp_los;
135 j[
"active_sfp_mux"] =
obj.active_sfp_mux;
139 if (j.contains(
"cdr_lol"))
140 j.at(
"cdr_lol").get_to(
obj.cdr_lol);
141 if (j.contains(
"cdr_los"))
142 j.at(
"cdr_los").get_to(
obj.cdr_los);
143 if (j.contains(
"mmcm_ok"))
144 j.at(
"mmcm_ok").get_to(
obj.mmcm_ok);
145 if (j.contains(
"mmcm_sticky"))
146 j.at(
"mmcm_sticky").get_to(
obj.mmcm_sticky);
147 if (j.contains(
"pll_lol"))
148 j.at(
"pll_lol").get_to(
obj.pll_lol);
149 if (j.contains(
"pll_ok"))
150 j.at(
"pll_ok").get_to(
obj.pll_ok);
151 if (j.contains(
"pll_sticky"))
152 j.at(
"pll_sticky").get_to(
obj.pll_sticky);
153 if (j.contains(
"sfp_los"))
154 j.at(
"sfp_los").get_to(
obj.sfp_los);
155 if (j.contains(
"ucdr_lol"))
156 j.at(
"ucdr_lol").get_to(
obj.ucdr_lol);
157 if (j.contains(
"ucdr_los"))
158 j.at(
"ucdr_los").get_to(
obj.ucdr_los);
159 if (j.contains(
"usfp_flt"))
160 j.at(
"usfp_flt").get_to(
obj.usfp_flt);
161 if (j.contains(
"usfp_los"))
162 j.at(
"usfp_los").get_to(
obj.usfp_los);
163 if (j.contains(
"active_sfp_mux"))
164 j.at(
"active_sfp_mux").get_to(
obj.active_sfp_mux);
168 j[
"config_id"] =
obj.config_id;
169 j[
"cal_pll"] =
obj.cal_pll;
170 j[
"hold"] =
obj.hold;
173 j[
"los_xaxb"] =
obj.los_xaxb;
174 j[
"los_xaxb_flg"] =
obj.los_xaxb_flg;
176 j[
"oof_sticky"] =
obj.oof_sticky;
177 j[
"smbus_timeout"] =
obj.smbus_timeout;
178 j[
"smbus_timeout_flg"] =
obj.smbus_timeout_flg;
179 j[
"sys_in_cal"] =
obj.sys_in_cal;
180 j[
"sys_in_cal_flg"] =
obj.sys_in_cal_flg;
181 j[
"xaxb_err"] =
obj.xaxb_err;
182 j[
"xaxb_err_flg"] =
obj.xaxb_err_flg;
186 if (j.contains(
"config_id"))
187 j.at(
"config_id").get_to(
obj.config_id);
188 if (j.contains(
"cal_pll"))
189 j.at(
"cal_pll").get_to(
obj.cal_pll);
190 if (j.contains(
"hold"))
191 j.at(
"hold").get_to(
obj.hold);
192 if (j.contains(
"lol"))
193 j.at(
"lol").get_to(
obj.lol);
194 if (j.contains(
"los"))
195 j.at(
"los").get_to(
obj.los);
196 if (j.contains(
"los_xaxb"))
197 j.at(
"los_xaxb").get_to(
obj.los_xaxb);
198 if (j.contains(
"los_xaxb_flg"))
199 j.at(
"los_xaxb_flg").get_to(
obj.los_xaxb_flg);
200 if (j.contains(
"oof"))
201 j.at(
"oof").get_to(
obj.oof);
202 if (j.contains(
"oof_sticky"))
203 j.at(
"oof_sticky").get_to(
obj.oof_sticky);
204 if (j.contains(
"smbus_timeout"))
205 j.at(
"smbus_timeout").get_to(
obj.smbus_timeout);
206 if (j.contains(
"smbus_timeout_flg"))
207 j.at(
"smbus_timeout_flg").get_to(
obj.smbus_timeout_flg);
208 if (j.contains(
"sys_in_cal"))
209 j.at(
"sys_in_cal").get_to(
obj.sys_in_cal);
210 if (j.contains(
"sys_in_cal_flg"))
211 j.at(
"sys_in_cal_flg").get_to(
obj.sys_in_cal_flg);
212 if (j.contains(
"xaxb_err"))
213 j.at(
"xaxb_err").get_to(
obj.xaxb_err);
214 if (j.contains(
"xaxb_err_flg"))
215 j.at(
"xaxb_err_flg").get_to(
obj.xaxb_err_flg);
219 j[
"vendor_name"] =
obj.vendor_name;
220 j[
"vendor_pn"] =
obj.vendor_pn;
221 j[
"sfp_fault"] =
obj.sfp_fault;
222 j[
"ddm_supported"] =
obj.ddm_supported;
223 j[
"tx_disable_hw"] =
obj.tx_disable_hw;
224 j[
"tx_disable_sw_supported"] =
obj.tx_disable_sw_supported;
225 j[
"tx_disable_sw"] =
obj.tx_disable_sw;
226 j[
"temperature"] =
obj.temperature;
227 j[
"supply_voltage"] =
obj.supply_voltage;
228 j[
"rx_power"] =
obj.rx_power;
229 j[
"tx_power"] =
obj.tx_power;
230 j[
"laser_current"] =
obj.laser_current;
231 j[
"data_valid"] =
obj.data_valid;
235 if (j.contains(
"vendor_name"))
236 j.at(
"vendor_name").get_to(
obj.vendor_name);
237 if (j.contains(
"vendor_pn"))
238 j.at(
"vendor_pn").get_to(
obj.vendor_pn);
239 if (j.contains(
"sfp_fault"))
240 j.at(
"sfp_fault").get_to(
obj.sfp_fault);
241 if (j.contains(
"ddm_supported"))
242 j.at(
"ddm_supported").get_to(
obj.ddm_supported);
243 if (j.contains(
"tx_disable_hw"))
244 j.at(
"tx_disable_hw").get_to(
obj.tx_disable_hw);
245 if (j.contains(
"tx_disable_sw_supported"))
246 j.at(
"tx_disable_sw_supported").get_to(
obj.tx_disable_sw_supported);
247 if (j.contains(
"tx_disable_sw"))
248 j.at(
"tx_disable_sw").get_to(
obj.tx_disable_sw);
249 if (j.contains(
"temperature"))
250 j.at(
"temperature").get_to(
obj.temperature);
251 if (j.contains(
"supply_voltage"))
252 j.at(
"supply_voltage").get_to(
obj.supply_voltage);
253 if (j.contains(
"rx_power"))
254 j.at(
"rx_power").get_to(
obj.rx_power);
255 if (j.contains(
"tx_power"))
256 j.at(
"tx_power").get_to(
obj.tx_power);
257 if (j.contains(
"laser_current"))
258 j.at(
"laser_current").get_to(
obj.laser_current);
259 if (j.contains(
"data_valid"))
260 j.at(
"data_valid").get_to(
obj.data_valid);
264 j[
"cdr_lol"] =
obj.cdr_lol;
265 j[
"cdr_los"] =
obj.cdr_los;
266 j[
"mmcm_ok"] =
obj.mmcm_ok;
267 j[
"mmcm_sticky"] =
obj.mmcm_sticky;
268 j[
"pll_ok"] =
obj.pll_ok;
269 j[
"pll_sticky"] =
obj.pll_sticky;
270 j[
"sfp_flt"] =
obj.sfp_flt;
271 j[
"sfp_los"] =
obj.sfp_los;
275 if (j.contains(
"cdr_lol"))
276 j.at(
"cdr_lol").get_to(
obj.cdr_lol);
277 if (j.contains(
"cdr_los"))
278 j.at(
"cdr_los").get_to(
obj.cdr_los);
279 if (j.contains(
"mmcm_ok"))
280 j.at(
"mmcm_ok").get_to(
obj.mmcm_ok);
281 if (j.contains(
"mmcm_sticky"))
282 j.at(
"mmcm_sticky").get_to(
obj.mmcm_sticky);
283 if (j.contains(
"pll_ok"))
284 j.at(
"pll_ok").get_to(
obj.pll_ok);
285 if (j.contains(
"pll_sticky"))
286 j.at(
"pll_sticky").get_to(
obj.pll_sticky);
287 if (j.contains(
"sfp_flt"))
288 j.at(
"sfp_flt").get_to(
obj.sfp_flt);
289 if (j.contains(
"sfp_los"))
290 j.at(
"sfp_los").get_to(
obj.sfp_los);
void to_json(data_t &j, const TimingFIBMonitorData &obj)
void from_json(const data_t &j, TimingFIBMonitorData &obj)