suricata
output-json-dnp3-objects.c
Go to the documentation of this file.
1/* Copyright (C) 2015 Open Information Security Foundation
2 *
3 * You can copy, redistribute or modify this Program under the terms of
4 * the GNU General Public License version 2 as published by the Free
5 * Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 *
12 * You should have received a copy of the GNU General Public License
13 * version 2 along with this program; if not, write to the Free Software
14 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
15 * 02110-1301, USA.
16 */
17
18/**
19 * DO NOT EDIT. THIS FILE IS AUTO-GENERATED.
20 *
21 * Generated by command:
22 * ./scripts/dnp3-gen/dnp3-gen.py
23 */
24
25#include "suricata-common.h"
26
27#include "app-layer-dnp3.h"
30#include "output-json.h"
31
32// clang-format off
33void OutputJsonDNP3SetItem(SCJsonBuilder *js, DNP3Object *object,
34 DNP3Point *point)
35{
36
37 switch (DNP3_OBJECT_CODE(object->group, object->variation)) {
38 case DNP3_OBJECT_CODE(1, 1): {
39 DNP3ObjectG1V1 *data = point->data;
40 SCJbSetUint(js, "state", data->state);
41 break;
42 }
43 case DNP3_OBJECT_CODE(1, 2): {
44 DNP3ObjectG1V2 *data = point->data;
45 SCJbSetUint(js, "online", data->online);
46 SCJbSetUint(js, "restart", data->restart);
47 SCJbSetUint(js, "comm_lost", data->comm_lost);
48 SCJbSetUint(js, "remote_forced", data->remote_forced);
49 SCJbSetUint(js, "local_forced", data->local_forced);
50 SCJbSetUint(js, "chatter_filter", data->chatter_filter);
51 SCJbSetUint(js, "reserved", data->reserved);
52 SCJbSetUint(js, "state", data->state);
53 break;
54 }
55 case DNP3_OBJECT_CODE(2, 1): {
56 DNP3ObjectG2V1 *data = point->data;
57 SCJbSetUint(js, "state", data->state);
58 break;
59 }
60 case DNP3_OBJECT_CODE(2, 2): {
61 DNP3ObjectG2V2 *data = point->data;
62 SCJbSetUint(js, "online", data->online);
63 SCJbSetUint(js, "restart", data->restart);
64 SCJbSetUint(js, "comm_lost", data->comm_lost);
65 SCJbSetUint(js, "remote_forced", data->remote_forced);
66 SCJbSetUint(js, "local_forced", data->local_forced);
67 SCJbSetUint(js, "chatter_filter", data->chatter_filter);
68 SCJbSetUint(js, "reserved", data->reserved);
69 SCJbSetUint(js, "state", data->state);
70 SCJbSetUint(js, "timestamp", data->timestamp);
71 break;
72 }
73 case DNP3_OBJECT_CODE(2, 3): {
74 DNP3ObjectG2V3 *data = point->data;
75 SCJbSetUint(js, "online", data->online);
76 SCJbSetUint(js, "restart", data->restart);
77 SCJbSetUint(js, "comm_lost", data->comm_lost);
78 SCJbSetUint(js, "remote_forced", data->remote_forced);
79 SCJbSetUint(js, "local_forced", data->local_forced);
80 SCJbSetUint(js, "chatter_filter", data->chatter_filter);
81 SCJbSetUint(js, "reserved", data->reserved);
82 SCJbSetUint(js, "state", data->state);
83 SCJbSetUint(js, "timestamp", data->timestamp);
84 break;
85 }
86 case DNP3_OBJECT_CODE(3, 1): {
87 DNP3ObjectG3V1 *data = point->data;
88 SCJbSetUint(js, "state", data->state);
89 break;
90 }
91 case DNP3_OBJECT_CODE(3, 2): {
92 DNP3ObjectG3V2 *data = point->data;
93 SCJbSetUint(js, "online", data->online);
94 SCJbSetUint(js, "restart", data->restart);
95 SCJbSetUint(js, "comm_lost", data->comm_lost);
96 SCJbSetUint(js, "remote_forced", data->remote_forced);
97 SCJbSetUint(js, "local_forced", data->local_forced);
98 SCJbSetUint(js, "chatter_filter", data->chatter_filter);
99 SCJbSetUint(js, "state", data->state);
100 break;
101 }
102 case DNP3_OBJECT_CODE(4, 1): {
103 DNP3ObjectG4V1 *data = point->data;
104 SCJbSetUint(js, "online", data->online);
105 SCJbSetUint(js, "restart", data->restart);
106 SCJbSetUint(js, "comm_lost", data->comm_lost);
107 SCJbSetUint(js, "remote_forced", data->remote_forced);
108 SCJbSetUint(js, "local_forced", data->local_forced);
109 SCJbSetUint(js, "chatter_filter", data->chatter_filter);
110 SCJbSetUint(js, "state", data->state);
111 break;
112 }
113 case DNP3_OBJECT_CODE(4, 2): {
114 DNP3ObjectG4V2 *data = point->data;
115 SCJbSetUint(js, "online", data->online);
116 SCJbSetUint(js, "restart", data->restart);
117 SCJbSetUint(js, "comm_lost", data->comm_lost);
118 SCJbSetUint(js, "remote_forced", data->remote_forced);
119 SCJbSetUint(js, "local_forced", data->local_forced);
120 SCJbSetUint(js, "chatter_filter", data->chatter_filter);
121 SCJbSetUint(js, "state", data->state);
122 SCJbSetUint(js, "timestamp", data->timestamp);
123 break;
124 }
125 case DNP3_OBJECT_CODE(4, 3): {
126 DNP3ObjectG4V3 *data = point->data;
127 SCJbSetUint(js, "online", data->online);
128 SCJbSetUint(js, "restart", data->restart);
129 SCJbSetUint(js, "comm_lost", data->comm_lost);
130 SCJbSetUint(js, "remote_forced", data->remote_forced);
131 SCJbSetUint(js, "local_forced", data->local_forced);
132 SCJbSetUint(js, "chatter_filter", data->chatter_filter);
133 SCJbSetUint(js, "state", data->state);
134 SCJbSetUint(js, "relative_time_ms", data->relative_time_ms);
135 break;
136 }
137 case DNP3_OBJECT_CODE(10, 1): {
138 DNP3ObjectG10V1 *data = point->data;
139 SCJbSetUint(js, "state", data->state);
140 break;
141 }
142 case DNP3_OBJECT_CODE(10, 2): {
143 DNP3ObjectG10V2 *data = point->data;
144 SCJbSetUint(js, "online", data->online);
145 SCJbSetUint(js, "restart", data->restart);
146 SCJbSetUint(js, "comm_lost", data->comm_lost);
147 SCJbSetUint(js, "remote_forced", data->remote_forced);
148 SCJbSetUint(js, "local_forced", data->local_forced);
149 SCJbSetUint(js, "reserved0", data->reserved0);
150 SCJbSetUint(js, "reserved1", data->reserved1);
151 SCJbSetUint(js, "state", data->state);
152 break;
153 }
154 case DNP3_OBJECT_CODE(11, 1): {
155 DNP3ObjectG11V1 *data = point->data;
156 SCJbSetUint(js, "online", data->online);
157 SCJbSetUint(js, "restart", data->restart);
158 SCJbSetUint(js, "comm_lost", data->comm_lost);
159 SCJbSetUint(js, "remote_forced", data->remote_forced);
160 SCJbSetUint(js, "local_forced", data->local_forced);
161 SCJbSetUint(js, "reserved0", data->reserved0);
162 SCJbSetUint(js, "reserved1", data->reserved1);
163 SCJbSetUint(js, "state", data->state);
164 break;
165 }
166 case DNP3_OBJECT_CODE(11, 2): {
167 DNP3ObjectG11V2 *data = point->data;
168 SCJbSetUint(js, "online", data->online);
169 SCJbSetUint(js, "restart", data->restart);
170 SCJbSetUint(js, "comm_lost", data->comm_lost);
171 SCJbSetUint(js, "remote_forced", data->remote_forced);
172 SCJbSetUint(js, "local_forced", data->local_forced);
173 SCJbSetUint(js, "reserved0", data->reserved0);
174 SCJbSetUint(js, "reserved1", data->reserved1);
175 SCJbSetUint(js, "state", data->state);
176 SCJbSetUint(js, "timestamp", data->timestamp);
177 break;
178 }
179 case DNP3_OBJECT_CODE(12, 1): {
180 DNP3ObjectG12V1 *data = point->data;
181 SCJbSetUint(js, "op_type", data->op_type);
182 SCJbSetUint(js, "qu", data->qu);
183 SCJbSetUint(js, "cr", data->cr);
184 SCJbSetUint(js, "tcc", data->tcc);
185 SCJbSetUint(js, "count", data->count);
186 SCJbSetUint(js, "ontime", data->ontime);
187 SCJbSetUint(js, "offtime", data->offtime);
188 SCJbSetUint(js, "status_code", data->status_code);
189 SCJbSetUint(js, "reserved", data->reserved);
190 break;
191 }
192 case DNP3_OBJECT_CODE(12, 2): {
193 DNP3ObjectG12V2 *data = point->data;
194 SCJbSetUint(js, "op_type", data->op_type);
195 SCJbSetUint(js, "qu", data->qu);
196 SCJbSetUint(js, "cr", data->cr);
197 SCJbSetUint(js, "tcc", data->tcc);
198 SCJbSetUint(js, "count", data->count);
199 SCJbSetUint(js, "ontime", data->ontime);
200 SCJbSetUint(js, "offtime", data->offtime);
201 SCJbSetUint(js, "status_code", data->status_code);
202 SCJbSetUint(js, "reserved", data->reserved);
203 break;
204 }
205 case DNP3_OBJECT_CODE(12, 3): {
206 DNP3ObjectG12V3 *data = point->data;
207 SCJbSetUint(js, "point", data->point);
208 break;
209 }
210 case DNP3_OBJECT_CODE(13, 1): {
211 DNP3ObjectG13V1 *data = point->data;
212 SCJbSetUint(js, "status_code", data->status_code);
213 SCJbSetUint(js, "commanded_state", data->commanded_state);
214 break;
215 }
216 case DNP3_OBJECT_CODE(13, 2): {
217 DNP3ObjectG13V2 *data = point->data;
218 SCJbSetUint(js, "status_code", data->status_code);
219 SCJbSetUint(js, "commanded_state", data->commanded_state);
220 SCJbSetUint(js, "timestamp", data->timestamp);
221 break;
222 }
223 case DNP3_OBJECT_CODE(20, 1): {
224 DNP3ObjectG20V1 *data = point->data;
225 SCJbSetUint(js, "online", data->online);
226 SCJbSetUint(js, "restart", data->restart);
227 SCJbSetUint(js, "comm_lost", data->comm_lost);
228 SCJbSetUint(js, "remote_forced", data->remote_forced);
229 SCJbSetUint(js, "local_forced", data->local_forced);
230 SCJbSetUint(js, "rollover", data->rollover);
231 SCJbSetUint(js, "discontinuity", data->discontinuity);
232 SCJbSetUint(js, "reserved0", data->reserved0);
233 SCJbSetUint(js, "count", data->count);
234 break;
235 }
236 case DNP3_OBJECT_CODE(20, 2): {
237 DNP3ObjectG20V2 *data = point->data;
238 SCJbSetUint(js, "online", data->online);
239 SCJbSetUint(js, "restart", data->restart);
240 SCJbSetUint(js, "comm_lost", data->comm_lost);
241 SCJbSetUint(js, "remote_forced", data->remote_forced);
242 SCJbSetUint(js, "local_forced", data->local_forced);
243 SCJbSetUint(js, "rollover", data->rollover);
244 SCJbSetUint(js, "discontinuity", data->discontinuity);
245 SCJbSetUint(js, "reserved0", data->reserved0);
246 SCJbSetUint(js, "count", data->count);
247 break;
248 }
249 case DNP3_OBJECT_CODE(20, 3): {
250 DNP3ObjectG20V3 *data = point->data;
251 SCJbSetUint(js, "online", data->online);
252 SCJbSetUint(js, "restart", data->restart);
253 SCJbSetUint(js, "comm_lost", data->comm_lost);
254 SCJbSetUint(js, "remote_forced", data->remote_forced);
255 SCJbSetUint(js, "local_forced", data->local_forced);
256 SCJbSetUint(js, "rollover", data->rollover);
257 SCJbSetUint(js, "reserved0", data->reserved0);
258 SCJbSetUint(js, "reserved1", data->reserved1);
259 SCJbSetUint(js, "count", data->count);
260 break;
261 }
262 case DNP3_OBJECT_CODE(20, 4): {
263 DNP3ObjectG20V4 *data = point->data;
264 SCJbSetUint(js, "online", data->online);
265 SCJbSetUint(js, "restart", data->restart);
266 SCJbSetUint(js, "comm_lost", data->comm_lost);
267 SCJbSetUint(js, "remote_forced", data->remote_forced);
268 SCJbSetUint(js, "local_forced", data->local_forced);
269 SCJbSetUint(js, "rollover", data->rollover);
270 SCJbSetUint(js, "reserved0", data->reserved0);
271 SCJbSetUint(js, "reserved1", data->reserved1);
272 SCJbSetUint(js, "count", data->count);
273 break;
274 }
275 case DNP3_OBJECT_CODE(20, 5): {
276 DNP3ObjectG20V5 *data = point->data;
277 SCJbSetUint(js, "count", data->count);
278 break;
279 }
280 case DNP3_OBJECT_CODE(20, 6): {
281 DNP3ObjectG20V6 *data = point->data;
282 SCJbSetUint(js, "count", data->count);
283 break;
284 }
285 case DNP3_OBJECT_CODE(20, 7): {
286 DNP3ObjectG20V7 *data = point->data;
287 SCJbSetUint(js, "count", data->count);
288 break;
289 }
290 case DNP3_OBJECT_CODE(20, 8): {
291 DNP3ObjectG20V8 *data = point->data;
292 SCJbSetUint(js, "count", data->count);
293 break;
294 }
295 case DNP3_OBJECT_CODE(21, 1): {
296 DNP3ObjectG21V1 *data = point->data;
297 SCJbSetUint(js, "online", data->online);
298 SCJbSetUint(js, "restart", data->restart);
299 SCJbSetUint(js, "comm_lost", data->comm_lost);
300 SCJbSetUint(js, "remote_forced", data->remote_forced);
301 SCJbSetUint(js, "local_forced", data->local_forced);
302 SCJbSetUint(js, "rollover", data->rollover);
303 SCJbSetUint(js, "discontinuity", data->discontinuity);
304 SCJbSetUint(js, "reserved0", data->reserved0);
305 SCJbSetUint(js, "count", data->count);
306 break;
307 }
308 case DNP3_OBJECT_CODE(21, 2): {
309 DNP3ObjectG21V2 *data = point->data;
310 SCJbSetUint(js, "online", data->online);
311 SCJbSetUint(js, "restart", data->restart);
312 SCJbSetUint(js, "comm_lost", data->comm_lost);
313 SCJbSetUint(js, "remote_forced", data->remote_forced);
314 SCJbSetUint(js, "local_forced", data->local_forced);
315 SCJbSetUint(js, "rollover", data->rollover);
316 SCJbSetUint(js, "discontinuity", data->discontinuity);
317 SCJbSetUint(js, "reserved0", data->reserved0);
318 SCJbSetUint(js, "count", data->count);
319 break;
320 }
321 case DNP3_OBJECT_CODE(21, 3): {
322 DNP3ObjectG21V3 *data = point->data;
323 SCJbSetUint(js, "online", data->online);
324 SCJbSetUint(js, "restart", data->restart);
325 SCJbSetUint(js, "comm_lost", data->comm_lost);
326 SCJbSetUint(js, "remote_forced", data->remote_forced);
327 SCJbSetUint(js, "local_forced", data->local_forced);
328 SCJbSetUint(js, "rollover", data->rollover);
329 SCJbSetUint(js, "reserved0", data->reserved0);
330 SCJbSetUint(js, "reserved1", data->reserved1);
331 SCJbSetUint(js, "count", data->count);
332 break;
333 }
334 case DNP3_OBJECT_CODE(21, 4): {
335 DNP3ObjectG21V4 *data = point->data;
336 SCJbSetUint(js, "online", data->online);
337 SCJbSetUint(js, "restart", data->restart);
338 SCJbSetUint(js, "comm_lost", data->comm_lost);
339 SCJbSetUint(js, "remote_forced", data->remote_forced);
340 SCJbSetUint(js, "local_forced", data->local_forced);
341 SCJbSetUint(js, "rollover", data->rollover);
342 SCJbSetUint(js, "reserved0", data->reserved0);
343 SCJbSetUint(js, "reserved1", data->reserved1);
344 SCJbSetUint(js, "count", data->count);
345 break;
346 }
347 case DNP3_OBJECT_CODE(21, 5): {
348 DNP3ObjectG21V5 *data = point->data;
349 SCJbSetUint(js, "online", data->online);
350 SCJbSetUint(js, "restart", data->restart);
351 SCJbSetUint(js, "comm_lost", data->comm_lost);
352 SCJbSetUint(js, "remote_forced", data->remote_forced);
353 SCJbSetUint(js, "local_forced", data->local_forced);
354 SCJbSetUint(js, "rollover", data->rollover);
355 SCJbSetUint(js, "discontinuity", data->discontinuity);
356 SCJbSetUint(js, "reserved1", data->reserved1);
357 SCJbSetUint(js, "count", data->count);
358 SCJbSetUint(js, "timestamp", data->timestamp);
359 break;
360 }
361 case DNP3_OBJECT_CODE(21, 6): {
362 DNP3ObjectG21V6 *data = point->data;
363 SCJbSetUint(js, "online", data->online);
364 SCJbSetUint(js, "restart", data->restart);
365 SCJbSetUint(js, "comm_lost", data->comm_lost);
366 SCJbSetUint(js, "remote_forced", data->remote_forced);
367 SCJbSetUint(js, "local_forced", data->local_forced);
368 SCJbSetUint(js, "rollover", data->rollover);
369 SCJbSetUint(js, "discontinuity", data->discontinuity);
370 SCJbSetUint(js, "reserved1", data->reserved1);
371 SCJbSetUint(js, "count", data->count);
372 SCJbSetUint(js, "timestamp", data->timestamp);
373 break;
374 }
375 case DNP3_OBJECT_CODE(21, 7): {
376 DNP3ObjectG21V7 *data = point->data;
377 SCJbSetUint(js, "online", data->online);
378 SCJbSetUint(js, "restart", data->restart);
379 SCJbSetUint(js, "comm_lost", data->comm_lost);
380 SCJbSetUint(js, "remote_forced", data->remote_forced);
381 SCJbSetUint(js, "local_forced", data->local_forced);
382 SCJbSetUint(js, "rollover", data->rollover);
383 SCJbSetUint(js, "reserved0", data->reserved0);
384 SCJbSetUint(js, "reserved1", data->reserved1);
385 SCJbSetUint(js, "count", data->count);
386 SCJbSetUint(js, "timestamp", data->timestamp);
387 break;
388 }
389 case DNP3_OBJECT_CODE(21, 8): {
390 DNP3ObjectG21V8 *data = point->data;
391 SCJbSetUint(js, "online", data->online);
392 SCJbSetUint(js, "restart", data->restart);
393 SCJbSetUint(js, "comm_lost", data->comm_lost);
394 SCJbSetUint(js, "remote_forced", data->remote_forced);
395 SCJbSetUint(js, "local_forced", data->local_forced);
396 SCJbSetUint(js, "rollover", data->rollover);
397 SCJbSetUint(js, "reserved0", data->reserved0);
398 SCJbSetUint(js, "reserved1", data->reserved1);
399 SCJbSetUint(js, "count", data->count);
400 SCJbSetUint(js, "timestamp", data->timestamp);
401 break;
402 }
403 case DNP3_OBJECT_CODE(21, 9): {
404 DNP3ObjectG21V9 *data = point->data;
405 SCJbSetUint(js, "count", data->count);
406 break;
407 }
408 case DNP3_OBJECT_CODE(21, 10): {
409 DNP3ObjectG21V10 *data = point->data;
410 SCJbSetUint(js, "count", data->count);
411 break;
412 }
413 case DNP3_OBJECT_CODE(21, 11): {
414 DNP3ObjectG21V11 *data = point->data;
415 SCJbSetUint(js, "count", data->count);
416 break;
417 }
418 case DNP3_OBJECT_CODE(21, 12): {
419 DNP3ObjectG21V12 *data = point->data;
420 SCJbSetUint(js, "count", data->count);
421 break;
422 }
423 case DNP3_OBJECT_CODE(22, 1): {
424 DNP3ObjectG22V1 *data = point->data;
425 SCJbSetUint(js, "online", data->online);
426 SCJbSetUint(js, "restart", data->restart);
427 SCJbSetUint(js, "comm_lost", data->comm_lost);
428 SCJbSetUint(js, "remote_forced", data->remote_forced);
429 SCJbSetUint(js, "local_forced", data->local_forced);
430 SCJbSetUint(js, "rollover", data->rollover);
431 SCJbSetUint(js, "discontinuity", data->discontinuity);
432 SCJbSetUint(js, "reserved0", data->reserved0);
433 SCJbSetUint(js, "count", data->count);
434 break;
435 }
436 case DNP3_OBJECT_CODE(22, 2): {
437 DNP3ObjectG22V2 *data = point->data;
438 SCJbSetUint(js, "online", data->online);
439 SCJbSetUint(js, "restart", data->restart);
440 SCJbSetUint(js, "comm_lost", data->comm_lost);
441 SCJbSetUint(js, "remote_forced", data->remote_forced);
442 SCJbSetUint(js, "local_forced", data->local_forced);
443 SCJbSetUint(js, "rollover", data->rollover);
444 SCJbSetUint(js, "discontinuity", data->discontinuity);
445 SCJbSetUint(js, "reserved0", data->reserved0);
446 SCJbSetUint(js, "count", data->count);
447 break;
448 }
449 case DNP3_OBJECT_CODE(22, 3): {
450 DNP3ObjectG22V3 *data = point->data;
451 SCJbSetUint(js, "online", data->online);
452 SCJbSetUint(js, "restart", data->restart);
453 SCJbSetUint(js, "comm_lost", data->comm_lost);
454 SCJbSetUint(js, "remote_forced", data->remote_forced);
455 SCJbSetUint(js, "local_forced", data->local_forced);
456 SCJbSetUint(js, "rollover", data->rollover);
457 SCJbSetUint(js, "reserved0", data->reserved0);
458 SCJbSetUint(js, "reserved1", data->reserved1);
459 SCJbSetUint(js, "count", data->count);
460 break;
461 }
462 case DNP3_OBJECT_CODE(22, 4): {
463 DNP3ObjectG22V4 *data = point->data;
464 SCJbSetUint(js, "online", data->online);
465 SCJbSetUint(js, "restart", data->restart);
466 SCJbSetUint(js, "comm_lost", data->comm_lost);
467 SCJbSetUint(js, "remote_forced", data->remote_forced);
468 SCJbSetUint(js, "local_forced", data->local_forced);
469 SCJbSetUint(js, "rollover", data->rollover);
470 SCJbSetUint(js, "reserved0", data->reserved0);
471 SCJbSetUint(js, "reserved1", data->reserved1);
472 SCJbSetUint(js, "count", data->count);
473 break;
474 }
475 case DNP3_OBJECT_CODE(22, 5): {
476 DNP3ObjectG22V5 *data = point->data;
477 SCJbSetUint(js, "online", data->online);
478 SCJbSetUint(js, "restart", data->restart);
479 SCJbSetUint(js, "comm_lost", data->comm_lost);
480 SCJbSetUint(js, "remote_forced", data->remote_forced);
481 SCJbSetUint(js, "local_forced", data->local_forced);
482 SCJbSetUint(js, "rollover", data->rollover);
483 SCJbSetUint(js, "reserved0", data->reserved0);
484 SCJbSetUint(js, "reserved1", data->reserved1);
485 SCJbSetUint(js, "count", data->count);
486 SCJbSetUint(js, "timestamp", data->timestamp);
487 break;
488 }
489 case DNP3_OBJECT_CODE(22, 6): {
490 DNP3ObjectG22V6 *data = point->data;
491 SCJbSetUint(js, "online", data->online);
492 SCJbSetUint(js, "restart", data->restart);
493 SCJbSetUint(js, "comm_lost", data->comm_lost);
494 SCJbSetUint(js, "remote_forced", data->remote_forced);
495 SCJbSetUint(js, "local_forced", data->local_forced);
496 SCJbSetUint(js, "rollover", data->rollover);
497 SCJbSetUint(js, "discontinuity", data->discontinuity);
498 SCJbSetUint(js, "reserved0", data->reserved0);
499 SCJbSetUint(js, "count", data->count);
500 SCJbSetUint(js, "timestamp", data->timestamp);
501 break;
502 }
503 case DNP3_OBJECT_CODE(22, 7): {
504 DNP3ObjectG22V7 *data = point->data;
505 SCJbSetUint(js, "online", data->online);
506 SCJbSetUint(js, "restart", data->restart);
507 SCJbSetUint(js, "comm_lost", data->comm_lost);
508 SCJbSetUint(js, "remote_forced", data->remote_forced);
509 SCJbSetUint(js, "local_forced", data->local_forced);
510 SCJbSetUint(js, "rollover", data->rollover);
511 SCJbSetUint(js, "reserved0", data->reserved0);
512 SCJbSetUint(js, "reserved1", data->reserved1);
513 SCJbSetUint(js, "count", data->count);
514 SCJbSetUint(js, "timestamp", data->timestamp);
515 break;
516 }
517 case DNP3_OBJECT_CODE(22, 8): {
518 DNP3ObjectG22V8 *data = point->data;
519 SCJbSetUint(js, "online", data->online);
520 SCJbSetUint(js, "restart", data->restart);
521 SCJbSetUint(js, "comm_lost", data->comm_lost);
522 SCJbSetUint(js, "remote_forced", data->remote_forced);
523 SCJbSetUint(js, "local_forced", data->local_forced);
524 SCJbSetUint(js, "rollover", data->rollover);
525 SCJbSetUint(js, "reserved0", data->reserved0);
526 SCJbSetUint(js, "reserved1", data->reserved1);
527 SCJbSetUint(js, "count", data->count);
528 SCJbSetUint(js, "timestamp", data->timestamp);
529 break;
530 }
531 case DNP3_OBJECT_CODE(23, 1): {
532 DNP3ObjectG23V1 *data = point->data;
533 SCJbSetUint(js, "online", data->online);
534 SCJbSetUint(js, "restart", data->restart);
535 SCJbSetUint(js, "comm_lost", data->comm_lost);
536 SCJbSetUint(js, "remote_forced", data->remote_forced);
537 SCJbSetUint(js, "local_forced", data->local_forced);
538 SCJbSetUint(js, "rollover", data->rollover);
539 SCJbSetUint(js, "discontinuity", data->discontinuity);
540 SCJbSetUint(js, "reserved0", data->reserved0);
541 SCJbSetUint(js, "count", data->count);
542 break;
543 }
544 case DNP3_OBJECT_CODE(23, 2): {
545 DNP3ObjectG23V2 *data = point->data;
546 SCJbSetUint(js, "online", data->online);
547 SCJbSetUint(js, "restart", data->restart);
548 SCJbSetUint(js, "comm_lost", data->comm_lost);
549 SCJbSetUint(js, "remote_forced", data->remote_forced);
550 SCJbSetUint(js, "local_forced", data->local_forced);
551 SCJbSetUint(js, "rollover", data->rollover);
552 SCJbSetUint(js, "reserved0", data->reserved0);
553 SCJbSetUint(js, "reserved1", data->reserved1);
554 SCJbSetUint(js, "count", data->count);
555 break;
556 }
557 case DNP3_OBJECT_CODE(23, 3): {
558 DNP3ObjectG23V3 *data = point->data;
559 SCJbSetUint(js, "online", data->online);
560 SCJbSetUint(js, "restart", data->restart);
561 SCJbSetUint(js, "comm_lost", data->comm_lost);
562 SCJbSetUint(js, "remote_forced", data->remote_forced);
563 SCJbSetUint(js, "local_forced", data->local_forced);
564 SCJbSetUint(js, "rollover", data->rollover);
565 SCJbSetUint(js, "reserved0", data->reserved0);
566 SCJbSetUint(js, "reserved1", data->reserved1);
567 SCJbSetUint(js, "count", data->count);
568 break;
569 }
570 case DNP3_OBJECT_CODE(23, 4): {
571 DNP3ObjectG23V4 *data = point->data;
572 SCJbSetUint(js, "online", data->online);
573 SCJbSetUint(js, "restart", data->restart);
574 SCJbSetUint(js, "comm_lost", data->comm_lost);
575 SCJbSetUint(js, "remote_forced", data->remote_forced);
576 SCJbSetUint(js, "local_forced", data->local_forced);
577 SCJbSetUint(js, "rollover", data->rollover);
578 SCJbSetUint(js, "reserved0", data->reserved0);
579 SCJbSetUint(js, "reserved1", data->reserved1);
580 SCJbSetUint(js, "count", data->count);
581 break;
582 }
583 case DNP3_OBJECT_CODE(23, 5): {
584 DNP3ObjectG23V5 *data = point->data;
585 SCJbSetUint(js, "online", data->online);
586 SCJbSetUint(js, "restart", data->restart);
587 SCJbSetUint(js, "comm_lost", data->comm_lost);
588 SCJbSetUint(js, "remote_forced", data->remote_forced);
589 SCJbSetUint(js, "local_forced", data->local_forced);
590 SCJbSetUint(js, "rollover", data->rollover);
591 SCJbSetUint(js, "discontinuity", data->discontinuity);
592 SCJbSetUint(js, "reserved0", data->reserved0);
593 SCJbSetUint(js, "count", data->count);
594 SCJbSetUint(js, "timestamp", data->timestamp);
595 break;
596 }
597 case DNP3_OBJECT_CODE(23, 6): {
598 DNP3ObjectG23V6 *data = point->data;
599 SCJbSetUint(js, "online", data->online);
600 SCJbSetUint(js, "restart", data->restart);
601 SCJbSetUint(js, "comm_lost", data->comm_lost);
602 SCJbSetUint(js, "remote_forced", data->remote_forced);
603 SCJbSetUint(js, "local_forced", data->local_forced);
604 SCJbSetUint(js, "rollover", data->rollover);
605 SCJbSetUint(js, "discontinuity", data->discontinuity);
606 SCJbSetUint(js, "reserved0", data->reserved0);
607 SCJbSetUint(js, "count", data->count);
608 SCJbSetUint(js, "timestamp", data->timestamp);
609 break;
610 }
611 case DNP3_OBJECT_CODE(23, 7): {
612 DNP3ObjectG23V7 *data = point->data;
613 SCJbSetUint(js, "online", data->online);
614 SCJbSetUint(js, "restart", data->restart);
615 SCJbSetUint(js, "comm_lost", data->comm_lost);
616 SCJbSetUint(js, "remote_forced", data->remote_forced);
617 SCJbSetUint(js, "local_forced", data->local_forced);
618 SCJbSetUint(js, "rollover", data->rollover);
619 SCJbSetUint(js, "reserved0", data->reserved0);
620 SCJbSetUint(js, "reserved1", data->reserved1);
621 SCJbSetUint(js, "count", data->count);
622 SCJbSetUint(js, "timestamp", data->timestamp);
623 break;
624 }
625 case DNP3_OBJECT_CODE(23, 8): {
626 DNP3ObjectG23V8 *data = point->data;
627 SCJbSetUint(js, "online", data->online);
628 SCJbSetUint(js, "restart", data->restart);
629 SCJbSetUint(js, "comm_lost", data->comm_lost);
630 SCJbSetUint(js, "remote_forced", data->remote_forced);
631 SCJbSetUint(js, "local_forced", data->local_forced);
632 SCJbSetUint(js, "rollover", data->rollover);
633 SCJbSetUint(js, "reserved0", data->reserved0);
634 SCJbSetUint(js, "reserved1", data->reserved1);
635 SCJbSetUint(js, "count", data->count);
636 SCJbSetUint(js, "timestamp", data->timestamp);
637 break;
638 }
639 case DNP3_OBJECT_CODE(30, 1): {
640 DNP3ObjectG30V1 *data = point->data;
641 SCJbSetUint(js, "online", data->online);
642 SCJbSetUint(js, "restart", data->restart);
643 SCJbSetUint(js, "comm_lost", data->comm_lost);
644 SCJbSetUint(js, "remote_forced", data->remote_forced);
645 SCJbSetUint(js, "local_forced", data->local_forced);
646 SCJbSetUint(js, "over_range", data->over_range);
647 SCJbSetUint(js, "reference_err", data->reference_err);
648 SCJbSetUint(js, "reserved0", data->reserved0);
649 SCJbSetUint(js, "value", data->value);
650 break;
651 }
652 case DNP3_OBJECT_CODE(30, 2): {
653 DNP3ObjectG30V2 *data = point->data;
654 SCJbSetUint(js, "online", data->online);
655 SCJbSetUint(js, "restart", data->restart);
656 SCJbSetUint(js, "comm_lost", data->comm_lost);
657 SCJbSetUint(js, "remote_forced", data->remote_forced);
658 SCJbSetUint(js, "local_forced", data->local_forced);
659 SCJbSetUint(js, "over_range", data->over_range);
660 SCJbSetUint(js, "reference_err", data->reference_err);
661 SCJbSetUint(js, "reserved0", data->reserved0);
662 SCJbSetUint(js, "value", data->value);
663 break;
664 }
665 case DNP3_OBJECT_CODE(30, 3): {
666 DNP3ObjectG30V3 *data = point->data;
667 SCJbSetUint(js, "value", data->value);
668 break;
669 }
670 case DNP3_OBJECT_CODE(30, 4): {
671 DNP3ObjectG30V4 *data = point->data;
672 SCJbSetUint(js, "value", data->value);
673 break;
674 }
675 case DNP3_OBJECT_CODE(30, 5): {
676 DNP3ObjectG30V5 *data = point->data;
677 SCJbSetUint(js, "online", data->online);
678 SCJbSetUint(js, "restart", data->restart);
679 SCJbSetUint(js, "comm_lost", data->comm_lost);
680 SCJbSetUint(js, "remote_forced", data->remote_forced);
681 SCJbSetUint(js, "local_forced", data->local_forced);
682 SCJbSetUint(js, "over_range", data->over_range);
683 SCJbSetUint(js, "reference_err", data->reference_err);
684 SCJbSetUint(js, "reserved0", data->reserved0);
685 SCJbSetFloat(js, "value", data->value);
686 break;
687 }
688 case DNP3_OBJECT_CODE(30, 6): {
689 DNP3ObjectG30V6 *data = point->data;
690 SCJbSetUint(js, "online", data->online);
691 SCJbSetUint(js, "restart", data->restart);
692 SCJbSetUint(js, "comm_lost", data->comm_lost);
693 SCJbSetUint(js, "remote_forced", data->remote_forced);
694 SCJbSetUint(js, "local_forced", data->local_forced);
695 SCJbSetUint(js, "over_range", data->over_range);
696 SCJbSetUint(js, "reference_err", data->reference_err);
697 SCJbSetUint(js, "reserved0", data->reserved0);
698 SCJbSetFloat(js, "value", data->value);
699 break;
700 }
701 case DNP3_OBJECT_CODE(31, 1): {
702 DNP3ObjectG31V1 *data = point->data;
703 SCJbSetUint(js, "online", data->online);
704 SCJbSetUint(js, "restart", data->restart);
705 SCJbSetUint(js, "comm_lost", data->comm_lost);
706 SCJbSetUint(js, "remote_forced", data->remote_forced);
707 SCJbSetUint(js, "local_forced", data->local_forced);
708 SCJbSetUint(js, "over_range", data->over_range);
709 SCJbSetUint(js, "reference_err", data->reference_err);
710 SCJbSetUint(js, "reserved0", data->reserved0);
711 SCJbSetUint(js, "value", data->value);
712 break;
713 }
714 case DNP3_OBJECT_CODE(31, 2): {
715 DNP3ObjectG31V2 *data = point->data;
716 SCJbSetUint(js, "online", data->online);
717 SCJbSetUint(js, "restart", data->restart);
718 SCJbSetUint(js, "comm_lost", data->comm_lost);
719 SCJbSetUint(js, "remote_forced", data->remote_forced);
720 SCJbSetUint(js, "local_forced", data->local_forced);
721 SCJbSetUint(js, "over_range", data->over_range);
722 SCJbSetUint(js, "reference_err", data->reference_err);
723 SCJbSetUint(js, "reserved0", data->reserved0);
724 SCJbSetUint(js, "value", data->value);
725 break;
726 }
727 case DNP3_OBJECT_CODE(31, 3): {
728 DNP3ObjectG31V3 *data = point->data;
729 SCJbSetUint(js, "online", data->online);
730 SCJbSetUint(js, "restart", data->restart);
731 SCJbSetUint(js, "comm_lost", data->comm_lost);
732 SCJbSetUint(js, "remote_forced", data->remote_forced);
733 SCJbSetUint(js, "local_forced", data->local_forced);
734 SCJbSetUint(js, "over_range", data->over_range);
735 SCJbSetUint(js, "reference_err", data->reference_err);
736 SCJbSetUint(js, "reserved0", data->reserved0);
737 SCJbSetUint(js, "value", data->value);
738 SCJbSetUint(js, "timestamp", data->timestamp);
739 break;
740 }
741 case DNP3_OBJECT_CODE(31, 4): {
742 DNP3ObjectG31V4 *data = point->data;
743 SCJbSetUint(js, "online", data->online);
744 SCJbSetUint(js, "restart", data->restart);
745 SCJbSetUint(js, "comm_lost", data->comm_lost);
746 SCJbSetUint(js, "remote_forced", data->remote_forced);
747 SCJbSetUint(js, "local_forced", data->local_forced);
748 SCJbSetUint(js, "over_range", data->over_range);
749 SCJbSetUint(js, "reference_err", data->reference_err);
750 SCJbSetUint(js, "reserved0", data->reserved0);
751 SCJbSetUint(js, "value", data->value);
752 SCJbSetUint(js, "timestamp", data->timestamp);
753 break;
754 }
755 case DNP3_OBJECT_CODE(31, 5): {
756 DNP3ObjectG31V5 *data = point->data;
757 SCJbSetUint(js, "value", data->value);
758 break;
759 }
760 case DNP3_OBJECT_CODE(31, 6): {
761 DNP3ObjectG31V6 *data = point->data;
762 SCJbSetUint(js, "value", data->value);
763 break;
764 }
765 case DNP3_OBJECT_CODE(31, 7): {
766 DNP3ObjectG31V7 *data = point->data;
767 SCJbSetUint(js, "online", data->online);
768 SCJbSetUint(js, "restart", data->restart);
769 SCJbSetUint(js, "comm_lost", data->comm_lost);
770 SCJbSetUint(js, "remote_forced", data->remote_forced);
771 SCJbSetUint(js, "local_forced", data->local_forced);
772 SCJbSetUint(js, "over_range", data->over_range);
773 SCJbSetUint(js, "reference_err", data->reference_err);
774 SCJbSetUint(js, "reserved0", data->reserved0);
775 SCJbSetFloat(js, "value", data->value);
776 break;
777 }
778 case DNP3_OBJECT_CODE(31, 8): {
779 DNP3ObjectG31V8 *data = point->data;
780 SCJbSetUint(js, "online", data->online);
781 SCJbSetUint(js, "restart", data->restart);
782 SCJbSetUint(js, "comm_lost", data->comm_lost);
783 SCJbSetUint(js, "remote_forced", data->remote_forced);
784 SCJbSetUint(js, "local_forced", data->local_forced);
785 SCJbSetUint(js, "over_range", data->over_range);
786 SCJbSetUint(js, "reference_err", data->reference_err);
787 SCJbSetUint(js, "reserved0", data->reserved0);
788 SCJbSetFloat(js, "value", data->value);
789 break;
790 }
791 case DNP3_OBJECT_CODE(32, 1): {
792 DNP3ObjectG32V1 *data = point->data;
793 SCJbSetUint(js, "online", data->online);
794 SCJbSetUint(js, "restart", data->restart);
795 SCJbSetUint(js, "comm_lost", data->comm_lost);
796 SCJbSetUint(js, "remote_forced", data->remote_forced);
797 SCJbSetUint(js, "local_forced", data->local_forced);
798 SCJbSetUint(js, "over_range", data->over_range);
799 SCJbSetUint(js, "reference_err", data->reference_err);
800 SCJbSetUint(js, "reserved0", data->reserved0);
801 SCJbSetUint(js, "value", data->value);
802 break;
803 }
804 case DNP3_OBJECT_CODE(32, 2): {
805 DNP3ObjectG32V2 *data = point->data;
806 SCJbSetUint(js, "online", data->online);
807 SCJbSetUint(js, "restart", data->restart);
808 SCJbSetUint(js, "comm_lost", data->comm_lost);
809 SCJbSetUint(js, "remote_forced", data->remote_forced);
810 SCJbSetUint(js, "local_forced", data->local_forced);
811 SCJbSetUint(js, "over_range", data->over_range);
812 SCJbSetUint(js, "reference_err", data->reference_err);
813 SCJbSetUint(js, "reserved0", data->reserved0);
814 SCJbSetUint(js, "value", data->value);
815 break;
816 }
817 case DNP3_OBJECT_CODE(32, 3): {
818 DNP3ObjectG32V3 *data = point->data;
819 SCJbSetUint(js, "online", data->online);
820 SCJbSetUint(js, "restart", data->restart);
821 SCJbSetUint(js, "comm_lost", data->comm_lost);
822 SCJbSetUint(js, "remote_forced", data->remote_forced);
823 SCJbSetUint(js, "local_forced", data->local_forced);
824 SCJbSetUint(js, "over_range", data->over_range);
825 SCJbSetUint(js, "reference_err", data->reference_err);
826 SCJbSetUint(js, "reserved0", data->reserved0);
827 SCJbSetUint(js, "value", data->value);
828 SCJbSetUint(js, "timestamp", data->timestamp);
829 break;
830 }
831 case DNP3_OBJECT_CODE(32, 4): {
832 DNP3ObjectG32V4 *data = point->data;
833 SCJbSetUint(js, "online", data->online);
834 SCJbSetUint(js, "restart", data->restart);
835 SCJbSetUint(js, "comm_lost", data->comm_lost);
836 SCJbSetUint(js, "remote_forced", data->remote_forced);
837 SCJbSetUint(js, "local_forced", data->local_forced);
838 SCJbSetUint(js, "over_range", data->over_range);
839 SCJbSetUint(js, "reference_err", data->reference_err);
840 SCJbSetUint(js, "reserved0", data->reserved0);
841 SCJbSetUint(js, "value", data->value);
842 SCJbSetUint(js, "timestamp", data->timestamp);
843 break;
844 }
845 case DNP3_OBJECT_CODE(32, 5): {
846 DNP3ObjectG32V5 *data = point->data;
847 SCJbSetUint(js, "online", data->online);
848 SCJbSetUint(js, "restart", data->restart);
849 SCJbSetUint(js, "comm_lost", data->comm_lost);
850 SCJbSetUint(js, "remote_forced", data->remote_forced);
851 SCJbSetUint(js, "local_forced", data->local_forced);
852 SCJbSetUint(js, "over_range", data->over_range);
853 SCJbSetUint(js, "reference_err", data->reference_err);
854 SCJbSetUint(js, "reserved0", data->reserved0);
855 SCJbSetFloat(js, "value", data->value);
856 break;
857 }
858 case DNP3_OBJECT_CODE(32, 6): {
859 DNP3ObjectG32V6 *data = point->data;
860 SCJbSetUint(js, "online", data->online);
861 SCJbSetUint(js, "restart", data->restart);
862 SCJbSetUint(js, "comm_lost", data->comm_lost);
863 SCJbSetUint(js, "remote_forced", data->remote_forced);
864 SCJbSetUint(js, "local_forced", data->local_forced);
865 SCJbSetUint(js, "over_range", data->over_range);
866 SCJbSetUint(js, "reference_err", data->reference_err);
867 SCJbSetUint(js, "reserved0", data->reserved0);
868 SCJbSetFloat(js, "value", data->value);
869 break;
870 }
871 case DNP3_OBJECT_CODE(32, 7): {
872 DNP3ObjectG32V7 *data = point->data;
873 SCJbSetUint(js, "online", data->online);
874 SCJbSetUint(js, "restart", data->restart);
875 SCJbSetUint(js, "comm_lost", data->comm_lost);
876 SCJbSetUint(js, "remote_forced", data->remote_forced);
877 SCJbSetUint(js, "local_forced", data->local_forced);
878 SCJbSetUint(js, "over_range", data->over_range);
879 SCJbSetUint(js, "reference_err", data->reference_err);
880 SCJbSetUint(js, "reserved0", data->reserved0);
881 SCJbSetFloat(js, "value", data->value);
882 SCJbSetUint(js, "timestamp", data->timestamp);
883 break;
884 }
885 case DNP3_OBJECT_CODE(32, 8): {
886 DNP3ObjectG32V8 *data = point->data;
887 SCJbSetUint(js, "online", data->online);
888 SCJbSetUint(js, "restart", data->restart);
889 SCJbSetUint(js, "comm_lost", data->comm_lost);
890 SCJbSetUint(js, "remote_forced", data->remote_forced);
891 SCJbSetUint(js, "local_forced", data->local_forced);
892 SCJbSetUint(js, "over_range", data->over_range);
893 SCJbSetUint(js, "reference_err", data->reference_err);
894 SCJbSetUint(js, "reserved0", data->reserved0);
895 SCJbSetFloat(js, "value", data->value);
896 SCJbSetUint(js, "timestamp", data->timestamp);
897 break;
898 }
899 case DNP3_OBJECT_CODE(33, 1): {
900 DNP3ObjectG33V1 *data = point->data;
901 SCJbSetUint(js, "online", data->online);
902 SCJbSetUint(js, "restart", data->restart);
903 SCJbSetUint(js, "comm_lost", data->comm_lost);
904 SCJbSetUint(js, "remote_forced", data->remote_forced);
905 SCJbSetUint(js, "local_forced", data->local_forced);
906 SCJbSetUint(js, "over_range", data->over_range);
907 SCJbSetUint(js, "reference_err", data->reference_err);
908 SCJbSetUint(js, "reserved0", data->reserved0);
909 SCJbSetUint(js, "value", data->value);
910 break;
911 }
912 case DNP3_OBJECT_CODE(33, 2): {
913 DNP3ObjectG33V2 *data = point->data;
914 SCJbSetUint(js, "online", data->online);
915 SCJbSetUint(js, "restart", data->restart);
916 SCJbSetUint(js, "comm_lost", data->comm_lost);
917 SCJbSetUint(js, "remote_forced", data->remote_forced);
918 SCJbSetUint(js, "local_forced", data->local_forced);
919 SCJbSetUint(js, "over_range", data->over_range);
920 SCJbSetUint(js, "reference_err", data->reference_err);
921 SCJbSetUint(js, "reserved0", data->reserved0);
922 SCJbSetUint(js, "value", data->value);
923 break;
924 }
925 case DNP3_OBJECT_CODE(33, 3): {
926 DNP3ObjectG33V3 *data = point->data;
927 SCJbSetUint(js, "online", data->online);
928 SCJbSetUint(js, "restart", data->restart);
929 SCJbSetUint(js, "comm_lost", data->comm_lost);
930 SCJbSetUint(js, "remote_forced", data->remote_forced);
931 SCJbSetUint(js, "local_forced", data->local_forced);
932 SCJbSetUint(js, "over_range", data->over_range);
933 SCJbSetUint(js, "reference_err", data->reference_err);
934 SCJbSetUint(js, "reserved0", data->reserved0);
935 SCJbSetUint(js, "value", data->value);
936 SCJbSetUint(js, "timestamp", data->timestamp);
937 break;
938 }
939 case DNP3_OBJECT_CODE(33, 4): {
940 DNP3ObjectG33V4 *data = point->data;
941 SCJbSetUint(js, "online", data->online);
942 SCJbSetUint(js, "restart", data->restart);
943 SCJbSetUint(js, "comm_lost", data->comm_lost);
944 SCJbSetUint(js, "remote_forced", data->remote_forced);
945 SCJbSetUint(js, "local_forced", data->local_forced);
946 SCJbSetUint(js, "over_range", data->over_range);
947 SCJbSetUint(js, "reference_err", data->reference_err);
948 SCJbSetUint(js, "reserved0", data->reserved0);
949 SCJbSetUint(js, "value", data->value);
950 SCJbSetUint(js, "timestamp", data->timestamp);
951 break;
952 }
953 case DNP3_OBJECT_CODE(33, 5): {
954 DNP3ObjectG33V5 *data = point->data;
955 SCJbSetUint(js, "online", data->online);
956 SCJbSetUint(js, "restart", data->restart);
957 SCJbSetUint(js, "comm_lost", data->comm_lost);
958 SCJbSetUint(js, "remote_forced", data->remote_forced);
959 SCJbSetUint(js, "local_forced", data->local_forced);
960 SCJbSetUint(js, "over_range", data->over_range);
961 SCJbSetUint(js, "reference_err", data->reference_err);
962 SCJbSetUint(js, "reserved0", data->reserved0);
963 SCJbSetFloat(js, "value", data->value);
964 break;
965 }
966 case DNP3_OBJECT_CODE(33, 6): {
967 DNP3ObjectG33V6 *data = point->data;
968 SCJbSetUint(js, "online", data->online);
969 SCJbSetUint(js, "restart", data->restart);
970 SCJbSetUint(js, "comm_lost", data->comm_lost);
971 SCJbSetUint(js, "remote_forced", data->remote_forced);
972 SCJbSetUint(js, "local_forced", data->local_forced);
973 SCJbSetUint(js, "over_range", data->over_range);
974 SCJbSetUint(js, "reference_err", data->reference_err);
975 SCJbSetUint(js, "reserved0", data->reserved0);
976 SCJbSetFloat(js, "value", data->value);
977 break;
978 }
979 case DNP3_OBJECT_CODE(33, 7): {
980 DNP3ObjectG33V7 *data = point->data;
981 SCJbSetUint(js, "online", data->online);
982 SCJbSetUint(js, "restart", data->restart);
983 SCJbSetUint(js, "comm_lost", data->comm_lost);
984 SCJbSetUint(js, "remote_forced", data->remote_forced);
985 SCJbSetUint(js, "local_forced", data->local_forced);
986 SCJbSetUint(js, "over_range", data->over_range);
987 SCJbSetUint(js, "reference_err", data->reference_err);
988 SCJbSetUint(js, "reserved0", data->reserved0);
989 SCJbSetFloat(js, "value", data->value);
990 SCJbSetUint(js, "timestamp", data->timestamp);
991 break;
992 }
993 case DNP3_OBJECT_CODE(33, 8): {
994 DNP3ObjectG33V8 *data = point->data;
995 SCJbSetUint(js, "online", data->online);
996 SCJbSetUint(js, "restart", data->restart);
997 SCJbSetUint(js, "comm_lost", data->comm_lost);
998 SCJbSetUint(js, "remote_forced", data->remote_forced);
999 SCJbSetUint(js, "local_forced", data->local_forced);
1000 SCJbSetUint(js, "over_range", data->over_range);
1001 SCJbSetUint(js, "reference_err", data->reference_err);
1002 SCJbSetUint(js, "reserved0", data->reserved0);
1003 SCJbSetFloat(js, "value", data->value);
1004 SCJbSetUint(js, "timestamp", data->timestamp);
1005 break;
1006 }
1007 case DNP3_OBJECT_CODE(34, 1): {
1008 DNP3ObjectG34V1 *data = point->data;
1009 SCJbSetUint(js, "deadband_value", data->deadband_value);
1010 break;
1011 }
1012 case DNP3_OBJECT_CODE(34, 2): {
1013 DNP3ObjectG34V2 *data = point->data;
1014 SCJbSetUint(js, "deadband_value", data->deadband_value);
1015 break;
1016 }
1017 case DNP3_OBJECT_CODE(34, 3): {
1018 DNP3ObjectG34V3 *data = point->data;
1019 SCJbSetFloat(js, "deadband_value", data->deadband_value);
1020 break;
1021 }
1022 case DNP3_OBJECT_CODE(40, 1): {
1023 DNP3ObjectG40V1 *data = point->data;
1024 SCJbSetUint(js, "online", data->online);
1025 SCJbSetUint(js, "restart", data->restart);
1026 SCJbSetUint(js, "comm_lost", data->comm_lost);
1027 SCJbSetUint(js, "remote_forced", data->remote_forced);
1028 SCJbSetUint(js, "local_forced", data->local_forced);
1029 SCJbSetUint(js, "over_range", data->over_range);
1030 SCJbSetUint(js, "reference_err", data->reference_err);
1031 SCJbSetUint(js, "reserved0", data->reserved0);
1032 SCJbSetUint(js, "value", data->value);
1033 break;
1034 }
1035 case DNP3_OBJECT_CODE(40, 2): {
1036 DNP3ObjectG40V2 *data = point->data;
1037 SCJbSetUint(js, "online", data->online);
1038 SCJbSetUint(js, "restart", data->restart);
1039 SCJbSetUint(js, "comm_lost", data->comm_lost);
1040 SCJbSetUint(js, "remote_forced", data->remote_forced);
1041 SCJbSetUint(js, "local_forced", data->local_forced);
1042 SCJbSetUint(js, "over_range", data->over_range);
1043 SCJbSetUint(js, "reference_err", data->reference_err);
1044 SCJbSetUint(js, "reserved0", data->reserved0);
1045 SCJbSetUint(js, "value", data->value);
1046 break;
1047 }
1048 case DNP3_OBJECT_CODE(40, 3): {
1049 DNP3ObjectG40V3 *data = point->data;
1050 SCJbSetUint(js, "online", data->online);
1051 SCJbSetUint(js, "restart", data->restart);
1052 SCJbSetUint(js, "comm_lost", data->comm_lost);
1053 SCJbSetUint(js, "remote_forced", data->remote_forced);
1054 SCJbSetUint(js, "local_forced", data->local_forced);
1055 SCJbSetUint(js, "over_range", data->over_range);
1056 SCJbSetUint(js, "reference_err", data->reference_err);
1057 SCJbSetUint(js, "reserved0", data->reserved0);
1058 SCJbSetFloat(js, "value", data->value);
1059 break;
1060 }
1061 case DNP3_OBJECT_CODE(40, 4): {
1062 DNP3ObjectG40V4 *data = point->data;
1063 SCJbSetUint(js, "online", data->online);
1064 SCJbSetUint(js, "restart", data->restart);
1065 SCJbSetUint(js, "comm_lost", data->comm_lost);
1066 SCJbSetUint(js, "remote_forced", data->remote_forced);
1067 SCJbSetUint(js, "local_forced", data->local_forced);
1068 SCJbSetUint(js, "over_range", data->over_range);
1069 SCJbSetUint(js, "reference_err", data->reference_err);
1070 SCJbSetUint(js, "reserved0", data->reserved0);
1071 SCJbSetFloat(js, "value", data->value);
1072 break;
1073 }
1074 case DNP3_OBJECT_CODE(41, 1): {
1075 DNP3ObjectG41V1 *data = point->data;
1076 SCJbSetUint(js, "value", data->value);
1077 SCJbSetUint(js, "control_status", data->control_status);
1078 break;
1079 }
1080 case DNP3_OBJECT_CODE(41, 2): {
1081 DNP3ObjectG41V2 *data = point->data;
1082 SCJbSetUint(js, "value", data->value);
1083 SCJbSetUint(js, "control_status", data->control_status);
1084 break;
1085 }
1086 case DNP3_OBJECT_CODE(41, 3): {
1087 DNP3ObjectG41V3 *data = point->data;
1088 SCJbSetFloat(js, "value", data->value);
1089 SCJbSetUint(js, "control_status", data->control_status);
1090 break;
1091 }
1092 case DNP3_OBJECT_CODE(41, 4): {
1093 DNP3ObjectG41V4 *data = point->data;
1094 SCJbSetFloat(js, "value", data->value);
1095 SCJbSetUint(js, "control_status", data->control_status);
1096 break;
1097 }
1098 case DNP3_OBJECT_CODE(42, 1): {
1099 DNP3ObjectG42V1 *data = point->data;
1100 SCJbSetUint(js, "online", data->online);
1101 SCJbSetUint(js, "restart", data->restart);
1102 SCJbSetUint(js, "comm_lost", data->comm_lost);
1103 SCJbSetUint(js, "remote_forced", data->remote_forced);
1104 SCJbSetUint(js, "local_forced", data->local_forced);
1105 SCJbSetUint(js, "over_range", data->over_range);
1106 SCJbSetUint(js, "reference_err", data->reference_err);
1107 SCJbSetUint(js, "reserved0", data->reserved0);
1108 SCJbSetUint(js, "value", data->value);
1109 break;
1110 }
1111 case DNP3_OBJECT_CODE(42, 2): {
1112 DNP3ObjectG42V2 *data = point->data;
1113 SCJbSetUint(js, "online", data->online);
1114 SCJbSetUint(js, "restart", data->restart);
1115 SCJbSetUint(js, "comm_lost", data->comm_lost);
1116 SCJbSetUint(js, "remote_forced", data->remote_forced);
1117 SCJbSetUint(js, "local_forced", data->local_forced);
1118 SCJbSetUint(js, "over_range", data->over_range);
1119 SCJbSetUint(js, "reference_err", data->reference_err);
1120 SCJbSetUint(js, "reserved0", data->reserved0);
1121 SCJbSetUint(js, "value", data->value);
1122 break;
1123 }
1124 case DNP3_OBJECT_CODE(42, 3): {
1125 DNP3ObjectG42V3 *data = point->data;
1126 SCJbSetUint(js, "online", data->online);
1127 SCJbSetUint(js, "restart", data->restart);
1128 SCJbSetUint(js, "comm_lost", data->comm_lost);
1129 SCJbSetUint(js, "remote_forced", data->remote_forced);
1130 SCJbSetUint(js, "local_forced", data->local_forced);
1131 SCJbSetUint(js, "over_range", data->over_range);
1132 SCJbSetUint(js, "reference_err", data->reference_err);
1133 SCJbSetUint(js, "reserved0", data->reserved0);
1134 SCJbSetUint(js, "value", data->value);
1135 SCJbSetUint(js, "timestamp", data->timestamp);
1136 break;
1137 }
1138 case DNP3_OBJECT_CODE(42, 4): {
1139 DNP3ObjectG42V4 *data = point->data;
1140 SCJbSetUint(js, "online", data->online);
1141 SCJbSetUint(js, "restart", data->restart);
1142 SCJbSetUint(js, "comm_lost", data->comm_lost);
1143 SCJbSetUint(js, "remote_forced", data->remote_forced);
1144 SCJbSetUint(js, "local_forced", data->local_forced);
1145 SCJbSetUint(js, "over_range", data->over_range);
1146 SCJbSetUint(js, "reference_err", data->reference_err);
1147 SCJbSetUint(js, "reserved0", data->reserved0);
1148 SCJbSetUint(js, "value", data->value);
1149 SCJbSetUint(js, "timestamp", data->timestamp);
1150 break;
1151 }
1152 case DNP3_OBJECT_CODE(42, 5): {
1153 DNP3ObjectG42V5 *data = point->data;
1154 SCJbSetUint(js, "online", data->online);
1155 SCJbSetUint(js, "restart", data->restart);
1156 SCJbSetUint(js, "comm_lost", data->comm_lost);
1157 SCJbSetUint(js, "remote_forced", data->remote_forced);
1158 SCJbSetUint(js, "local_forced", data->local_forced);
1159 SCJbSetUint(js, "over_range", data->over_range);
1160 SCJbSetUint(js, "reference_err", data->reference_err);
1161 SCJbSetUint(js, "reserved0", data->reserved0);
1162 SCJbSetFloat(js, "value", data->value);
1163 break;
1164 }
1165 case DNP3_OBJECT_CODE(42, 6): {
1166 DNP3ObjectG42V6 *data = point->data;
1167 SCJbSetUint(js, "online", data->online);
1168 SCJbSetUint(js, "restart", data->restart);
1169 SCJbSetUint(js, "comm_lost", data->comm_lost);
1170 SCJbSetUint(js, "remote_forced", data->remote_forced);
1171 SCJbSetUint(js, "local_forced", data->local_forced);
1172 SCJbSetUint(js, "over_range", data->over_range);
1173 SCJbSetUint(js, "reference_err", data->reference_err);
1174 SCJbSetUint(js, "reserved0", data->reserved0);
1175 SCJbSetFloat(js, "value", data->value);
1176 break;
1177 }
1178 case DNP3_OBJECT_CODE(42, 7): {
1179 DNP3ObjectG42V7 *data = point->data;
1180 SCJbSetUint(js, "online", data->online);
1181 SCJbSetUint(js, "restart", data->restart);
1182 SCJbSetUint(js, "comm_lost", data->comm_lost);
1183 SCJbSetUint(js, "remote_forced", data->remote_forced);
1184 SCJbSetUint(js, "local_forced", data->local_forced);
1185 SCJbSetUint(js, "over_range", data->over_range);
1186 SCJbSetUint(js, "reference_err", data->reference_err);
1187 SCJbSetUint(js, "reserved0", data->reserved0);
1188 SCJbSetFloat(js, "value", data->value);
1189 SCJbSetUint(js, "timestamp", data->timestamp);
1190 break;
1191 }
1192 case DNP3_OBJECT_CODE(42, 8): {
1193 DNP3ObjectG42V8 *data = point->data;
1194 SCJbSetUint(js, "online", data->online);
1195 SCJbSetUint(js, "restart", data->restart);
1196 SCJbSetUint(js, "comm_lost", data->comm_lost);
1197 SCJbSetUint(js, "remote_forced", data->remote_forced);
1198 SCJbSetUint(js, "local_forced", data->local_forced);
1199 SCJbSetUint(js, "over_range", data->over_range);
1200 SCJbSetUint(js, "reference_err", data->reference_err);
1201 SCJbSetUint(js, "reserved0", data->reserved0);
1202 SCJbSetFloat(js, "value", data->value);
1203 SCJbSetUint(js, "timestamp", data->timestamp);
1204 break;
1205 }
1206 case DNP3_OBJECT_CODE(43, 1): {
1207 DNP3ObjectG43V1 *data = point->data;
1208 SCJbSetUint(js, "status_code", data->status_code);
1209 SCJbSetUint(js, "reserved0", data->reserved0);
1210 SCJbSetUint(js, "commanded_value", data->commanded_value);
1211 break;
1212 }
1213 case DNP3_OBJECT_CODE(43, 2): {
1214 DNP3ObjectG43V2 *data = point->data;
1215 SCJbSetUint(js, "status_code", data->status_code);
1216 SCJbSetUint(js, "reserved0", data->reserved0);
1217 SCJbSetUint(js, "commanded_value", data->commanded_value);
1218 break;
1219 }
1220 case DNP3_OBJECT_CODE(43, 3): {
1221 DNP3ObjectG43V3 *data = point->data;
1222 SCJbSetUint(js, "status_code", data->status_code);
1223 SCJbSetUint(js, "reserved0", data->reserved0);
1224 SCJbSetUint(js, "commanded_value", data->commanded_value);
1225 SCJbSetUint(js, "timestamp", data->timestamp);
1226 break;
1227 }
1228 case DNP3_OBJECT_CODE(43, 4): {
1229 DNP3ObjectG43V4 *data = point->data;
1230 SCJbSetUint(js, "status_code", data->status_code);
1231 SCJbSetUint(js, "reserved0", data->reserved0);
1232 SCJbSetUint(js, "commanded_value", data->commanded_value);
1233 SCJbSetUint(js, "timestamp", data->timestamp);
1234 break;
1235 }
1236 case DNP3_OBJECT_CODE(43, 5): {
1237 DNP3ObjectG43V5 *data = point->data;
1238 SCJbSetUint(js, "status_code", data->status_code);
1239 SCJbSetUint(js, "reserved0", data->reserved0);
1240 SCJbSetFloat(js, "commanded_value", data->commanded_value);
1241 break;
1242 }
1243 case DNP3_OBJECT_CODE(43, 6): {
1244 DNP3ObjectG43V6 *data = point->data;
1245 SCJbSetUint(js, "status_code", data->status_code);
1246 SCJbSetUint(js, "reserved0", data->reserved0);
1247 SCJbSetFloat(js, "commanded_value", data->commanded_value);
1248 break;
1249 }
1250 case DNP3_OBJECT_CODE(43, 7): {
1251 DNP3ObjectG43V7 *data = point->data;
1252 SCJbSetUint(js, "status_code", data->status_code);
1253 SCJbSetUint(js, "reserved0", data->reserved0);
1254 SCJbSetFloat(js, "commanded_value", data->commanded_value);
1255 SCJbSetUint(js, "timestamp", data->timestamp);
1256 break;
1257 }
1258 case DNP3_OBJECT_CODE(43, 8): {
1259 DNP3ObjectG43V8 *data = point->data;
1260 SCJbSetUint(js, "status_code", data->status_code);
1261 SCJbSetUint(js, "reserved0", data->reserved0);
1262 SCJbSetFloat(js, "commanded_value", data->commanded_value);
1263 SCJbSetUint(js, "timestamp", data->timestamp);
1264 break;
1265 }
1266 case DNP3_OBJECT_CODE(50, 1): {
1267 DNP3ObjectG50V1 *data = point->data;
1268 SCJbSetUint(js, "timestamp", data->timestamp);
1269 break;
1270 }
1271 case DNP3_OBJECT_CODE(50, 2): {
1272 DNP3ObjectG50V2 *data = point->data;
1273 SCJbSetUint(js, "timestamp", data->timestamp);
1274 SCJbSetUint(js, "interval", data->interval);
1275 break;
1276 }
1277 case DNP3_OBJECT_CODE(50, 3): {
1278 DNP3ObjectG50V3 *data = point->data;
1279 SCJbSetUint(js, "timestamp", data->timestamp);
1280 break;
1281 }
1282 case DNP3_OBJECT_CODE(50, 4): {
1283 DNP3ObjectG50V4 *data = point->data;
1284 SCJbSetUint(js, "timestamp", data->timestamp);
1285 SCJbSetUint(js, "interval_count", data->interval_count);
1286 SCJbSetUint(js, "interval_units", data->interval_units);
1287 break;
1288 }
1289 case DNP3_OBJECT_CODE(51, 1): {
1290 DNP3ObjectG51V1 *data = point->data;
1291 SCJbSetUint(js, "timestamp", data->timestamp);
1292 break;
1293 }
1294 case DNP3_OBJECT_CODE(51, 2): {
1295 DNP3ObjectG51V2 *data = point->data;
1296 SCJbSetUint(js, "timestamp", data->timestamp);
1297 break;
1298 }
1299 case DNP3_OBJECT_CODE(52, 1): {
1300 DNP3ObjectG52V1 *data = point->data;
1301 SCJbSetUint(js, "delay_secs", data->delay_secs);
1302 break;
1303 }
1304 case DNP3_OBJECT_CODE(52, 2): {
1305 DNP3ObjectG52V2 *data = point->data;
1306 SCJbSetUint(js, "delay_ms", data->delay_ms);
1307 break;
1308 }
1309 case DNP3_OBJECT_CODE(70, 1): {
1310 DNP3ObjectG70V1 *data = point->data;
1311 SCJbSetUint(js, "filename_size", data->filename_size);
1312 SCJbSetUint(js, "filetype_code", data->filetype_code);
1313 SCJbSetUint(js, "attribute_code", data->attribute_code);
1314 SCJbSetUint(js, "start_record", data->start_record);
1315 SCJbSetUint(js, "end_record", data->end_record);
1316 SCJbSetUint(js, "file_size", data->file_size);
1317 SCJbSetUint(js, "created_timestamp", data->created_timestamp);
1318 SCJbSetUint(js, "permission", data->permission);
1319 SCJbSetUint(js, "file_id", data->file_id);
1320 SCJbSetUint(js, "owner_id", data->owner_id);
1321 SCJbSetUint(js, "group_id", data->group_id);
1322 SCJbSetUint(js, "file_function_code", data->file_function_code);
1323 SCJbSetUint(js, "status_code", data->status_code);
1324 if (data->filename_size > 0) {
1325 SCJbSetStringFromBytes(
1326 js, "filename", (const uint8_t *)data->filename, data->filename_size);
1327 } else {
1328 SCJbSetString(js, "filename", "");
1329 }
1330 SCJbSetUint(js, "data_size", data->data_size);
1331 if (data->data_size > 0) {
1332 SCJbSetStringFromBytes(
1333 js, "data", (const uint8_t *)data->data, data->data_size);
1334 } else {
1335 SCJbSetString(js, "data", "");
1336 }
1337 break;
1338 }
1339 case DNP3_OBJECT_CODE(70, 2): {
1340 DNP3ObjectG70V2 *data = point->data;
1341 SCJbSetUint(js, "username_offset", data->username_offset);
1342 SCJbSetUint(js, "username_size", data->username_size);
1343 SCJbSetUint(js, "password_offset", data->password_offset);
1344 SCJbSetUint(js, "password_size", data->password_size);
1345 SCJbSetUint(js, "authentication_key", data->authentication_key);
1346 if (data->username_size > 0) {
1347 SCJbSetStringFromBytes(
1348 js, "username", (const uint8_t *)data->username, data->username_size);
1349 } else {
1350 SCJbSetString(js, "username", "");
1351 }
1352 if (data->password_size > 0) {
1353 SCJbSetStringFromBytes(
1354 js, "password", (const uint8_t *)data->password, data->password_size);
1355 } else {
1356 SCJbSetString(js, "password", "");
1357 }
1358 break;
1359 }
1360 case DNP3_OBJECT_CODE(70, 3): {
1361 DNP3ObjectG70V3 *data = point->data;
1362 SCJbSetUint(js, "filename_offset", data->filename_offset);
1363 SCJbSetUint(js, "filename_size", data->filename_size);
1364 SCJbSetUint(js, "created", data->created);
1365 SCJbSetUint(js, "permissions", data->permissions);
1366 SCJbSetUint(js, "authentication_key", data->authentication_key);
1367 SCJbSetUint(js, "file_size", data->file_size);
1368 SCJbSetUint(js, "operational_mode", data->operational_mode);
1369 SCJbSetUint(js, "maximum_block_size", data->maximum_block_size);
1370 SCJbSetUint(js, "request_id", data->request_id);
1371 if (data->filename_size > 0) {
1372 SCJbSetStringFromBytes(
1373 js, "filename", (const uint8_t *)data->filename, data->filename_size);
1374 } else {
1375 SCJbSetString(js, "filename", "");
1376 }
1377 break;
1378 }
1379 case DNP3_OBJECT_CODE(70, 4): {
1380 DNP3ObjectG70V4 *data = point->data;
1381 SCJbSetUint(js, "file_handle", data->file_handle);
1382 SCJbSetUint(js, "file_size", data->file_size);
1383 SCJbSetUint(js, "maximum_block_size", data->maximum_block_size);
1384 SCJbSetUint(js, "request_id", data->request_id);
1385 SCJbSetUint(js, "status_code", data->status_code);
1386 if (data->optional_text_len > 0) {
1387 SCJbSetStringFromBytes(
1388 js, "optional_text", (const uint8_t *)data->optional_text, data->optional_text_len);
1389 } else {
1390 SCJbSetString(js, "optional_text", "");
1391 }
1392 break;
1393 }
1394 case DNP3_OBJECT_CODE(70, 5): {
1395 DNP3ObjectG70V5 *data = point->data;
1396 SCJbSetUint(js, "file_handle", data->file_handle);
1397 SCJbSetUint(js, "block_number", data->block_number);
1398 if (data->file_data_len > 0) {
1399 SCJbSetStringFromBytes(
1400 js, "file_data", (const uint8_t *)data->file_data, data->file_data_len);
1401 } else {
1402 SCJbSetString(js, "file_data", "");
1403 }
1404 break;
1405 }
1406 case DNP3_OBJECT_CODE(70, 6): {
1407 DNP3ObjectG70V6 *data = point->data;
1408 SCJbSetUint(js, "file_handle", data->file_handle);
1409 SCJbSetUint(js, "block_number", data->block_number);
1410 SCJbSetUint(js, "status_code", data->status_code);
1411 if (data->optional_text_len > 0) {
1412 SCJbSetStringFromBytes(
1413 js, "optional_text", (const uint8_t *)data->optional_text, data->optional_text_len);
1414 } else {
1415 SCJbSetString(js, "optional_text", "");
1416 }
1417 break;
1418 }
1419 case DNP3_OBJECT_CODE(70, 7): {
1420 DNP3ObjectG70V7 *data = point->data;
1421 SCJbSetUint(js, "filename_offset", data->filename_offset);
1422 SCJbSetUint(js, "filename_size", data->filename_size);
1423 SCJbSetUint(js, "file_type", data->file_type);
1424 SCJbSetUint(js, "file_size", data->file_size);
1425 SCJbSetUint(js, "created_timestamp", data->created_timestamp);
1426 SCJbSetUint(js, "permissions", data->permissions);
1427 SCJbSetUint(js, "request_id", data->request_id);
1428 if (data->filename_size > 0) {
1429 SCJbSetStringFromBytes(
1430 js, "filename", (const uint8_t *)data->filename, data->filename_size);
1431 } else {
1432 SCJbSetString(js, "filename", "");
1433 }
1434 break;
1435 }
1436 case DNP3_OBJECT_CODE(70, 8): {
1437 DNP3ObjectG70V8 *data = point->data;
1438 if (data->file_specification_len > 0) {
1439 SCJbSetStringFromBytes(
1440 js, "file_specification", (const uint8_t *)data->file_specification, data->file_specification_len);
1441 } else {
1442 SCJbSetString(js, "file_specification", "");
1443 }
1444 break;
1445 }
1446 case DNP3_OBJECT_CODE(80, 1): {
1447 DNP3ObjectG80V1 *data = point->data;
1448 SCJbSetUint(js, "state", data->state);
1449 break;
1450 }
1451 case DNP3_OBJECT_CODE(81, 1): {
1452 DNP3ObjectG81V1 *data = point->data;
1453 SCJbSetUint(js, "fill_percentage", data->fill_percentage);
1454 SCJbSetUint(js, "overflow_state", data->overflow_state);
1455 SCJbSetUint(js, "group", data->group);
1456 SCJbSetUint(js, "variation", data->variation);
1457 break;
1458 }
1459 case DNP3_OBJECT_CODE(83, 1): {
1460 DNP3ObjectG83V1 *data = point->data;
1461 SCJbSetString(js, "data->vendor_code", data->vendor_code);
1462 SCJbSetUint(js, "object_id", data->object_id);
1463 SCJbSetUint(js, "length", data->length);
1464 SCJbSetBase64(js, "data->data_objects", data->data_objects, data->length);
1465 break;
1466 }
1467 case DNP3_OBJECT_CODE(86, 2): {
1468 DNP3ObjectG86V2 *data = point->data;
1469 SCJbSetUint(js, "rd", data->rd);
1470 SCJbSetUint(js, "wr", data->wr);
1471 SCJbSetUint(js, "st", data->st);
1472 SCJbSetUint(js, "ev", data->ev);
1473 SCJbSetUint(js, "df", data->df);
1474 SCJbSetUint(js, "padding0", data->padding0);
1475 SCJbSetUint(js, "padding1", data->padding1);
1476 SCJbSetUint(js, "padding2", data->padding2);
1477 break;
1478 }
1479 case DNP3_OBJECT_CODE(102, 1): {
1480 DNP3ObjectG102V1 *data = point->data;
1481 SCJbSetUint(js, "value", data->value);
1482 break;
1483 }
1484 case DNP3_OBJECT_CODE(120, 1): {
1485 DNP3ObjectG120V1 *data = point->data;
1486 SCJbSetUint(js, "csq", data->csq);
1487 SCJbSetUint(js, "usr", data->usr);
1488 SCJbSetUint(js, "mal", data->mal);
1489 SCJbSetUint(js, "reason", data->reason);
1490 SCJbSetBase64(js, "data->challenge_data", data->challenge_data, data->challenge_data_len);
1491 break;
1492 }
1493 case DNP3_OBJECT_CODE(120, 2): {
1494 DNP3ObjectG120V2 *data = point->data;
1495 SCJbSetUint(js, "csq", data->csq);
1496 SCJbSetUint(js, "usr", data->usr);
1497 SCJbSetBase64(js, "data->mac_value", data->mac_value, data->mac_value_len);
1498 break;
1499 }
1500 case DNP3_OBJECT_CODE(120, 3): {
1501 DNP3ObjectG120V3 *data = point->data;
1502 SCJbSetUint(js, "csq", data->csq);
1503 SCJbSetUint(js, "user_number", data->user_number);
1504 break;
1505 }
1506 case DNP3_OBJECT_CODE(120, 4): {
1507 DNP3ObjectG120V4 *data = point->data;
1508 SCJbSetUint(js, "user_number", data->user_number);
1509 break;
1510 }
1511 case DNP3_OBJECT_CODE(120, 5): {
1512 DNP3ObjectG120V5 *data = point->data;
1513 SCJbSetUint(js, "ksq", data->ksq);
1514 SCJbSetUint(js, "user_number", data->user_number);
1515 SCJbSetUint(js, "key_wrap_alg", data->key_wrap_alg);
1516 SCJbSetUint(js, "key_status", data->key_status);
1517 SCJbSetUint(js, "mal", data->mal);
1518 SCJbSetUint(js, "challenge_data_len", data->challenge_data_len);
1519 SCJbSetBase64(js, "data->challenge_data", data->challenge_data, data->challenge_data_len);
1520 SCJbSetBase64(js, "data->mac_value", data->mac_value, data->mac_value_len);
1521 break;
1522 }
1523 case DNP3_OBJECT_CODE(120, 6): {
1524 DNP3ObjectG120V6 *data = point->data;
1525 SCJbSetUint(js, "ksq", data->ksq);
1526 SCJbSetUint(js, "usr", data->usr);
1527 SCJbSetBase64(js, "data->wrapped_key_data", data->wrapped_key_data, data->wrapped_key_data_len);
1528 break;
1529 }
1530 case DNP3_OBJECT_CODE(120, 7): {
1531 DNP3ObjectG120V7 *data = point->data;
1532 SCJbSetUint(js, "sequence_number", data->sequence_number);
1533 SCJbSetUint(js, "usr", data->usr);
1534 SCJbSetUint(js, "association_id", data->association_id);
1535 SCJbSetUint(js, "error_code", data->error_code);
1536 SCJbSetUint(js, "time_of_error", data->time_of_error);
1537 if (data->error_text_len > 0) {
1538 SCJbSetStringFromBytes(
1539 js, "error_text", (const uint8_t *)data->error_text, data->error_text_len);
1540 } else {
1541 SCJbSetString(js, "error_text", "");
1542 }
1543 break;
1544 }
1545 case DNP3_OBJECT_CODE(120, 8): {
1546 DNP3ObjectG120V8 *data = point->data;
1547 SCJbSetUint(js, "key_change_method", data->key_change_method);
1548 SCJbSetUint(js, "certificate_type", data->certificate_type);
1549 SCJbSetBase64(js, "data->certificate", data->certificate, data->certificate_len);
1550 break;
1551 }
1552 case DNP3_OBJECT_CODE(120, 9): {
1553 DNP3ObjectG120V9 *data = point->data;
1554 SCJbSetBase64(js, "data->mac_value", data->mac_value, data->mac_value_len);
1555 break;
1556 }
1557 case DNP3_OBJECT_CODE(120, 10): {
1558 DNP3ObjectG120V10 *data = point->data;
1559 SCJbSetUint(js, "key_change_method", data->key_change_method);
1560 SCJbSetUint(js, "operation", data->operation);
1561 SCJbSetUint(js, "scs", data->scs);
1562 SCJbSetUint(js, "user_role", data->user_role);
1563 SCJbSetUint(js, "user_role_expiry_interval", data->user_role_expiry_interval);
1564 SCJbSetUint(js, "username_len", data->username_len);
1565 SCJbSetUint(js, "user_public_key_len", data->user_public_key_len);
1566 SCJbSetUint(js, "certification_data_len", data->certification_data_len);
1567 if (data->username_len > 0) {
1568 SCJbSetStringFromBytes(
1569 js, "username", (const uint8_t *)data->username, data->username_len);
1570 } else {
1571 SCJbSetString(js, "username", "");
1572 }
1573 SCJbSetBase64(js, "data->user_public_key", data->user_public_key, data->user_public_key_len);
1574 SCJbSetBase64(js, "data->certification_data", data->certification_data, data->certification_data_len);
1575 break;
1576 }
1577 case DNP3_OBJECT_CODE(120, 11): {
1578 DNP3ObjectG120V11 *data = point->data;
1579 SCJbSetUint(js, "key_change_method", data->key_change_method);
1580 SCJbSetUint(js, "username_len", data->username_len);
1581 SCJbSetUint(js, "master_challenge_data_len", data->master_challenge_data_len);
1582 if (data->username_len > 0) {
1583 SCJbSetStringFromBytes(
1584 js, "username", (const uint8_t *)data->username, data->username_len);
1585 } else {
1586 SCJbSetString(js, "username", "");
1587 }
1588 SCJbSetBase64(js, "data->master_challenge_data", data->master_challenge_data, data->master_challenge_data_len);
1589 break;
1590 }
1591 case DNP3_OBJECT_CODE(120, 12): {
1592 DNP3ObjectG120V12 *data = point->data;
1593 SCJbSetUint(js, "ksq", data->ksq);
1594 SCJbSetUint(js, "user_number", data->user_number);
1595 SCJbSetUint(js, "challenge_data_len", data->challenge_data_len);
1596 SCJbSetBase64(js, "data->challenge_data", data->challenge_data, data->challenge_data_len);
1597 break;
1598 }
1599 case DNP3_OBJECT_CODE(120, 13): {
1600 DNP3ObjectG120V13 *data = point->data;
1601 SCJbSetUint(js, "ksq", data->ksq);
1602 SCJbSetUint(js, "user_number", data->user_number);
1603 SCJbSetUint(js, "encrypted_update_key_len", data->encrypted_update_key_len);
1604 SCJbSetBase64(js, "data->encrypted_update_key_data", data->encrypted_update_key_data, data->encrypted_update_key_len);
1605 break;
1606 }
1607 case DNP3_OBJECT_CODE(120, 14): {
1608 DNP3ObjectG120V14 *data = point->data;
1609 SCJbSetBase64(js, "data->digital_signature", data->digital_signature, data->digital_signature_len);
1610 break;
1611 }
1612 case DNP3_OBJECT_CODE(120, 15): {
1613 DNP3ObjectG120V15 *data = point->data;
1614 SCJbSetBase64(js, "data->mac", data->mac, data->mac_len);
1615 break;
1616 }
1617 case DNP3_OBJECT_CODE(121, 1): {
1618 DNP3ObjectG121V1 *data = point->data;
1619 SCJbSetUint(js, "online", data->online);
1620 SCJbSetUint(js, "restart", data->restart);
1621 SCJbSetUint(js, "comm_lost", data->comm_lost);
1622 SCJbSetUint(js, "remote_forced", data->remote_forced);
1623 SCJbSetUint(js, "local_forced", data->local_forced);
1624 SCJbSetUint(js, "reserved0", data->reserved0);
1625 SCJbSetUint(js, "discontinuity", data->discontinuity);
1626 SCJbSetUint(js, "reserved1", data->reserved1);
1627 SCJbSetUint(js, "association_id", data->association_id);
1628 SCJbSetUint(js, "count_value", data->count_value);
1629 break;
1630 }
1631 case DNP3_OBJECT_CODE(122, 1): {
1632 DNP3ObjectG122V1 *data = point->data;
1633 SCJbSetUint(js, "online", data->online);
1634 SCJbSetUint(js, "restart", data->restart);
1635 SCJbSetUint(js, "comm_lost", data->comm_lost);
1636 SCJbSetUint(js, "remote_forced", data->remote_forced);
1637 SCJbSetUint(js, "local_forced", data->local_forced);
1638 SCJbSetUint(js, "reserved0", data->reserved0);
1639 SCJbSetUint(js, "discontinuity", data->discontinuity);
1640 SCJbSetUint(js, "reserved1", data->reserved1);
1641 SCJbSetUint(js, "association_id", data->association_id);
1642 SCJbSetUint(js, "count_value", data->count_value);
1643 break;
1644 }
1645 case DNP3_OBJECT_CODE(122, 2): {
1646 DNP3ObjectG122V2 *data = point->data;
1647 SCJbSetUint(js, "online", data->online);
1648 SCJbSetUint(js, "restart", data->restart);
1649 SCJbSetUint(js, "comm_lost", data->comm_lost);
1650 SCJbSetUint(js, "remote_forced", data->remote_forced);
1651 SCJbSetUint(js, "local_forced", data->local_forced);
1652 SCJbSetUint(js, "reserved0", data->reserved0);
1653 SCJbSetUint(js, "discontinuity", data->discontinuity);
1654 SCJbSetUint(js, "reserved1", data->reserved1);
1655 SCJbSetUint(js, "association_id", data->association_id);
1656 SCJbSetUint(js, "count_value", data->count_value);
1657 SCJbSetUint(js, "timestamp", data->timestamp);
1658 break;
1659 }
1660 default:
1661 SCLogDebug("Unknown object: %d:%d", object->group,
1662 object->variation);
1663 break;
1664 }
1665
1666}
1667// clang-format on
#define DNP3_OBJECT_CODE(group, variation)
void OutputJsonDNP3SetItem(SCJsonBuilder *js, DNP3Object *object, DNP3Point *point)
Struct to hold the list of decoded objects.
uint8_t variation
DNP3 object point.
#define SCLogDebug(...)
Definition util-debug.h:275