config-editor-base 2.2.9 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2650 @@
1
+ {
2
+ "type": "object",
3
+ "definitions": {
4
+ "can_message": {
5
+ "type": "object",
6
+ "properties": {
7
+ "chn": {
8
+ "title": "Channel",
9
+ "description": "CAN-bus channel",
10
+ "type": "integer",
11
+ "default": 0,
12
+ "oneOf": [
13
+ {
14
+ "type": "integer",
15
+ "title": "CAN internal",
16
+ "enum": [
17
+ 0
18
+ ]
19
+ },
20
+ {
21
+ "type": "integer",
22
+ "title": "CAN 1",
23
+ "enum": [
24
+ 1
25
+ ]
26
+ },
27
+ {
28
+ "type": "integer",
29
+ "title": "CAN 2",
30
+ "enum": [
31
+ 2
32
+ ]
33
+ }
34
+ ]
35
+ },
36
+ "id_format": {
37
+ "title": "ID format",
38
+ "description": "ID format of message.",
39
+ "type": "integer",
40
+ "default": 0,
41
+ "oneOf": [
42
+ {
43
+ "type": "integer",
44
+ "title": "Standard (11-bit)",
45
+ "enum": [
46
+ 0
47
+ ]
48
+ },
49
+ {
50
+ "type": "integer",
51
+ "title": "Extended (29-bit)",
52
+ "enum": [
53
+ 1
54
+ ]
55
+ }
56
+ ]
57
+ },
58
+ "id": {
59
+ "title": "ID (hex)",
60
+ "description": "ID of message in hex. Example: 1FF.",
61
+ "type": "string",
62
+ "default": "0"
63
+ },
64
+ "id_mask": {
65
+ "title": "ID mask (hex)",
66
+ "description": "ID mask in hex. Example: 7FF.",
67
+ "type": "string",
68
+ "default": "7FF"
69
+ }
70
+ },
71
+ "dependencies": {
72
+ "id_format": {
73
+ "oneOf": [
74
+ {
75
+ "properties": {
76
+ "id_format": {
77
+ "enum": [
78
+ 0
79
+ ]
80
+ },
81
+ "id": {
82
+ "pattern": "^([0-7][a-fA-F0-9]{2}|[a-fA-F0-9]{1,2})$",
83
+ "maxLength": 3
84
+ },
85
+ "id_mask": {
86
+ "pattern": "^([0-7][a-fA-F0-9]{2}|[a-fA-F0-9]{1,2})$",
87
+ "maxLength": 3
88
+ }
89
+ }
90
+ },
91
+ {
92
+ "properties": {
93
+ "id_format": {
94
+ "enum": [
95
+ 1
96
+ ]
97
+ },
98
+ "id": {
99
+ "pattern": "^([0-1][a-fA-F0-9]{7}|[a-fA-F0-9]{1,7})$",
100
+ "maxLength": 8
101
+ },
102
+ "id_mask": {
103
+ "pattern": "^([0-1][a-fA-F0-9]{7}|[a-fA-F0-9]{1,7})$",
104
+ "maxLength": 8
105
+ }
106
+ }
107
+ }
108
+ ]
109
+ }
110
+ },
111
+ "additionalProperties": false,
112
+ "required": [
113
+ "chn",
114
+ "id_format",
115
+ "id",
116
+ "id_mask"
117
+ ]
118
+ },
119
+ "can_signal": {
120
+ "type": "object",
121
+ "properties": {
122
+ "type": {
123
+ "title": "Signal type",
124
+ "type": "integer",
125
+ "default": 0,
126
+ "oneOf": [
127
+ {
128
+ "type": "integer",
129
+ "title": "Unsigned",
130
+ "enum": [
131
+ 0
132
+ ]
133
+ }
134
+ ]
135
+ },
136
+ "byteorder": {
137
+ "title": "Signal byteorder",
138
+ "description": "Can be Motorola (big endian) or Intel (little endian)",
139
+ "type": "integer",
140
+ "default": 1,
141
+ "oneOf": [
142
+ {
143
+ "type": "integer",
144
+ "title": "Motorola",
145
+ "enum": [
146
+ 0
147
+ ]
148
+ },
149
+ {
150
+ "type": "integer",
151
+ "title": "Intel",
152
+ "enum": [
153
+ 1
154
+ ]
155
+ }
156
+ ]
157
+ },
158
+ "bitpos": {
159
+ "title": "Signal bit position",
160
+ "type": "integer",
161
+ "default": 0,
162
+ "minimum": 0,
163
+ "maximum": 512
164
+ },
165
+ "length": {
166
+ "title": "Signal bit length",
167
+ "type": "integer",
168
+ "default": 0,
169
+ "minimum": 0,
170
+ "maximum": 64
171
+ },
172
+ "factor": {
173
+ "title": "Signal scaling",
174
+ "type": "number",
175
+ "default": 0
176
+ },
177
+ "offset": {
178
+ "title": "Signal offset",
179
+ "type": "number",
180
+ "default": 0
181
+ }
182
+ },
183
+ "additionalProperties": false,
184
+ "required": [
185
+ "type",
186
+ "byteorder",
187
+ "bitpos",
188
+ "length",
189
+ "factor",
190
+ "offset"
191
+ ]
192
+ },
193
+ "can_control_startstop": {
194
+ "type": "object",
195
+ "properties": {
196
+ "message": {
197
+ "title": "Message",
198
+ "$ref": "#/definitions/can_message"
199
+ },
200
+ "signal": {
201
+ "title": "Signal",
202
+ "$ref": "#/definitions/can_signal"
203
+ },
204
+ "trigger_high": {
205
+ "title": "Trigger high (dec)",
206
+ "type": "number",
207
+ "default": 0
208
+ },
209
+ "trigger_low": {
210
+ "title": "Trigger low (dec)",
211
+ "type": "number",
212
+ "default": 0
213
+ }
214
+ },
215
+ "additionalProperties": false,
216
+ "required": [
217
+ "message",
218
+ "signal",
219
+ "trigger_high",
220
+ "trigger_low"
221
+ ]
222
+ },
223
+ "can_filter_id": {
224
+ "title": "ID filters",
225
+ "type": "array",
226
+ "minItems": 1,
227
+ "items": {
228
+ "type": "object",
229
+ "properties": {
230
+ "name": {
231
+ "title": "Name",
232
+ "description": "Optional filter name.",
233
+ "type": "string",
234
+ "pattern": "^[ -~]*$",
235
+ "maxLength": 16
236
+ },
237
+ "state": {
238
+ "title": "State",
239
+ "description": "Disabled filters are ignored.",
240
+ "type": "integer",
241
+ "default": 1,
242
+ "oneOf": [
243
+ {
244
+ "type": "integer",
245
+ "title": "Disable",
246
+ "enum": [
247
+ 0
248
+ ]
249
+ },
250
+ {
251
+ "type": "integer",
252
+ "title": "Enable",
253
+ "enum": [
254
+ 1
255
+ ]
256
+ }
257
+ ]
258
+ },
259
+ "type": {
260
+ "title": "Type",
261
+ "description": "Action on match, accept or reject message.",
262
+ "type": "integer",
263
+ "default": 0,
264
+ "oneOf": [
265
+ {
266
+ "title": "Acceptance",
267
+ "enum": [
268
+ 0
269
+ ]
270
+ },
271
+ {
272
+ "title": "Rejection",
273
+ "enum": [
274
+ 1
275
+ ]
276
+ }
277
+ ]
278
+ },
279
+ "id_format": {
280
+ "title": "ID format",
281
+ "description": "Filter ID format. Filters apply to messages with matching ID format.",
282
+ "type": "integer",
283
+ "default": 0,
284
+ "oneOf": [
285
+ {
286
+ "title": "Standard (11-bit)",
287
+ "enum": [
288
+ 0
289
+ ]
290
+ },
291
+ {
292
+ "title": "Extended (29-bit)",
293
+ "enum": [
294
+ 1
295
+ ]
296
+ }
297
+ ]
298
+ },
299
+ "method": {
300
+ "title": "Filter method",
301
+ "description": "The filter ID matching mechanism.",
302
+ "type": "integer",
303
+ "default": 0,
304
+ "oneOf": [
305
+ {
306
+ "title": "Range",
307
+ "enum": [
308
+ 0
309
+ ],
310
+ "description": "ID ranges"
311
+ },
312
+ {
313
+ "title": "Mask",
314
+ "enum": [
315
+ 1
316
+ ],
317
+ "description": "ID masking"
318
+ }
319
+ ]
320
+ },
321
+ "f1": {
322
+ "title": "From (range) / ID (mask) (HEX)",
323
+ "description": "If filter method is Range, this field defines the start of range. If filter method is Mask, this field defines the filter ID.",
324
+ "type": "string",
325
+ "pattern": "^[a-fA-F0-9]+$",
326
+ "maxLength": 8,
327
+ "default": "0"
328
+ },
329
+ "f2": {
330
+ "title": "To (range) / mask (mask) (HEX)",
331
+ "description": "If filter method is Range, this field defines the end of range. If filter method is Mask, this field defines the filter mask.",
332
+ "type": "string",
333
+ "pattern": "^[a-fA-F0-9]+$",
334
+ "maxLength": 8,
335
+ "default": "7FF"
336
+ }
337
+ },
338
+ "dependencies": {
339
+ "type": {
340
+ "oneOf": [
341
+ {
342
+ "properties": {
343
+ "type": {
344
+ "enum": [
345
+ 0
346
+ ]
347
+ },
348
+ "prescaler_type": {
349
+ "title": "Prescaling type",
350
+ "description": "Select prescaling type. Prescale by message count, time or data. Select None to disable prescaling.",
351
+ "type": "integer",
352
+ "default": 0,
353
+ "oneOf": [
354
+ {
355
+ "title": "None",
356
+ "enum": [
357
+ 0
358
+ ]
359
+ },
360
+ {
361
+ "title": "Count",
362
+ "enum": [
363
+ 1
364
+ ]
365
+ },
366
+ {
367
+ "title": "Time",
368
+ "enum": [
369
+ 2
370
+ ]
371
+ },
372
+ {
373
+ "title": "Data",
374
+ "enum": [
375
+ 3
376
+ ]
377
+ }
378
+ ]
379
+ }
380
+ },
381
+ "dependencies": {
382
+ "prescaler_type": {
383
+ "oneOf": [
384
+ {
385
+ "properties": {
386
+ "prescaler_type": {
387
+ "enum": [
388
+ 0
389
+ ]
390
+ }
391
+ }
392
+ },
393
+ {
394
+ "properties": {
395
+ "prescaler_type": {
396
+ "enum": [
397
+ 1
398
+ ]
399
+ },
400
+ "prescaler_value": {
401
+ "title": "Count",
402
+ "type": "integer",
403
+ "description": "Count prescaler value. Example: Set to 2 to sample a message with a specific ID every second time.",
404
+ "default": 1,
405
+ "minimum": 1,
406
+ "maximum": 256
407
+ }
408
+ },
409
+ "required": [
410
+ "prescaler_value"
411
+ ]
412
+ },
413
+ {
414
+ "properties": {
415
+ "prescaler_type": {
416
+ "enum": [
417
+ 2
418
+ ]
419
+ },
420
+ "prescaler_value": {
421
+ "title": "Time",
422
+ "description": "Time prescaler value in milliseconds. Example: Set to 1000 to sample a message with a specific ID with a minimum period time of 1 second. Note that messages are not resampled to a specific fixed period time.",
423
+ "type": "integer",
424
+ "default": 1,
425
+ "minimum": 1,
426
+ "maximum": 4194304
427
+ }
428
+ },
429
+ "required": [
430
+ "prescaler_value"
431
+ ]
432
+ },
433
+ {
434
+ "properties": {
435
+ "prescaler_type": {
436
+ "enum": [
437
+ 3
438
+ ]
439
+ },
440
+ "prescaler_value": {
441
+ "title": "Mask",
442
+ "description": "Data prescaler mask value in hex. Each bit corresponds to a data byte (up to 64 bytes). Leave empty to disable the mask (triggers on any data change). Example 1: Set to FF (0b11111111) to sample a message with a specific ID if any of the first 8 data bytes change. Example 2: Set to 03 (0b00000011) to sample if any of the two first data bytes change. Example 3: Set to 9 (0b00001001) to sample if any of the first or fourth data bytes change.",
443
+ "type": "string",
444
+ "default": "FF",
445
+ "pattern": "^[a-fA-F0-9]*$",
446
+ "maxLength": 16
447
+ }
448
+ }
449
+ }
450
+ ]
451
+ }
452
+ },
453
+ "required": [
454
+ "prescaler_type"
455
+ ]
456
+ },
457
+ {
458
+ "properties": {
459
+ "type": {
460
+ "enum": [
461
+ 1
462
+ ]
463
+ }
464
+ }
465
+ }
466
+ ]
467
+ }
468
+ },
469
+ "additionalProperties": false,
470
+ "patternProperties": {
471
+ "prescaler_type": {},
472
+ "prescaler_value": {}
473
+ },
474
+ "required": [
475
+ "state",
476
+ "type",
477
+ "id_format",
478
+ "method",
479
+ "f1",
480
+ "f2"
481
+ ]
482
+ }
483
+ },
484
+ "can_general": {
485
+ "title": "General",
486
+ "description": "CAN bus general configuration",
487
+ "type": "object",
488
+ "properties": {
489
+ "rx_state": {
490
+ "title": "Reception (rx) initial state",
491
+ "description": "The initial state of CAN-bus reception. Can be changed using the control signal.",
492
+ "type": "integer",
493
+ "default": 1,
494
+ "oneOf": [
495
+ {
496
+ "type": "integer",
497
+ "title": "Disable",
498
+ "enum": [
499
+ 0
500
+ ]
501
+ },
502
+ {
503
+ "type": "integer",
504
+ "title": "Enable",
505
+ "enum": [
506
+ 1
507
+ ]
508
+ }
509
+ ]
510
+ },
511
+ "tx_state": {
512
+ "title": "Transmission (tx) initial state",
513
+ "description": "The initial state of CAN-bus transmissions. Can be changed using the control signal.",
514
+ "type": "integer",
515
+ "default": 1,
516
+ "oneOf": [
517
+ {
518
+ "type": "integer",
519
+ "title": "Disable",
520
+ "enum": [
521
+ 0
522
+ ]
523
+ },
524
+ {
525
+ "type": "integer",
526
+ "title": "Enable",
527
+ "enum": [
528
+ 1
529
+ ]
530
+ }
531
+ ]
532
+ }
533
+ },
534
+ "additionalProperties": false,
535
+ "required": [
536
+ "rx_state",
537
+ "tx_state"
538
+ ]
539
+ },
540
+ "can_control": {
541
+ "title": "Control",
542
+ "description": "Control signal",
543
+ "type": "object",
544
+ "properties": {
545
+ "control_rx_state": {
546
+ "title": "Control reception (rx) state",
547
+ "description": "Control CAN-bus reception state (including logging) ",
548
+ "type": "integer",
549
+ "default": 0,
550
+ "oneOf": [
551
+ {
552
+ "type": "integer",
553
+ "title": "Disable",
554
+ "enum": [
555
+ 0
556
+ ]
557
+ },
558
+ {
559
+ "type": "integer",
560
+ "title": "Enable",
561
+ "enum": [
562
+ 1
563
+ ]
564
+ }
565
+ ]
566
+ },
567
+ "control_tx_state": {
568
+ "title": "Control transmission (tx) state",
569
+ "description": "Control CAN-bus transmission state (including logging) ",
570
+ "type": "integer",
571
+ "default": 0,
572
+ "oneOf": [
573
+ {
574
+ "type": "integer",
575
+ "title": "Disable",
576
+ "enum": [
577
+ 0
578
+ ]
579
+ },
580
+ {
581
+ "type": "integer",
582
+ "title": "Enable",
583
+ "enum": [
584
+ 1
585
+ ]
586
+ }
587
+ ]
588
+ },
589
+ "start": {
590
+ "title": "Start",
591
+ "$ref": "#/definitions/can_control_startstop"
592
+ },
593
+ "stop": {
594
+ "title": "Stop",
595
+ "$ref": "#/definitions/can_control_startstop"
596
+ }
597
+ },
598
+ "required": [
599
+ "control_rx_state",
600
+ "control_tx_state",
601
+ "start",
602
+ "stop"
603
+ ]
604
+ },
605
+ "can": {
606
+ "type": "object",
607
+ "properties": {
608
+ "general": {
609
+ "$ref": "#/definitions/can_general"
610
+ },
611
+ "phy": {
612
+ "title": "Physical (CAN bus low-level)",
613
+ "description": "CAN bus low-level configuration",
614
+ "type": "object",
615
+ "properties": {
616
+ "mode": {
617
+ "title": "Mode",
618
+ "description": "Device CAN bus mode. Configures how the device interacts with the bus. In Normal mode, the device can receive, acknowledge and transmit frames. In Restricted mode, the device can receive and acknowledge, but not transmit frames. In Bus Monitoring mode, the device can receive, but not acknowledge or transmit frames. It is recommended to always use the most restrictive mode possible.",
619
+ "type": "integer",
620
+ "default": 1,
621
+ "oneOf": [
622
+ {
623
+ "type": "integer",
624
+ "title": "Normal (receive, acknowledge and transmit)",
625
+ "enum": [
626
+ 0
627
+ ]
628
+ },
629
+ {
630
+ "type": "integer",
631
+ "title": "Restricted (receive and acknowledge)",
632
+ "enum": [
633
+ 1
634
+ ]
635
+ },
636
+ {
637
+ "type": "integer",
638
+ "title": "Monitoring (receive only)",
639
+ "enum": [
640
+ 2
641
+ ]
642
+ }
643
+ ]
644
+ },
645
+ "retransmission": {
646
+ "title": "Automatic retransmission",
647
+ "description": "Retransmission of frames that have lost arbitration or that have been disturbed by errors during transmission.",
648
+ "type": "integer",
649
+ "default": 1,
650
+ "oneOf": [
651
+ {
652
+ "type": "integer",
653
+ "title": "Disable",
654
+ "enum": [
655
+ 0
656
+ ]
657
+ },
658
+ {
659
+ "type": "integer",
660
+ "title": "Enable",
661
+ "enum": [
662
+ 1
663
+ ]
664
+ }
665
+ ]
666
+ },
667
+ "fd_spec": {
668
+ "title": "CAN FD specification",
669
+ "description": "Configures the CAN FD specification used by the device. Shall match the specification used by the CAN bus network.",
670
+ "type": "integer",
671
+ "default": 0,
672
+ "oneOf": [
673
+ {
674
+ "type": "integer",
675
+ "title": " ISO CAN FD (11898-1)",
676
+ "enum": [
677
+ 0
678
+ ]
679
+ },
680
+ {
681
+ "type": "integer",
682
+ "title": "non-ISO CAN FD (Bosch V1.0.)",
683
+ "enum": [
684
+ 1
685
+ ]
686
+ }
687
+ ]
688
+ },
689
+ "bit_rate_cfg_mode": {
690
+ "title": "Bit-rate configuration mode",
691
+ "description": "Configures how the CAN bus bit-rate is set. Modes Auto-detect and Bit-rate support all standard bit-rates. Non-standard bit-rate configuration can be set using Bit-timing. It is recommended to set the bit-rate manually if it is known.",
692
+ "type": "integer",
693
+ "default": 0,
694
+ "oneOf": [
695
+ {
696
+ "title": "Auto-detect",
697
+ "enum": [
698
+ 0
699
+ ]
700
+ },
701
+ {
702
+ "title": "Bit-rate (simple)",
703
+ "enum": [
704
+ 1
705
+ ]
706
+ },
707
+ {
708
+ "title": "Bit-timing (advanced)",
709
+ "enum": [
710
+ 2
711
+ ]
712
+ }
713
+ ]
714
+ }
715
+ },
716
+ "dependencies": {
717
+ "bit_rate_cfg_mode": {
718
+ "oneOf": [
719
+ {
720
+ "properties": {
721
+ "bit_rate_cfg_mode": {
722
+ "enum": [
723
+ 0
724
+ ]
725
+ }
726
+ }
727
+ },
728
+ {
729
+ "properties": {
730
+ "bit_rate_cfg_mode": {
731
+ "enum": [
732
+ 1
733
+ ]
734
+ },
735
+ "bit_rate_std": {
736
+ "title": "Bit-rate standard",
737
+ "type": "integer",
738
+ "default": 250000,
739
+ "oneOf": [
740
+ {
741
+ "title": "5K",
742
+ "enum": [
743
+ 5000
744
+ ]
745
+ },
746
+ {
747
+ "title": "10K",
748
+ "enum": [
749
+ 10000
750
+ ]
751
+ },
752
+ {
753
+ "title": "20K",
754
+ "enum": [
755
+ 20000
756
+ ]
757
+ },
758
+ {
759
+ "title": "33.333K",
760
+ "enum": [
761
+ 33333
762
+ ]
763
+ },
764
+ {
765
+ "title": "47.619K",
766
+ "enum": [
767
+ 47619
768
+ ]
769
+ },
770
+ {
771
+ "title": "50K",
772
+ "enum": [
773
+ 50000
774
+ ]
775
+ },
776
+ {
777
+ "title": "83.333K",
778
+ "enum": [
779
+ 83333
780
+ ]
781
+ },
782
+ {
783
+ "title": "95.238K",
784
+ "enum": [
785
+ 95238
786
+ ]
787
+ },
788
+ {
789
+ "title": "100K",
790
+ "enum": [
791
+ 100000
792
+ ]
793
+ },
794
+ {
795
+ "title": "125K",
796
+ "enum": [
797
+ 125000
798
+ ]
799
+ },
800
+ {
801
+ "title": "250K",
802
+ "enum": [
803
+ 250000
804
+ ]
805
+ },
806
+ {
807
+ "title": "500K",
808
+ "enum": [
809
+ 500000
810
+ ]
811
+ },
812
+ {
813
+ "title": "800K",
814
+ "enum": [
815
+ 800000
816
+ ]
817
+ },
818
+ {
819
+ "title": "1M",
820
+ "enum": [
821
+ 1000000
822
+ ]
823
+ }
824
+ ]
825
+ },
826
+ "bit_rate_fd": {
827
+ "title": "Bit-rate FD",
828
+ "type": "integer",
829
+ "default": 1000000,
830
+ "oneOf": [
831
+ {
832
+ "title": "1M",
833
+ "enum": [
834
+ 1000000
835
+ ]
836
+ },
837
+ {
838
+ "title": "2M",
839
+ "enum": [
840
+ 2000000
841
+ ]
842
+ },
843
+ {
844
+ "title": "4M",
845
+ "enum": [
846
+ 4000000
847
+ ]
848
+ }
849
+ ]
850
+ }
851
+ },
852
+ "required": [
853
+ "bit_rate_std",
854
+ "bit_rate_fd"
855
+ ]
856
+ },
857
+ {
858
+ "properties": {
859
+ "bit_rate_cfg_mode": {
860
+ "enum": [
861
+ 2
862
+ ]
863
+ },
864
+ "bit_rate_std": {
865
+ "title": "Bit-timing standard",
866
+ "type": "object",
867
+ "properties": {
868
+ "brp": {
869
+ "title": "BRP (Bit Rate Prescaler)",
870
+ "type": "integer",
871
+ "default": 2,
872
+ "minimum": 1
873
+ },
874
+ "seg1": {
875
+ "title": "SEG1 (Time Segment 1 )",
876
+ "type": "integer",
877
+ "default": 63,
878
+ "minimum": 1
879
+ },
880
+ "seg2": {
881
+ "title": "SEG2 (Time Segment 2)",
882
+ "type": "integer",
883
+ "default": 16,
884
+ "minimum": 2
885
+ },
886
+ "sjw": {
887
+ "title": "SJW (Synchronization Jump Width)",
888
+ "type": "integer",
889
+ "default": 4,
890
+ "minimum": 0,
891
+ "maximum": 4
892
+ }
893
+ },
894
+ "additionalProperties": false,
895
+ "required": [
896
+ "brp",
897
+ "seg1",
898
+ "seg2",
899
+ "sjw"
900
+ ]
901
+ },
902
+ "bit_rate_fd": {
903
+ "title": "Bit-timing FD",
904
+ "type": "object",
905
+ "properties": {
906
+ "brp": {
907
+ "title": "BRP (Bit Rate Prescaler)",
908
+ "type": "integer",
909
+ "default": 1,
910
+ "minimum": 1
911
+ },
912
+ "seg1": {
913
+ "title": "SEG1 (Time Segment 1)",
914
+ "type": "integer",
915
+ "default": 31,
916
+ "minimum": 1
917
+ },
918
+ "seg2": {
919
+ "title": "SEG2 (Time Segment 2)",
920
+ "type": "integer",
921
+ "default": 8,
922
+ "minimum": 2
923
+ },
924
+ "sjw": {
925
+ "title": "SJW (Synchronization Jump Width)",
926
+ "type": "integer",
927
+ "default": 4,
928
+ "minimum": 0,
929
+ "maximum": 4
930
+ }
931
+ },
932
+ "additionalProperties": false,
933
+ "required": [
934
+ "brp",
935
+ "seg1",
936
+ "seg2",
937
+ "sjw"
938
+ ]
939
+ }
940
+ },
941
+ "required": [
942
+ "bit_rate_std",
943
+ "bit_rate_fd"
944
+ ]
945
+ }
946
+ ]
947
+ }
948
+ },
949
+ "additionalProperties": false,
950
+ "patternProperties": {
951
+ "bit_rate_std": {},
952
+ "bit_rate_fd": {}
953
+ },
954
+ "required": [
955
+ "mode",
956
+ "retransmission",
957
+ "fd_spec",
958
+ "bit_rate_cfg_mode"
959
+ ]
960
+ },
961
+ "filter": {
962
+ "title": "Receive filters",
963
+ "type": "object",
964
+ "properties": {
965
+ "remote_frames": {
966
+ "title": "Filter remote request frames",
967
+ "description": "Controls if remote request frames are forwarded to the message filters. If `Reject` is selected, remote request frames are discarded before they reach the message filters.",
968
+ "type": "integer",
969
+ "default": 0,
970
+ "oneOf": [
971
+ {
972
+ "type": "integer",
973
+ "title": "Reject",
974
+ "enum": [
975
+ 0
976
+ ]
977
+ },
978
+ {
979
+ "type": "integer",
980
+ "title": "Accept",
981
+ "enum": [
982
+ 1
983
+ ]
984
+ }
985
+ ]
986
+ },
987
+ "id": {
988
+ "description": "Filters are checked sequentially, execution stops with the first matching filter element. Max 128 11-bit filters and 64 29-bit filters.",
989
+ "maxItems": 192,
990
+ "$ref": "#/definitions/can_filter_id"
991
+ }
992
+ },
993
+ "required": [
994
+ "remote_frames",
995
+ "id"
996
+ ]
997
+ },
998
+ "transmit": {
999
+ "title": "Transmit messages",
1000
+ "description": "List of CAN bus messages transmitted by the device. Requires a CAN-bus physical mode supporting transmissions.",
1001
+ "type": "array",
1002
+ "maxItems": 64,
1003
+ "items": {
1004
+ "type": "object",
1005
+ "properties": {
1006
+ "name": {
1007
+ "title": "Name",
1008
+ "description": "Optional transmit message name.",
1009
+ "type": "string",
1010
+ "pattern": "^[ -~]*$",
1011
+ "maxLength": 16
1012
+ },
1013
+ "state": {
1014
+ "title": "State",
1015
+ "description": "Disabled transmit messages are ignored.",
1016
+ "type": "integer",
1017
+ "default": 1,
1018
+ "oneOf": [
1019
+ {
1020
+ "type": "integer",
1021
+ "title": "Disable",
1022
+ "enum": [
1023
+ 0
1024
+ ]
1025
+ },
1026
+ {
1027
+ "type": "integer",
1028
+ "title": "Enable",
1029
+ "enum": [
1030
+ 1
1031
+ ]
1032
+ }
1033
+ ]
1034
+ },
1035
+ "id_format": {
1036
+ "title": "ID Format",
1037
+ "description": "ID format of the transmit message.",
1038
+ "type": "integer",
1039
+ "default": 0,
1040
+ "oneOf": [
1041
+ {
1042
+ "type": "integer",
1043
+ "title": "Standard (11-bit)",
1044
+ "enum": [
1045
+ 0
1046
+ ]
1047
+ },
1048
+ {
1049
+ "type": "integer",
1050
+ "title": "Extended (29-bit)",
1051
+ "enum": [
1052
+ 1
1053
+ ]
1054
+ }
1055
+ ]
1056
+ },
1057
+ "frame_format": {
1058
+ "title": "Frame format",
1059
+ "description": "Frame format of the transmit message.",
1060
+ "type": "integer",
1061
+ "default": 0,
1062
+ "oneOf": [
1063
+ {
1064
+ "type": "integer",
1065
+ "title": "Standard",
1066
+ "enum": [
1067
+ 0
1068
+ ]
1069
+ },
1070
+ {
1071
+ "type": "integer",
1072
+ "title": "Standard RTR",
1073
+ "enum": [
1074
+ 2
1075
+ ]
1076
+ },
1077
+ {
1078
+ "type": "integer",
1079
+ "title": "FD",
1080
+ "enum": [
1081
+ 1
1082
+ ]
1083
+ }
1084
+ ]
1085
+ },
1086
+ "brs": {
1087
+ "title": "Bit-Rate Switch",
1088
+ "description": "Determines if an FD message is transmitted using a switched bit-rate.",
1089
+ "type": "integer",
1090
+ "default": 0
1091
+ },
1092
+ "log": {
1093
+ "title": "Include in log",
1094
+ "description": "Determines if the transmitted message is included in the log file.",
1095
+ "type": "integer",
1096
+ "default": 0,
1097
+ "oneOf": [
1098
+ {
1099
+ "type": "integer",
1100
+ "title": "Disable",
1101
+ "enum": [
1102
+ 0
1103
+ ]
1104
+ },
1105
+ {
1106
+ "type": "integer",
1107
+ "title": "Enable",
1108
+ "enum": [
1109
+ 1
1110
+ ]
1111
+ }
1112
+ ]
1113
+ },
1114
+ "period": {
1115
+ "title": "Period (10 ms steps)",
1116
+ "description": "Time period of the message transmission. 0: single shot, >0: periodic. Unit is ms.",
1117
+ "type": "integer",
1118
+ "minimum": 0,
1119
+ "maximum": 4294967290,
1120
+ "multipleOf": 10
1121
+ },
1122
+ "delay": {
1123
+ "title": "Delay (10 ms steps)",
1124
+ "description": "Offset message within the period or delay a single shot message. If multiple messages are transmitted by the device, it is recommended to offset each separately to reduce peak load on bus. If period > 0, delay < period. If single-shot, delay can be up to max value. Unit is ms.",
1125
+ "type": "integer",
1126
+ "minimum": 0,
1127
+ "maximum": 4294967290,
1128
+ "multipleOf": 10
1129
+ },
1130
+ "id": {
1131
+ "title": "Message ID (hex)",
1132
+ "description": "ID of message to transmit in hex. Example: 1FF.",
1133
+ "type": "string"
1134
+ },
1135
+ "data": {
1136
+ "title": "Messages Data (hex)",
1137
+ "description": "Data bytes of message to transmit. RTR frames only use the number of bytes do determine the DLC. Example: 01020304 or 0102030405060708. ",
1138
+ "type": "string",
1139
+ "pattern": "^([a-fA-F0-9]{2}){0,64}$",
1140
+ "maxLength": 128
1141
+ }
1142
+ },
1143
+ "dependencies": {
1144
+ "id_format": {
1145
+ "oneOf": [
1146
+ {
1147
+ "properties": {
1148
+ "id_format": {
1149
+ "enum": [
1150
+ 0
1151
+ ]
1152
+ },
1153
+ "id": {
1154
+ "pattern": "^([0-7][a-fA-F0-9]{2}|[a-fA-F0-9]{1,2})$",
1155
+ "maxLength": 3
1156
+ }
1157
+ }
1158
+ },
1159
+ {
1160
+ "properties": {
1161
+ "id_format": {
1162
+ "enum": [
1163
+ 1
1164
+ ]
1165
+ },
1166
+ "id": {
1167
+ "pattern": "^([0-1][a-fA-F0-9]{7}|[a-fA-F0-9]{1,7})$",
1168
+ "maxLength": 8
1169
+ }
1170
+ }
1171
+ }
1172
+ ]
1173
+ },
1174
+ "frame_format": {
1175
+ "oneOf": [
1176
+ {
1177
+ "properties": {
1178
+ "frame_format": {
1179
+ "enum": [
1180
+ 0
1181
+ ]
1182
+ },
1183
+ "brs": {
1184
+ "oneOf": [
1185
+ {
1186
+ "type": "integer",
1187
+ "title": "Disable",
1188
+ "enum": [
1189
+ 0
1190
+ ]
1191
+ }
1192
+ ]
1193
+ },
1194
+ "data": {
1195
+ "pattern": "^([a-fA-F0-9]{2}){0,8}$",
1196
+ "maxLength": 16
1197
+ }
1198
+ }
1199
+ },
1200
+ {
1201
+ "properties": {
1202
+ "frame_format": {
1203
+ "enum": [
1204
+ 2
1205
+ ]
1206
+ },
1207
+ "brs": {
1208
+ "oneOf": [
1209
+ {
1210
+ "type": "integer",
1211
+ "title": "Disable",
1212
+ "enum": [
1213
+ 0
1214
+ ]
1215
+ }
1216
+ ]
1217
+ },
1218
+ "data": {
1219
+ "pattern": "^([a-fA-F0-9]{2}){0,8}$",
1220
+ "maxLength": 16
1221
+ }
1222
+ }
1223
+ },
1224
+ {
1225
+ "properties": {
1226
+ "frame_format": {
1227
+ "enum": [
1228
+ 1
1229
+ ]
1230
+ },
1231
+ "brs": {
1232
+ "oneOf": [
1233
+ {
1234
+ "type": "integer",
1235
+ "title": "Disable",
1236
+ "enum": [
1237
+ 0
1238
+ ]
1239
+ },
1240
+ {
1241
+ "type": "integer",
1242
+ "title": "Enable",
1243
+ "enum": [
1244
+ 1
1245
+ ]
1246
+ }
1247
+ ]
1248
+ },
1249
+ "data": {
1250
+ "pattern": "^([a-fA-F0-9]{2}){0,64}$",
1251
+ "maxLength": 128
1252
+ }
1253
+ }
1254
+ }
1255
+ ]
1256
+ }
1257
+ },
1258
+ "additionalProperties": false,
1259
+ "required": [
1260
+ "state",
1261
+ "id_format",
1262
+ "frame_format",
1263
+ "brs",
1264
+ "log",
1265
+ "period",
1266
+ "delay",
1267
+ "id",
1268
+ "data"
1269
+ ]
1270
+ }
1271
+ },
1272
+ "heartbeat": {
1273
+ "title": "Heartbeat",
1274
+ "description": "Periodic heartbeat (1 second period time). Requires a CAN-bus physical mode supporting transmissions.",
1275
+ "type": "object",
1276
+ "properties": {
1277
+ "state": {
1278
+ "title": "State",
1279
+ "description": "Enable to periodically transmit heartbeat signal. ",
1280
+ "type": "integer",
1281
+ "default": 0,
1282
+ "oneOf": [
1283
+ {
1284
+ "type": "integer",
1285
+ "title": "Disable",
1286
+ "enum": [
1287
+ 0
1288
+ ]
1289
+ },
1290
+ {
1291
+ "type": "integer",
1292
+ "title": "Enable",
1293
+ "enum": [
1294
+ 1
1295
+ ]
1296
+ }
1297
+ ]
1298
+ },
1299
+ "id_format": {
1300
+ "title": "ID Format",
1301
+ "description": "ID format of heartbeat message.",
1302
+ "type": "integer",
1303
+ "default": 1,
1304
+ "oneOf": [
1305
+ {
1306
+ "type": "integer",
1307
+ "title": "Standard (11-bit)",
1308
+ "enum": [
1309
+ 0
1310
+ ]
1311
+ },
1312
+ {
1313
+ "type": "integer",
1314
+ "title": "Extended (29-bit)",
1315
+ "enum": [
1316
+ 1
1317
+ ]
1318
+ }
1319
+ ]
1320
+ },
1321
+ "id": {
1322
+ "title": "ID (hex)",
1323
+ "description": "ID of heartbeat message in hex. Example: 1FF.",
1324
+ "type": "string",
1325
+ "default": "00435353"
1326
+ }
1327
+ },
1328
+ "dependencies": {
1329
+ "id_format": {
1330
+ "oneOf": [
1331
+ {
1332
+ "properties": {
1333
+ "id_format": {
1334
+ "enum": [
1335
+ 0
1336
+ ]
1337
+ },
1338
+ "id": {
1339
+ "pattern": "^([0-7][a-fA-F0-9]{2}|[a-fA-F0-9]{1,2})$",
1340
+ "maxLength": 3
1341
+ }
1342
+ }
1343
+ },
1344
+ {
1345
+ "properties": {
1346
+ "id_format": {
1347
+ "enum": [
1348
+ 1
1349
+ ]
1350
+ },
1351
+ "id": {
1352
+ "pattern": "^([0-1][a-fA-F0-9]{7}|[a-fA-F0-9]{1,7})$",
1353
+ "maxLength": 8
1354
+ }
1355
+ }
1356
+ }
1357
+ ]
1358
+ }
1359
+ },
1360
+ "required": [
1361
+ "state",
1362
+ "id_format",
1363
+ "id"
1364
+ ]
1365
+ },
1366
+ "control": {
1367
+ "$ref": "#/definitions/can_control"
1368
+ }
1369
+ },
1370
+ "additionalProperties": false,
1371
+ "required": [
1372
+ "general",
1373
+ "phy",
1374
+ "filter"
1375
+ ]
1376
+ },
1377
+ "lin": {
1378
+ "type": "object",
1379
+ "properties": {
1380
+ "phy": {
1381
+ "title": "Physical (LIN bus low-level)",
1382
+ "description": "LIN bus low-level configuration",
1383
+ "type": "object",
1384
+ "properties": {
1385
+ "mode": {
1386
+ "title": "Mode",
1387
+ "description": "Device LIN bus mode.",
1388
+ "type": "integer",
1389
+ "default": 0,
1390
+ "oneOf": [
1391
+ {
1392
+ "type": "integer",
1393
+ "title": "Subscriber",
1394
+ "enum": [
1395
+ 0
1396
+ ]
1397
+ },
1398
+ {
1399
+ "type": "integer",
1400
+ "title": "Publisher",
1401
+ "enum": [
1402
+ 1
1403
+ ]
1404
+ }
1405
+ ]
1406
+ },
1407
+ "bit_rate": {
1408
+ "title": "Bit-rate",
1409
+ "type": "integer",
1410
+ "default": 19200,
1411
+ "oneOf": [
1412
+ {
1413
+ "title": "2400",
1414
+ "enum": [
1415
+ 2400
1416
+ ]
1417
+ },
1418
+ {
1419
+ "title": "9600",
1420
+ "enum": [
1421
+ 9600
1422
+ ]
1423
+ },
1424
+ {
1425
+ "title": "10400",
1426
+ "enum": [
1427
+ 10400
1428
+ ]
1429
+ },
1430
+ {
1431
+ "title": "19200",
1432
+ "enum": [
1433
+ 19200
1434
+ ]
1435
+ }
1436
+ ]
1437
+ }
1438
+ },
1439
+ "additionalProperties": false,
1440
+ "required": [
1441
+ "mode",
1442
+ "bit_rate"
1443
+ ]
1444
+ },
1445
+ "frames": {
1446
+ "title": "LIN frames",
1447
+ "description": "Custom description of the frames on the network, if not using automatic length and/or checksum.",
1448
+ "type": "array",
1449
+ "maxItems": 64,
1450
+ "items": {
1451
+ "type": "object",
1452
+ "properties": {
1453
+ "name": {
1454
+ "title": "Name",
1455
+ "description": "Optional frame name.",
1456
+ "type": "string",
1457
+ "pattern": "^[ -~]*$",
1458
+ "maxLength": 16
1459
+ },
1460
+ "id": {
1461
+ "title": "Frame ID (hex)",
1462
+ "description": "ID of frame in hex. Example: 0F.",
1463
+ "type": "string",
1464
+ "pattern": "^([0-7][a-fA-F0-9]|[a-fA-F0-9])$",
1465
+ "maxLength": 2
1466
+ },
1467
+ "length": {
1468
+ "title": "Frame Length (decimal)",
1469
+ "description": "Length of the frame in decimal.",
1470
+ "type": "integer",
1471
+ "minimum": 1,
1472
+ "maximum": 8
1473
+ },
1474
+ "checksum_type": {
1475
+ "title": "Checksum Type",
1476
+ "description": "Type of the checksum used on the LIN frame.",
1477
+ "type": "integer",
1478
+ "default": 0,
1479
+ "oneOf": [
1480
+ {
1481
+ "title": "Enhanced",
1482
+ "enum": [
1483
+ 0
1484
+ ]
1485
+ },
1486
+ {
1487
+ "title": "Classic",
1488
+ "enum": [
1489
+ 1
1490
+ ]
1491
+ }
1492
+ ]
1493
+ }
1494
+ },
1495
+ "additionalProperties": false,
1496
+ "required": [
1497
+ "id",
1498
+ "length",
1499
+ "checksum_type"
1500
+ ]
1501
+ }
1502
+ },
1503
+ "transmit": {
1504
+ "title": "LIN transmit list",
1505
+ "description": "List of frames to transmit when in master mode.",
1506
+ "type": "array",
1507
+ "maxItems": 64,
1508
+ "uniqueItems": true,
1509
+ "items": {
1510
+ "type": "object",
1511
+ "properties": {
1512
+ "name": {
1513
+ "title": "Name",
1514
+ "description": "Optional transmit rule name.",
1515
+ "type": "string",
1516
+ "pattern": "^[ -~]*$",
1517
+ "maxLength": 16
1518
+ },
1519
+ "state": {
1520
+ "title": "State",
1521
+ "description": "Disabled transmit rules are ignored.",
1522
+ "type": "integer",
1523
+ "default": 1,
1524
+ "oneOf": [
1525
+ {
1526
+ "title": "Disable",
1527
+ "enum": [
1528
+ 0
1529
+ ]
1530
+ },
1531
+ {
1532
+ "title": "Enable",
1533
+ "enum": [
1534
+ 1
1535
+ ]
1536
+ }
1537
+ ]
1538
+ },
1539
+ "id": {
1540
+ "title": "Frame ID (hex)",
1541
+ "type": "string",
1542
+ "pattern": "^([0-7][a-fA-F0-9]|[a-fA-F0-9])$",
1543
+ "maxLength": 2
1544
+ },
1545
+ "data": {
1546
+ "title": "Data (hex)",
1547
+ "type": "string",
1548
+ "pattern": "^([a-fA-F0-9]{2})*$",
1549
+ "maxLength": 16
1550
+ }
1551
+ },
1552
+ "additionalProperties": false,
1553
+ "patternProperties": {
1554
+ "period": {},
1555
+ "delay": {}
1556
+ },
1557
+ "required": [
1558
+ "state",
1559
+ "id"
1560
+ ]
1561
+ }
1562
+ }
1563
+ },
1564
+ "dependencies": {
1565
+ "phy": {
1566
+ "oneOf": [
1567
+ {
1568
+ "properties": {
1569
+ "phy": {
1570
+ "properties": {
1571
+ "mode": {
1572
+ "enum": [
1573
+ 0
1574
+ ]
1575
+ }
1576
+ }
1577
+ },
1578
+ "transmit": {
1579
+ "items": {
1580
+ "properties": {
1581
+ "id": {
1582
+ "description": "Unique ID of frame in hex (an ID may only occur once in the list). Example: 0F."
1583
+ },
1584
+ "data": {
1585
+ "description": "Data to transmit on request",
1586
+ "minLength": 2
1587
+ }
1588
+ },
1589
+ "required": [
1590
+ "data"
1591
+ ]
1592
+ }
1593
+ }
1594
+ }
1595
+ },
1596
+ {
1597
+ "properties": {
1598
+ "phy": {
1599
+ "properties": {
1600
+ "mode": {
1601
+ "enum": [
1602
+ 1
1603
+ ]
1604
+ }
1605
+ }
1606
+ },
1607
+ "transmit": {
1608
+ "items": {
1609
+ "properties": {
1610
+ "id": {
1611
+ "description": "ID of frame in hex. Example: 0F."
1612
+ },
1613
+ "data": {
1614
+ "description": "If more than zero data bytes, then the transmit is a PUBLISH frame. If zero data bytes, then the transmit is a SUBSCRIBE frame expecting a subscriber node to provide data. ",
1615
+ "minLength": 0
1616
+ },
1617
+ "period": {
1618
+ "title": "Period (10 ms steps)",
1619
+ "description": "Time period of the message transmission. 0: single shot, >0: periodic. Unit is ms.",
1620
+ "type": "integer",
1621
+ "minimum": 0,
1622
+ "maximum": 4294967290,
1623
+ "multipleOf": 10
1624
+ },
1625
+ "delay": {
1626
+ "title": "Delay (10 ms steps)",
1627
+ "description": "Offset message within the period or delay a single shot message. If multiple messages are transmitted by the device, it is recommended to offset each separately to reduce peak load on bus. If period > 0, delay < period. If single-shot, delay can be up to max value. Unit is ms.",
1628
+ "type": "integer",
1629
+ "minimum": 0,
1630
+ "maximum": 4294967290,
1631
+ "multipleOf": 10
1632
+ }
1633
+ },
1634
+ "required": [
1635
+ "period",
1636
+ "delay"
1637
+ ]
1638
+ }
1639
+ }
1640
+ }
1641
+ }
1642
+ ]
1643
+ }
1644
+ },
1645
+ "additionalProperties": false,
1646
+ "required": [
1647
+ "phy"
1648
+ ]
1649
+ },
1650
+ "rtc_tolerance": {
1651
+ "title": "Time synchronization tolerance",
1652
+ "description": "If the time difference exceeds the tolerance, the internal time is abruptly updated. The unit is seconds.",
1653
+ "type": "integer",
1654
+ "minimum": 1,
1655
+ "maximum": 3600,
1656
+ "default": 30
1657
+ },
1658
+ "gnss_geofence": {
1659
+ "type": "object",
1660
+ "properties": {
1661
+ "lat": {
1662
+ "title": "Latitude of the circle center (-90 to 90 deg)",
1663
+ "type": "number",
1664
+ "default": 0,
1665
+ "minimum": -90,
1666
+ "maximum": 90
1667
+ },
1668
+ "lon": {
1669
+ "title": "Longitude of the circle center (-180 to 180 deg)",
1670
+ "type": "number",
1671
+ "default": 0,
1672
+ "minimum": -180,
1673
+ "maximum": 180
1674
+ },
1675
+ "radius": {
1676
+ "title": "Radius (m)",
1677
+ "description": "Radius of the circle (m)",
1678
+ "type": "integer",
1679
+ "default": 0,
1680
+ "minimum": 0
1681
+ }
1682
+ },
1683
+ "additionalProperties": false,
1684
+ "required": [
1685
+ "lat",
1686
+ "lon",
1687
+ "radius"
1688
+ ]
1689
+ },
1690
+ "sensor_fusion": {
1691
+ "title": "Sensor fusion",
1692
+ "description": "Combines GNSS and IMU data for improved navigation performance particularly in places with poor GNSS signal conditions. Uses an automotive sensor fusion model. Requires an accurate IMU alignment configuration.",
1693
+ "type": "integer",
1694
+ "default": 0,
1695
+ "oneOf": [
1696
+ {
1697
+ "type": "integer",
1698
+ "title": "Disable",
1699
+ "enum": [
1700
+ 0
1701
+ ]
1702
+ },
1703
+ {
1704
+ "type": "integer",
1705
+ "title": "Enable",
1706
+ "enum": [
1707
+ 1
1708
+ ]
1709
+ }
1710
+ ]
1711
+ }
1712
+ },
1713
+ "properties": {
1714
+ "general": {
1715
+ "title": "General",
1716
+ "type": "object",
1717
+ "properties": {
1718
+ "device": {
1719
+ "title": "Device",
1720
+ "type": "object",
1721
+ "properties": {
1722
+ "meta": {
1723
+ "title": "Meta data",
1724
+ "description": "Optional meta data string. Displayed in device file and log file headers. Example: Site1; Truck4; ConfigRev12",
1725
+ "type": "string",
1726
+ "minLength": 0,
1727
+ "maxLength": 30,
1728
+ "pattern": "^[a-zA-Z0-9; ]*$"
1729
+ }
1730
+ },
1731
+ "additionalProperties": false
1732
+ },
1733
+ "security": {
1734
+ "title": "Security",
1735
+ "type": "object",
1736
+ "properties": {
1737
+ "kpub": {
1738
+ "title": "Server public key",
1739
+ "description": "Server / user ECC public key in base64 format. Shall match the encryption used for all protected fields.",
1740
+ "type": "string",
1741
+ "minLength": 0,
1742
+ "maxLength": 100,
1743
+ "pattern": "^[a-zA-Z0-9+/=]*$"
1744
+ }
1745
+ },
1746
+ "additionalProperties": false
1747
+ },
1748
+ "debug": {
1749
+ "title": "Debug",
1750
+ "description": "Debug functionality for use during installation and troubleshooting.",
1751
+ "type": "object",
1752
+ "properties": {
1753
+ "syslog": {
1754
+ "title": "System log",
1755
+ "description": "System events logged to the SD-card. The log levels are listed in order of increasing amount of information logged. Should only be enabled if needed during installation or troubleshooting.",
1756
+ "type": "integer",
1757
+ "default": 1,
1758
+ "oneOf": [
1759
+ {
1760
+ "type": "integer",
1761
+ "title": "Disable (0)",
1762
+ "enum": [
1763
+ 0
1764
+ ]
1765
+ },
1766
+ {
1767
+ "type": "integer",
1768
+ "title": "Error (1)",
1769
+ "enum": [
1770
+ 1
1771
+ ]
1772
+ },
1773
+ {
1774
+ "type": "integer",
1775
+ "title": "Error + Warning (2)",
1776
+ "enum": [
1777
+ 2
1778
+ ]
1779
+ },
1780
+ {
1781
+ "type": "integer",
1782
+ "title": "Error + Warning + Info (3)",
1783
+ "enum": [
1784
+ 3
1785
+ ]
1786
+ }
1787
+ ]
1788
+ },
1789
+ "restart_timer": {
1790
+ "title": "Restart timer",
1791
+ "description": "Number of runtime hours after which the device automatically restarts (set 0 to disable). Example: Set to 24 to restart after one day of runtime.",
1792
+ "type": "integer",
1793
+ "default": 0,
1794
+ "minimum": 0,
1795
+ "maximum": 168
1796
+ }
1797
+ },
1798
+ "additionalProperties": false
1799
+ }
1800
+ },
1801
+ "additionalProperties": false,
1802
+ "required": [
1803
+ "device",
1804
+ "security",
1805
+ "debug"
1806
+ ]
1807
+ },
1808
+ "log": {
1809
+ "title": "Logging",
1810
+ "type": "object",
1811
+ "properties": {
1812
+ "file": {
1813
+ "title": "File",
1814
+ "type": "object",
1815
+ "properties": {
1816
+ "split_size": {
1817
+ "title": "File split size (1 to 512 MB)",
1818
+ "description": "Log file split size in MB. When the file split size is reached a new file is created and the logging continues. Closed log files can be pushed to a server if network is available. Small split sizes may reduce performance.",
1819
+ "type": "integer",
1820
+ "default": 50,
1821
+ "minimum": 1,
1822
+ "maximum": 512
1823
+ },
1824
+ "split_time_period": {
1825
+ "title": "File split time period (0 to 86400 seconds, 0 = disable)",
1826
+ "description": "Log file split time period in seconds relative to midnight (00:00:00). When a split time is reached a new file is created and the logging continues. Closed log files can be pushed to a server if network is available. Small split time periods may reduce performance.",
1827
+ "type": "integer",
1828
+ "default": 0,
1829
+ "minimum": 0,
1830
+ "maximum": 86400,
1831
+ "multipleOf": 10
1832
+ },
1833
+ "split_time_offset": {
1834
+ "title": "File split time offset (0 to 86400 seconds)",
1835
+ "description": "Log file split time offset in seconds. This value offsets the split_time_period relative to midnight (00:00:00). The set value shall be less than the split_time_period value.",
1836
+ "type": "integer",
1837
+ "default": 0,
1838
+ "minimum": 0,
1839
+ "maximum": 86400,
1840
+ "multipleOf": 10
1841
+ },
1842
+ "cyclic": {
1843
+ "title": "Cyclic logging",
1844
+ "description": "With cycling logging mode enabled the oldest log file is deleted when the memory card becomes full, allowing the logging to continue.",
1845
+ "type": "integer",
1846
+ "default": 1,
1847
+ "oneOf": [
1848
+ {
1849
+ "type": "integer",
1850
+ "title": "Disable",
1851
+ "enum": [
1852
+ 0
1853
+ ]
1854
+ },
1855
+ {
1856
+ "type": "integer",
1857
+ "title": "Enable",
1858
+ "enum": [
1859
+ 1
1860
+ ]
1861
+ }
1862
+ ]
1863
+ }
1864
+ },
1865
+ "additionalProperties": false,
1866
+ "required": [
1867
+ "split_size",
1868
+ "split_time_period",
1869
+ "split_time_offset",
1870
+ "cyclic"
1871
+ ]
1872
+ },
1873
+ "compression": {
1874
+ "title": "Compression",
1875
+ "type": "object",
1876
+ "properties": {
1877
+ "level": {
1878
+ "title": "Level",
1879
+ "description": "Window size used during optional compression. Larger window sizes yield potentially better compression rates, but may reduce logging performance. Compressed log files need to be decompressed prior to processing.",
1880
+ "type": "integer",
1881
+ "default": 0,
1882
+ "oneOf": [
1883
+ {
1884
+ "type": "integer",
1885
+ "title": "Disable",
1886
+ "enum": [
1887
+ 0
1888
+ ]
1889
+ },
1890
+ {
1891
+ "type": "integer",
1892
+ "title": "256 bytes window",
1893
+ "enum": [
1894
+ 256
1895
+ ]
1896
+ },
1897
+ {
1898
+ "type": "integer",
1899
+ "title": "512 bytes window",
1900
+ "enum": [
1901
+ 512
1902
+ ]
1903
+ },
1904
+ {
1905
+ "type": "integer",
1906
+ "title": "1024 bytes window",
1907
+ "enum": [
1908
+ 1024
1909
+ ]
1910
+ }
1911
+ ]
1912
+ }
1913
+ }
1914
+ },
1915
+ "encryption": {
1916
+ "title": "Encryption",
1917
+ "type": "object",
1918
+ "properties": {
1919
+ "state": {
1920
+ "title": "State",
1921
+ "description": "Optional log file encryption. Encrypted log files need to be decrypted prior to processing. Decryption requires your encryption password in plain form - if this is lost, the encrypted data cannot be recovered.",
1922
+ "type": "integer",
1923
+ "default": 0,
1924
+ "oneOf": [
1925
+ {
1926
+ "type": "integer",
1927
+ "title": "Disable",
1928
+ "enum": [
1929
+ 0
1930
+ ]
1931
+ },
1932
+ {
1933
+ "type": "integer",
1934
+ "title": "Enable",
1935
+ "enum": [
1936
+ 1
1937
+ ]
1938
+ }
1939
+ ]
1940
+ }
1941
+ },
1942
+ "dependencies": {
1943
+ "state": {
1944
+ "oneOf": [
1945
+ {
1946
+ "properties": {
1947
+ "state": {
1948
+ "enum": [
1949
+ 0
1950
+ ]
1951
+ }
1952
+ }
1953
+ },
1954
+ {
1955
+ "properties": {
1956
+ "state": {
1957
+ "enum": [
1958
+ 1
1959
+ ]
1960
+ },
1961
+ "keyformat": {
1962
+ "title": "Key format",
1963
+ "description": "The format of the encryption password used for encrypting logged data on the device.",
1964
+ "type": "integer",
1965
+ "default": 0,
1966
+ "oneOf": [
1967
+ {
1968
+ "type": "integer",
1969
+ "title": "Plain",
1970
+ "enum": [
1971
+ 0
1972
+ ]
1973
+ },
1974
+ {
1975
+ "type": "integer",
1976
+ "title": "Encrypted",
1977
+ "enum": [
1978
+ 1
1979
+ ]
1980
+ }
1981
+ ]
1982
+ },
1983
+ "pwd": {
1984
+ "title": "Encryption password",
1985
+ "type": "string",
1986
+ "default": ""
1987
+ }
1988
+ },
1989
+ "dependencies": {
1990
+ "keyformat": {
1991
+ "oneOf": [
1992
+ {
1993
+ "properties": {
1994
+ "keyformat": {
1995
+ "enum": [
1996
+ 0
1997
+ ]
1998
+ },
1999
+ "pwd": {
2000
+ "description": "Encryption password in plain form (min 1, max 64). Example: 2e9asdKJazCatsssdS323@ABCh22. IMPORTANT: Ensure that you securely store the plain form encryption password for decryption purposes.",
2001
+ "pattern": "^[ -~]*$",
2002
+ "minLength": 1,
2003
+ "maxLength": 64
2004
+ }
2005
+ }
2006
+ },
2007
+ {
2008
+ "properties": {
2009
+ "keyformat": {
2010
+ "enum": [
2011
+ 1
2012
+ ]
2013
+ },
2014
+ "pwd": {
2015
+ "description": "Encryption password in encrypted form (min 24, max 108). Example: B1DlMrNh22tq/kNerK/T+eSyCWSJqiqyUoovQ7C6gqRaIng6F+E=. IMPORTANT: Ensure that you encrypt the encryption password and that you include the server public key. Further, ensure that you securely store the plain form encryption password for decryption purposes.",
2016
+ "pattern": "^[a-zA-Z0-9+/=]*$",
2017
+ "minLength": 24,
2018
+ "maxLength": 108
2019
+ }
2020
+ }
2021
+ }
2022
+ ]
2023
+ }
2024
+ },
2025
+ "required": [
2026
+ "keyformat",
2027
+ "pwd"
2028
+ ]
2029
+ }
2030
+ ]
2031
+ }
2032
+ }
2033
+ },
2034
+ "error_frames": {
2035
+ "title": "Error Frames",
2036
+ "type": "object",
2037
+ "properties": {
2038
+ "state": {
2039
+ "title": "State",
2040
+ "description": "Specify whether to record error frames. Enabling this can negatively impact performance, as a potentially large number of additional frames may be recorded.",
2041
+ "type": "integer",
2042
+ "default": 0,
2043
+ "oneOf": [
2044
+ {
2045
+ "type": "integer",
2046
+ "title": "Disable",
2047
+ "enum": [
2048
+ 0
2049
+ ]
2050
+ },
2051
+ {
2052
+ "type": "integer",
2053
+ "title": "Enable",
2054
+ "enum": [
2055
+ 1
2056
+ ]
2057
+ }
2058
+ ]
2059
+ }
2060
+ },
2061
+ "required": [
2062
+ "state"
2063
+ ]
2064
+ }
2065
+ },
2066
+ "additionalProperties": false,
2067
+ "patternProperties": {
2068
+ "keyformat": {},
2069
+ "pwd": {}
2070
+ },
2071
+ "required": [
2072
+ "file",
2073
+ "compression",
2074
+ "encryption",
2075
+ "error_frames"
2076
+ ]
2077
+ },
2078
+ "rtc": {
2079
+ "title": "Real-Time Clock (RTC)",
2080
+ "type": "object",
2081
+ "properties": {
2082
+ "sync": {
2083
+ "title": "Time synchronization method",
2084
+ "description": "Internal real-time-clock synchronization method. The real-time-clock is maintained when the device is off.",
2085
+ "type": "integer",
2086
+ "default": 0,
2087
+ "oneOf": [
2088
+ {
2089
+ "title": "Retain current time",
2090
+ "description": "The current internal time is not changed.",
2091
+ "type": "integer",
2092
+ "enum": [
2093
+ 0
2094
+ ]
2095
+ },
2096
+ {
2097
+ "title": "Manual update",
2098
+ "description": "The internal time is updated with the manually set UTC time when the device powers on. The manual time is set using the manual_date_time field",
2099
+ "type": "integer",
2100
+ "enum": [
2101
+ 1
2102
+ ]
2103
+ },
2104
+ {
2105
+ "title": "CAN-bus",
2106
+ "description": "The internal time synchronized to the time provided by the payload of a CAN-bus message",
2107
+ "type": "integer",
2108
+ "enum": [
2109
+ 3
2110
+ ]
2111
+ }
2112
+ ]
2113
+ },
2114
+ "timezone": {
2115
+ "title": "Time zone (UTC-12 to UTC+14)",
2116
+ "description": "Adjustment in full hours to the UTC time. Includes daylight savings time if applicable.",
2117
+ "type": "integer",
2118
+ "default": 0,
2119
+ "minimum": -12,
2120
+ "maximum": 14
2121
+ },
2122
+ "adjustment": {
2123
+ "title": "Adjustment (-129600 to 129600 seconds)",
2124
+ "description": "Adjustment in seconds to the UTC time. Can be used for fine tuning the internal time. ",
2125
+ "type": "integer",
2126
+ "default": 0,
2127
+ "minimum": -129600,
2128
+ "maximum": 129600
2129
+ }
2130
+ },
2131
+ "dependencies": {
2132
+ "sync": {
2133
+ "oneOf": [
2134
+ {
2135
+ "properties": {
2136
+ "sync": {
2137
+ "enum": [
2138
+ 0
2139
+ ]
2140
+ }
2141
+ }
2142
+ },
2143
+ {
2144
+ "properties": {
2145
+ "sync": {
2146
+ "enum": [
2147
+ 1
2148
+ ]
2149
+ },
2150
+ "manual_date_time": {
2151
+ "title": "Time (UTC)",
2152
+ "description": "Manually set UTC date and time value.",
2153
+ "type": "string",
2154
+ "format": "date-time"
2155
+ }
2156
+ },
2157
+ "required": [
2158
+ "manual_date_time"
2159
+ ]
2160
+ },
2161
+ {
2162
+ "properties": {
2163
+ "sync": {
2164
+ "enum": [
2165
+ 3
2166
+ ]
2167
+ },
2168
+ "tolerance": {
2169
+ "$ref": "#/definitions/rtc_tolerance"
2170
+ },
2171
+ "message": {
2172
+ "title": "Message",
2173
+ "$ref": "#/definitions/can_message"
2174
+ },
2175
+ "valid_signal": {
2176
+ "title": "Time valid signal",
2177
+ "$ref": "#/definitions/can_signal"
2178
+ },
2179
+ "time_signal": {
2180
+ "title": "Time value signal",
2181
+ "$ref": "#/definitions/can_signal"
2182
+ }
2183
+ },
2184
+ "required": [
2185
+ "message",
2186
+ "valid_signal",
2187
+ "time_signal"
2188
+ ]
2189
+ }
2190
+ ]
2191
+ }
2192
+ },
2193
+ "additionalProperties": false,
2194
+ "patternProperties": {
2195
+ "manual_date_time": {},
2196
+ "message": {},
2197
+ "valid_signal": {},
2198
+ "time_signal": {},
2199
+ "tolerance": {}
2200
+ },
2201
+ "required": [
2202
+ "sync",
2203
+ "timezone",
2204
+ "adjustment"
2205
+ ]
2206
+ },
2207
+ "secondaryport": {
2208
+ "title": "Secondary Port",
2209
+ "description": "Control of power-out (5V) on Channel 2 (CH2) connector.",
2210
+ "type": "object",
2211
+ "properties": {
2212
+ "power_schedule": {
2213
+ "title": "Power schedule",
2214
+ "description": "The daily power schedule is defined by a number of power-on from/to intervals. Define no power-on intervals to keep always off. Define one interval with from/to both set to 00:00 to keep always on. Time format is HH:MM (1 minute resolution)",
2215
+ "type": "array",
2216
+ "default": [],
2217
+ "maxItems": 5,
2218
+ "items": {
2219
+ "type": "object",
2220
+ "properties": {
2221
+ "from": {
2222
+ "title": "From",
2223
+ "description": "Power-on FROM time in format HH:MM. Shall be before power-on TO time. E.g. at midnight 00:00",
2224
+ "type": "string",
2225
+ "default": "00:00",
2226
+ "pattern": "^([0-1][0-9]|2[0-4]):([0-5][0-9])$"
2227
+ },
2228
+ "to": {
2229
+ "title": "To",
2230
+ "description": "Power-on TO time in format HH:MM. Shall be after power-on FROM time. E.g. at midday 12:00.",
2231
+ "type": "string",
2232
+ "default": "00:00",
2233
+ "pattern": "^([0-1][0-9]|2[0-4]):([0-5][0-9])$"
2234
+ }
2235
+ },
2236
+ "additionalProperties": false,
2237
+ "required": [
2238
+ "from",
2239
+ "to"
2240
+ ]
2241
+ }
2242
+ }
2243
+ },
2244
+ "additionalProperties": false,
2245
+ "required": [
2246
+ "power_schedule"
2247
+ ]
2248
+ },
2249
+ "can_internal": {
2250
+ "title": "CAN Channel internal",
2251
+ "description": "CAN Channel internal is a virtual channel used for signals generated by the device itself.",
2252
+ "type": "object",
2253
+ "properties": {
2254
+ "general": {
2255
+ "title": "General",
2256
+ "$ref": "#/definitions/can_general"
2257
+ },
2258
+ "filter": {
2259
+ "title": "Receive filters",
2260
+ "type": "object",
2261
+ "properties": {
2262
+ "id": {
2263
+ "description": "Filters are checked sequentially, execution stops with the first matching filter element. Max 20 filters in total.",
2264
+ "maxItems": 20,
2265
+ "$ref": "#/definitions/can_filter_id"
2266
+ }
2267
+ },
2268
+ "required": [
2269
+ "id"
2270
+ ]
2271
+ },
2272
+ "control": {
2273
+ "$ref": "#/definitions/can_control"
2274
+ }
2275
+ },
2276
+ "additionalProperties": false,
2277
+ "required": [
2278
+ "filter"
2279
+ ]
2280
+ },
2281
+ "can_1": {
2282
+ "title": "CAN Channel 1 (physical)",
2283
+ "description": "CAN Channel 1 is an external physical channel.",
2284
+ "$ref": "#/definitions/can"
2285
+ },
2286
+ "can_2": {
2287
+ "title": "CAN Channel 2 (physical)",
2288
+ "description": "CAN Channel 2 is an external physical channel.",
2289
+ "$ref": "#/definitions/can"
2290
+ },
2291
+ "lin_1": {
2292
+ "title": "LIN Channel 1",
2293
+ "$ref": "#/definitions/lin"
2294
+ },
2295
+ "lin_2": {
2296
+ "title": "LIN Channel 2",
2297
+ "$ref": "#/definitions/lin"
2298
+ },
2299
+ "gnss": {
2300
+ "title": "Global Navigation Satellite System",
2301
+ "type": "object",
2302
+ "properties": {
2303
+ "system": {
2304
+ "title": "Global Navigation Satellite System",
2305
+ "description": "Select the GNSS system(s) to use",
2306
+ "type": "integer",
2307
+ "default": 5,
2308
+ "oneOf": [
2309
+ {
2310
+ "type": "integer",
2311
+ "title": "GPS",
2312
+ "enum": [
2313
+ 0
2314
+ ]
2315
+ },
2316
+ {
2317
+ "type": "integer",
2318
+ "title": "Galileo",
2319
+ "enum": [
2320
+ 1
2321
+ ]
2322
+ },
2323
+ {
2324
+ "type": "integer",
2325
+ "title": "GLONASS",
2326
+ "enum": [
2327
+ 2
2328
+ ]
2329
+ },
2330
+ {
2331
+ "type": "integer",
2332
+ "title": "BeiDou",
2333
+ "enum": [
2334
+ 3
2335
+ ]
2336
+ },
2337
+ {
2338
+ "type": "integer",
2339
+ "title": "GPS + Galileo",
2340
+ "enum": [
2341
+ 4
2342
+ ]
2343
+ },
2344
+ {
2345
+ "type": "integer",
2346
+ "title": "GPS + GLONASS",
2347
+ "enum": [
2348
+ 5
2349
+ ]
2350
+ },
2351
+ {
2352
+ "type": "integer",
2353
+ "title": "GPS + BeiDou",
2354
+ "enum": [
2355
+ 6
2356
+ ]
2357
+ },
2358
+ {
2359
+ "type": "integer",
2360
+ "title": "Galileo + GLONASS",
2361
+ "enum": [
2362
+ 7
2363
+ ]
2364
+ },
2365
+ {
2366
+ "type": "integer",
2367
+ "title": "Galileo + BeiDou",
2368
+ "enum": [
2369
+ 8
2370
+ ]
2371
+ },
2372
+ {
2373
+ "type": "integer",
2374
+ "title": "GLONASS + BeiDou",
2375
+ "enum": [
2376
+ 9
2377
+ ]
2378
+ },
2379
+ {
2380
+ "type": "integer",
2381
+ "title": "GPS + Galileo + GLONASS",
2382
+ "enum": [
2383
+ 10
2384
+ ]
2385
+ },
2386
+ {
2387
+ "type": "integer",
2388
+ "title": "GPS + Galileo + BeiDou",
2389
+ "enum": [
2390
+ 11
2391
+ ]
2392
+ }
2393
+ ]
2394
+ },
2395
+ "invalid_signals": {
2396
+ "title": "Invalid signals",
2397
+ "description": "Select if the device should discard invalid signals. E.g. the position can be invalid when no fix is obtained.",
2398
+ "type": "integer",
2399
+ "default": 0,
2400
+ "oneOf": [
2401
+ {
2402
+ "type": "integer",
2403
+ "title": "Discard invalid signals",
2404
+ "enum": [
2405
+ 0
2406
+ ]
2407
+ },
2408
+ {
2409
+ "type": "integer",
2410
+ "title": "Include invalid signals",
2411
+ "enum": [
2412
+ 1
2413
+ ]
2414
+ }
2415
+ ]
2416
+ },
2417
+ "alignment": {
2418
+ "title": "IMU-mount alignment",
2419
+ "description": "IMU-mount alignment configuration. The alignment angles should be set manually. The device can in some cases help estimate the angles. For more information see the user manual.",
2420
+ "type": "object",
2421
+ "properties": {
2422
+ "method": {
2423
+ "title": "Method",
2424
+ "type": "integer",
2425
+ "default": 0,
2426
+ "oneOf": [
2427
+ {
2428
+ "type": "integer",
2429
+ "title": "Manual",
2430
+ "enum": [
2431
+ 0
2432
+ ]
2433
+ },
2434
+ {
2435
+ "type": "integer",
2436
+ "title": "Estimate",
2437
+ "enum": [
2438
+ 1
2439
+ ]
2440
+ }
2441
+ ]
2442
+ }
2443
+ },
2444
+ "dependencies": {
2445
+ "method": {
2446
+ "oneOf": [
2447
+ {
2448
+ "properties": {
2449
+ "method": {
2450
+ "enum": [
2451
+ 0
2452
+ ]
2453
+ },
2454
+ "z": {
2455
+ "title": "Z angle (0 to 360)",
2456
+ "type": "integer",
2457
+ "default": 0,
2458
+ "minimum": 0,
2459
+ "maximum": 360
2460
+ },
2461
+ "y": {
2462
+ "title": "Y angle (-90 to 90)",
2463
+ "type": "integer",
2464
+ "default": 0,
2465
+ "minimum": -90,
2466
+ "maximum": 90
2467
+ },
2468
+ "x": {
2469
+ "title": "X angle (-180 to 180)",
2470
+ "type": "integer",
2471
+ "default": 0,
2472
+ "minimum": -180,
2473
+ "maximum": 180
2474
+ }
2475
+ }
2476
+ },
2477
+ {
2478
+ "properties": {
2479
+ "method": {
2480
+ "enum": [
2481
+ 1
2482
+ ]
2483
+ }
2484
+ }
2485
+ }
2486
+ ]
2487
+ }
2488
+ },
2489
+ "additionalProperties": false,
2490
+ "required": [
2491
+ "method"
2492
+ ],
2493
+ "patternProperties": {
2494
+ "z": {},
2495
+ "y": {},
2496
+ "x": {}
2497
+ }
2498
+ },
2499
+ "geofence": {
2500
+ "title": "Geofence",
2501
+ "description": "Geofencing configuration. Define up to four circular geofence areas",
2502
+ "type": "array",
2503
+ "maxItems": 4,
2504
+ "items": {
2505
+ "$ref": "#/definitions/gnss_geofence"
2506
+ }
2507
+ },
2508
+ "dyn_model": {
2509
+ "title": "Dynamic platform model",
2510
+ "description": "Select the dynamic platform of the application in which the device is installed for an improved output result",
2511
+ "type": "integer",
2512
+ "default": 0,
2513
+ "oneOf": [
2514
+ {
2515
+ "type": "integer",
2516
+ "title": "Portable (default)",
2517
+ "enum": [
2518
+ 0
2519
+ ]
2520
+ },
2521
+ {
2522
+ "type": "integer",
2523
+ "title": "Stationary",
2524
+ "enum": [
2525
+ 2
2526
+ ]
2527
+ },
2528
+ {
2529
+ "type": "integer",
2530
+ "title": "Automotive",
2531
+ "enum": [
2532
+ 4
2533
+ ]
2534
+ },
2535
+ {
2536
+ "type": "integer",
2537
+ "title": "Sea",
2538
+ "enum": [
2539
+ 5
2540
+ ]
2541
+ },
2542
+ {
2543
+ "type": "integer",
2544
+ "title": "Airborne",
2545
+ "enum": [
2546
+ 6
2547
+ ]
2548
+ },
2549
+ {
2550
+ "type": "integer",
2551
+ "title": "Motorbike",
2552
+ "enum": [
2553
+ 10
2554
+ ]
2555
+ }
2556
+ ]
2557
+ }
2558
+ },
2559
+ "dependencies": {
2560
+ "dyn_model": {
2561
+ "oneOf": [
2562
+ {
2563
+ "properties": {
2564
+ "dyn_model": {
2565
+ "enum": [
2566
+ 0
2567
+ ]
2568
+ }
2569
+ }
2570
+ },
2571
+ {
2572
+ "properties": {
2573
+ "dyn_model": {
2574
+ "enum": [
2575
+ 2
2576
+ ]
2577
+ }
2578
+ }
2579
+ },
2580
+ {
2581
+ "properties": {
2582
+ "dyn_model": {
2583
+ "enum": [
2584
+ 4
2585
+ ]
2586
+ },
2587
+ "sensor_fusion": {
2588
+ "$ref": "#/definitions/sensor_fusion"
2589
+ }
2590
+ }
2591
+ },
2592
+ {
2593
+ "properties": {
2594
+ "dyn_model": {
2595
+ "enum": [
2596
+ 5
2597
+ ]
2598
+ }
2599
+ }
2600
+ },
2601
+ {
2602
+ "properties": {
2603
+ "dyn_model": {
2604
+ "enum": [
2605
+ 6
2606
+ ]
2607
+ }
2608
+ }
2609
+ },
2610
+ {
2611
+ "properties": {
2612
+ "dyn_model": {
2613
+ "enum": [
2614
+ 10
2615
+ ]
2616
+ },
2617
+ "sensor_fusion": {
2618
+ "$ref": "#/definitions/sensor_fusion"
2619
+ }
2620
+ }
2621
+ }
2622
+ ]
2623
+ }
2624
+ },
2625
+ "patternProperties": {
2626
+ "sensor_fusion": {}
2627
+ },
2628
+ "additionalProperties": false,
2629
+ "required": [
2630
+ "system",
2631
+ "alignment",
2632
+ "dyn_model",
2633
+ "geofence"
2634
+ ]
2635
+ }
2636
+ },
2637
+ "additionalProperties": false,
2638
+ "required": [
2639
+ "general",
2640
+ "log",
2641
+ "rtc",
2642
+ "secondaryport",
2643
+ "can_internal",
2644
+ "can_1",
2645
+ "can_2",
2646
+ "lin_1",
2647
+ "lin_2",
2648
+ "gnss"
2649
+ ]
2650
+ }