2 * This is code generated by jsongen.py. Do not hand-hack it!
8 const struct json_attr_t json_ais1[] = {
10 {"status", t_uinteger, .addr.uinteger = &ais->type1.status,
12 {"turn", t_integer, .addr.integer = &ais->type1.turn,
13 .dflt.integer = AIS_TURN_NOT_AVAILABLE},
14 {"speed", t_uinteger, .addr.uinteger = &ais->type1.speed,
15 .dflt.uinteger = AIS_SPEED_NOT_AVAILABLE},
16 {"accuracy", t_boolean, .addr.boolean = &ais->type1.accuracy,
17 .dflt.boolean = false},
18 {"lon", t_integer, .addr.integer = &ais->type1.lon,
19 .dflt.integer = AIS_LON_NOT_AVAILABLE},
20 {"lat", t_integer, .addr.integer = &ais->type1.lat,
21 .dflt.integer = AIS_LAT_NOT_AVAILABLE},
22 {"course", t_uinteger, .addr.uinteger = &ais->type1.course,
23 .dflt.uinteger = AIS_COURSE_NOT_AVAILABLE},
24 {"heading", t_uinteger, .addr.uinteger = &ais->type1.heading,
25 .dflt.uinteger = AIS_HEADING_NOT_AVAILABLE},
26 {"second", t_uinteger, .addr.uinteger = &ais->type1.second,
27 .dflt.uinteger = AIS_SEC_NOT_AVAILABLE},
28 {"maneuver", t_uinteger, .addr.uinteger = &ais->type1.maneuver,
29 .dflt.uinteger = AIS_SEC_INOPERATIVE},
30 {"raim", t_boolean, .addr.boolean = &ais->type1.raim,
31 .dflt.boolean = false},
32 {"radio", t_uinteger, .addr.uinteger = &ais->type1.radio,
37 char timestamp[JSON_VAL_MAX+1];
38 const struct json_attr_t json_ais4[] = {
40 {"timestamp", t_string, .addr.string = timestamp,
41 .len = sizeof(timestamp)},
42 {"accuracy", t_boolean, .addr.boolean = &ais->type4.accuracy,
43 .dflt.boolean = true},
44 {"lon", t_integer, .addr.integer = &ais->type4.lon,
45 .dflt.integer = AIS_LON_NOT_AVAILABLE},
46 {"lat", t_integer, .addr.integer = &ais->type4.lat,
47 .dflt.integer = AIS_LAT_NOT_AVAILABLE},
48 {"epfd", t_uinteger, .addr.uinteger = &ais->type4.epfd,
50 {"raim", t_boolean, .addr.boolean = &ais->type4.raim,
51 .dflt.boolean = false},
52 {"radio", t_uinteger, .addr.uinteger = &ais->type4.radio,
57 char eta[JSON_VAL_MAX+1];
58 const struct json_attr_t json_ais5[] = {
60 {"imo", t_uinteger, .addr.uinteger = &ais->type5.imo,
62 {"ais_version", t_uinteger, .addr.uinteger = &ais->type5.ais_version,
64 {"callsign", t_string, .addr.string = ais->type5.callsign,
65 .len = sizeof(ais->type5.callsign)},
66 {"shipname", t_string, .addr.string = ais->type5.shipname,
67 .len = sizeof(ais->type5.shipname)},
68 {"shiptype", t_uinteger, .addr.uinteger = &ais->type5.shiptype,
70 {"to_bow", t_uinteger, .addr.uinteger = &ais->type5.to_bow,
72 {"to_stern", t_uinteger, .addr.uinteger = &ais->type5.to_stern,
74 {"to_port", t_uinteger, .addr.uinteger = &ais->type5.to_port,
76 {"to_starboard", t_uinteger, .addr.uinteger = &ais->type5.to_starboard,
78 {"epfd", t_uinteger, .addr.uinteger = &ais->type5.epfd,
80 {"eta", t_string, .addr.string = eta,
82 {"draught", t_uinteger, .addr.uinteger = &ais->type5.draught,
84 {"destination", t_string, .addr.string = ais->type5.destination,
85 .len = sizeof(ais->type5.destination)},
86 {"dte", t_uinteger, .addr.uinteger = &ais->type5.dte,
91 char data[JSON_VAL_MAX+1];
92 const struct json_attr_t json_ais6[] = {
94 {"seqno", t_uinteger, .addr.uinteger = &ais->type6.seqno,
96 {"dest_mmsi", t_uinteger, .addr.uinteger = &ais->type6.dest_mmsi,
98 {"retransmit", t_boolean, .addr.boolean = &ais->type6.retransmit,
99 .dflt.boolean = false},
100 {"dac", t_uinteger, .addr.uinteger = &ais->type6.dac,
102 {"fid", t_uinteger, .addr.uinteger = &ais->type6.fid,
104 {"data", t_string, .addr.string = data,
105 .len = sizeof(data)},
109 const struct json_attr_t json_ais7[] = {
111 {"mmsi1", t_uinteger, .addr.uinteger = &ais->type7.mmsi1,
113 {"mmsi2", t_uinteger, .addr.uinteger = &ais->type7.mmsi2,
115 {"mmsi3", t_uinteger, .addr.uinteger = &ais->type7.mmsi3,
117 {"mmsi4", t_uinteger, .addr.uinteger = &ais->type7.mmsi4,
122 const struct json_attr_t json_ais8[] = {
124 {"dac", t_uinteger, .addr.uinteger = &ais->type8.dac,
126 {"fid", t_uinteger, .addr.uinteger = &ais->type8.fid,
128 {"data", t_string, .addr.string = data,
129 .len = sizeof(data)},
133 const struct json_attr_t json_ais9[] = {
135 {"alt", t_uinteger, .addr.uinteger = &ais->type9.alt,
136 .dflt.uinteger = AIS_ALT_NOT_AVAILABLE},
137 {"speed", t_uinteger, .addr.uinteger = &ais->type9.speed,
138 .dflt.uinteger = AIS_SPEED_NOT_AVAILABLE},
139 {"accuracy", t_boolean, .addr.boolean = &ais->type9.accuracy,
140 .dflt.boolean = false},
141 {"lon", t_integer, .addr.integer = &ais->type9.lon,
142 .dflt.integer = AIS_LON_NOT_AVAILABLE},
143 {"lat", t_integer, .addr.integer = &ais->type9.lat,
144 .dflt.integer = AIS_LAT_NOT_AVAILABLE},
145 {"course", t_uinteger, .addr.uinteger = &ais->type9.course,
146 .dflt.uinteger = AIS_COURSE_NOT_AVAILABLE},
147 {"second", t_uinteger, .addr.uinteger = &ais->type9.second,
148 .dflt.uinteger = AIS_SEC_NOT_AVAILABLE},
149 {"regional", t_uinteger, .addr.uinteger = &ais->type9.regional,
151 {"dte", t_uinteger, .addr.uinteger = &ais->type9.dte,
153 {"raim", t_boolean, .addr.boolean = &ais->type9.raim,
154 .dflt.boolean = false},
155 {"radio", t_uinteger, .addr.uinteger = &ais->type9.radio,
160 const struct json_attr_t json_ais10[] = {
162 {"dest_mmsi", t_uinteger, .addr.uinteger = &ais->type10.dest_mmsi,
167 const struct json_attr_t json_ais12[] = {
169 {"seqno", t_uinteger, .addr.uinteger = &ais->type12.seqno,
171 {"dest_mmsi", t_uinteger, .addr.uinteger = &ais->type12.dest_mmsi,
173 {"retransmit", t_boolean, .addr.boolean = &ais->type12.retransmit,
175 {"text", t_string, .addr.string = ais->type12.text,
176 .len = sizeof(ais->type12.text)},
180 const struct json_attr_t json_ais14[] = {
182 {"text", t_string, .addr.string = ais->type14.text,
183 .len = sizeof(ais->type14.text)},
187 const struct json_attr_t json_ais15[] = {
189 {"mmsi1", t_uinteger, .addr.uinteger = &ais->type15.mmsi1,
191 {"type1_1", t_uinteger, .addr.uinteger = &ais->type15.type1_1,
193 {"offset1_1", t_uinteger, .addr.uinteger = &ais->type15.offset1_1,
195 {"type1_2", t_uinteger, .addr.uinteger = &ais->type15.type1_2,
197 {"offset1_2", t_uinteger, .addr.uinteger = &ais->type15.offset1_2,
199 {"mmsi2", t_uinteger, .addr.uinteger = &ais->type15.mmsi2,
201 {"type2_1", t_uinteger, .addr.uinteger = &ais->type15.type2_1,
203 {"offset2_1", t_uinteger, .addr.uinteger = &ais->type15.offset2_1,
208 const struct json_attr_t json_ais16[] = {
210 {"mmsi1", t_uinteger, .addr.uinteger = &ais->type16.mmsi1,
212 {"offset1", t_uinteger, .addr.uinteger = &ais->type16.offset1,
214 {"increment1", t_uinteger, .addr.uinteger = &ais->type16.increment1,
216 {"mmsi2", t_uinteger, .addr.uinteger = &ais->type16.mmsi2,
218 {"offset2", t_uinteger, .addr.uinteger = &ais->type16.offset2,
220 {"increment2", t_uinteger, .addr.uinteger = &ais->type16.increment2,
225 const struct json_attr_t json_ais17[] = {
227 {"lon", t_integer, .addr.integer = &ais->type17.lon,
228 .dflt.integer = AIS_GNS_LON_NOT_AVAILABLE},
229 {"lat", t_integer, .addr.integer = &ais->type17.lat,
230 .dflt.integer = AIS_GNS_LAT_NOT_AVAILABLE},
231 {"data", t_string, .addr.string = data,
232 .len = sizeof(data)},
236 const struct json_attr_t json_ais18[] = {
238 {"reserved", t_uinteger, .addr.uinteger = &ais->type18.reserved,
240 {"speed", t_uinteger, .addr.uinteger = &ais->type18.speed,
241 .dflt.uinteger = AIS_SPEED_NOT_AVAILABLE},
242 {"accuracy", t_boolean, .addr.boolean = &ais->type18.accuracy,
243 .dflt.boolean = false},
244 {"lon", t_integer, .addr.integer = &ais->type18.lon,
245 .dflt.integer = AIS_LON_NOT_AVAILABLE},
246 {"lat", t_integer, .addr.integer = &ais->type18.lat,
247 .dflt.integer = AIS_LAT_NOT_AVAILABLE},
248 {"course", t_uinteger, .addr.uinteger = &ais->type18.course,
249 .dflt.uinteger = AIS_COURSE_NOT_AVAILABLE},
250 {"heading", t_uinteger, .addr.uinteger = &ais->type18.heading,
251 .dflt.uinteger = AIS_HEADING_NOT_AVAILABLE},
252 {"second", t_uinteger, .addr.uinteger = &ais->type18.second,
253 .dflt.uinteger = AIS_SEC_NOT_AVAILABLE},
254 {"regional", t_uinteger, .addr.uinteger = &ais->type18.regional,
256 {"cs", t_boolean, .addr.boolean = &ais->type18.cs,
257 .dflt.boolean = false},
258 {"display", t_boolean, .addr.boolean = &ais->type18.display,
259 .dflt.boolean = false},
260 {"dsc", t_boolean, .addr.boolean = &ais->type18.dsc,
261 .dflt.boolean = false},
262 {"band", t_boolean, .addr.boolean = &ais->type18.band,
263 .dflt.boolean = false},
264 {"msg22", t_boolean, .addr.boolean = &ais->type18.msg22,
265 .dflt.boolean = false},
266 {"raim", t_boolean, .addr.boolean = &ais->type18.raim,
267 .dflt.boolean = false},
268 {"radio", t_uinteger, .addr.uinteger = &ais->type18.radio,
273 const struct json_attr_t json_ais19[] = {
275 {"reserved", t_uinteger, .addr.uinteger = &ais->type19.reserved,
277 {"speed", t_uinteger, .addr.uinteger = &ais->type19.speed,
278 .dflt.uinteger = AIS_SPEED_NOT_AVAILABLE},
279 {"accuracy", t_boolean, .addr.boolean = &ais->type19.accuracy,
280 .dflt.boolean = false},
281 {"lon", t_integer, .addr.integer = &ais->type19.lon,
282 .dflt.integer = AIS_LON_NOT_AVAILABLE},
283 {"lat", t_integer, .addr.integer = &ais->type19.lat,
284 .dflt.integer = AIS_LAT_NOT_AVAILABLE},
285 {"course", t_uinteger, .addr.uinteger = &ais->type19.course,
286 .dflt.uinteger = AIS_COURSE_NOT_AVAILABLE},
287 {"heading", t_uinteger, .addr.uinteger = &ais->type19.heading,
288 .dflt.uinteger = AIS_HEADING_NOT_AVAILABLE},
289 {"second", t_uinteger, .addr.uinteger = &ais->type19.second,
290 .dflt.uinteger = AIS_SEC_NOT_AVAILABLE},
291 {"regional", t_uinteger, .addr.uinteger = &ais->type19.regional,
293 {"shipname", t_string, .addr.string = ais->type19.shipname,
294 .len = sizeof(ais->type19.shipname)},
295 {"shiptype", t_uinteger, .addr.uinteger = &ais->type19.shiptype,
297 {"to_bow", t_uinteger, .addr.uinteger = &ais->type19.to_bow,
299 {"to_stern", t_uinteger, .addr.uinteger = &ais->type19.to_stern,
301 {"to_port", t_uinteger, .addr.uinteger = &ais->type19.to_port,
303 {"to_starboard", t_uinteger, .addr.uinteger = &ais->type19.to_starboard,
305 {"epfd", t_uinteger, .addr.uinteger = &ais->type19.epfd,
307 {"raim", t_boolean, .addr.boolean = &ais->type19.raim,
308 .dflt.boolean = false},
309 {"dte", t_uinteger, .addr.uinteger = &ais->type19.dte,
311 {"assigned", t_boolean, .addr.boolean = &ais->type19.assigned,
312 .dflt.boolean = false},
316 const struct json_attr_t json_ais20[] = {
318 {"offset1", t_uinteger, .addr.uinteger = &ais->type20.offset1,
320 {"number1", t_uinteger, .addr.uinteger = &ais->type20.number1,
322 {"timeout1", t_uinteger, .addr.uinteger = &ais->type20.timeout1,
324 {"increment1", t_uinteger, .addr.uinteger = &ais->type20.increment1,
326 {"offset2", t_uinteger, .addr.uinteger = &ais->type20.offset2,
328 {"number2", t_uinteger, .addr.uinteger = &ais->type20.number2,
330 {"timeout2", t_uinteger, .addr.uinteger = &ais->type20.timeout2,
332 {"increment2", t_uinteger, .addr.uinteger = &ais->type20.increment2,
334 {"offset3", t_uinteger, .addr.uinteger = &ais->type20.offset3,
336 {"number3", t_uinteger, .addr.uinteger = &ais->type20.number3,
338 {"timeout3", t_uinteger, .addr.uinteger = &ais->type20.timeout3,
340 {"increment3", t_uinteger, .addr.uinteger = &ais->type20.increment3,
342 {"offset4", t_uinteger, .addr.uinteger = &ais->type20.offset4,
344 {"number4", t_uinteger, .addr.uinteger = &ais->type20.number4,
346 {"timeout4", t_uinteger, .addr.uinteger = &ais->type20.timeout4,
348 {"increment4", t_uinteger, .addr.uinteger = &ais->type20.increment4,
353 const struct json_attr_t json_ais21[] = {
355 {"aid_type", t_uinteger, .addr.uinteger = &ais->type21.aid_type,
357 {"name", t_string, .addr.string = ais->type21.name,
358 .len = sizeof(ais->type21.name)},
359 {"accuracy", t_boolean, .addr.boolean = &ais->type21.accuracy,
360 .dflt.boolean = false},
361 {"lon", t_integer, .addr.integer = &ais->type21.lon,
362 .dflt.integer = AIS_LON_NOT_AVAILABLE},
363 {"lat", t_integer, .addr.integer = &ais->type21.lat,
364 .dflt.integer = AIS_LAT_NOT_AVAILABLE},
365 {"to_bow", t_uinteger, .addr.uinteger = &ais->type21.to_bow,
367 {"to_stern", t_uinteger, .addr.uinteger = &ais->type21.to_stern,
369 {"to_port", t_uinteger, .addr.uinteger = &ais->type21.to_port,
371 {"to_starboard", t_uinteger, .addr.uinteger = &ais->type21.to_starboard,
373 {"epfd", t_uinteger, .addr.uinteger = &ais->type21.epfd,
375 {"second", t_uinteger, .addr.uinteger = &ais->type21.second,
377 {"regional", t_uinteger, .addr.uinteger = &ais->type21.regional,
379 {"off_position", t_boolean, .addr.boolean = &ais->type21.off_position,
380 .dflt.boolean = false},
381 {"raim", t_boolean, .addr.boolean = &ais->type21.raim,
382 .dflt.boolean = false},
383 {"virtual_aid", t_boolean, .addr.boolean = &ais->type21.virtual_aid,
384 .dflt.boolean = false},
388 const struct json_attr_t json_ais22[] = {
390 {"channel_a", t_uinteger, .addr.uinteger = &ais->type22.channel_a,
392 {"channel_b", t_uinteger, .addr.uinteger = &ais->type22.channel_b,
394 {"txrx", t_uinteger, .addr.uinteger = &ais->type22.txrx,
396 {"power", t_boolean, .addr.boolean = &ais->type22.power,
397 .dflt.boolean = false},
398 {"ne_lon", t_integer, .addr.integer = &ais->type22.area.ne_lon,
399 .dflt.integer = AIS_GNS_LON_NOT_AVAILABLE},
400 {"ne_lat", t_integer, .addr.integer = &ais->type22.area.ne_lat,
401 .dflt.integer = AIS_GNS_LAT_NOT_AVAILABLE},
402 {"sw_lon", t_integer, .addr.integer = &ais->type22.area.sw_lon,
403 .dflt.integer = AIS_GNS_LON_NOT_AVAILABLE},
404 {"sw_lat", t_integer, .addr.integer = &ais->type22.area.sw_lat,
405 .dflt.integer = AIS_GNS_LAT_NOT_AVAILABLE},
406 {"dest1", t_uinteger, .addr.uinteger = &ais->type22.mmsi.dest1,
408 {"dest2", t_uinteger, .addr.uinteger = &ais->type22.mmsi.dest2,
410 {"addressed", t_boolean, .addr.boolean = &ais->type22.addressed,
411 .dflt.boolean = false},
412 {"band_a", t_boolean, .addr.boolean = &ais->type22.band_a,
413 .dflt.boolean = false},
414 {"band_b", t_boolean, .addr.boolean = &ais->type22.band_b,
415 .dflt.boolean = false},
416 {"zonesize", t_uinteger, .addr.uinteger = &ais->type22.zonesize,
421 const struct json_attr_t json_ais23[] = {
423 {"ne_lon", t_integer, .addr.integer = &ais->type23.ne_lon,
424 .dflt.integer = AIS_GNS_LON_NOT_AVAILABLE},
425 {"ne_lat", t_integer, .addr.integer = &ais->type23.ne_lat,
426 .dflt.integer = AIS_GNS_LAT_NOT_AVAILABLE},
427 {"sw_lon", t_integer, .addr.integer = &ais->type23.sw_lon,
428 .dflt.integer = AIS_GNS_LON_NOT_AVAILABLE},
429 {"sw_lat", t_integer, .addr.integer = &ais->type23.sw_lat,
430 .dflt.integer = AIS_GNS_LAT_NOT_AVAILABLE},
431 {"stationtype", t_uinteger, .addr.uinteger = &ais->type23.stationtype,
433 {"shiptype", t_uinteger, .addr.uinteger = &ais->type23.shiptype,
435 {"txrx", t_uinteger, .addr.uinteger = &ais->type23.txrx,
437 {"interval", t_uinteger, .addr.uinteger = &ais->type23.interval,
439 {"quiet", t_uinteger, .addr.uinteger = &ais->type23.quiet,
444 const struct json_attr_t json_ais24[] = {
446 {"shipname", t_string, .addr.string = ais->type24.shipname,
447 .len = sizeof(ais->type24.shipname)},
448 {"shiptype", t_uinteger, .addr.uinteger = &ais->type24.shiptype,
450 {"vendorid", t_string, .addr.string = ais->type24.vendorid,
451 .len = sizeof(ais->type24.vendorid)},
452 {"callsign", t_string, .addr.string = ais->type24.callsign,
453 .len = sizeof(ais->type24.callsign)},
454 {"mothership_mmsi",t_uinteger, .addr.uinteger = &ais->type24.mothership_mmsi,
456 {"to_bow", t_uinteger, .addr.uinteger = &ais->type24.dim.to_bow,
458 {"to_stern", t_uinteger, .addr.uinteger = &ais->type24.dim.to_stern,
460 {"to_port", t_uinteger, .addr.uinteger = &ais->type24.dim.to_port,
462 {"to_starboard", t_uinteger, .addr.uinteger = &ais->type24.dim.to_starboard,
467 const struct json_attr_t json_ais25[] = {
469 {"addressed", t_boolean, .addr.boolean = &ais->type25.addressed,
470 .dflt.boolean = false},
471 {"structured", t_boolean, .addr.boolean = &ais->type25.structured,
472 .dflt.boolean = false},
473 {"dest_mmsi", t_uinteger, .addr.uinteger = &ais->type25.dest_mmsi,
475 {"app_id", t_uinteger, .addr.uinteger = &ais->type25.app_id,
477 {"data", t_string, .addr.string = data,
478 .len = sizeof(data)},
482 const struct json_attr_t json_ais26[] = {
484 {"addressed", t_boolean, .addr.boolean = &ais->type26.addressed,
485 .dflt.boolean = false},
486 {"structured", t_boolean, .addr.boolean = &ais->type26.structured,
487 .dflt.boolean = false},
488 {"dest_mmsi", t_uinteger, .addr.uinteger = &ais->type26.dest_mmsi,
490 {"app_id", t_uinteger, .addr.uinteger = &ais->type26.app_id,
492 {"data", t_string, .addr.string = data,
493 .len = sizeof(data)},
494 {"radio", t_uinteger, .addr.uinteger = &ais->type26.radio,
500 /*@ +fullinitblock */
502 /* Generated code ends. */