config-editor-base 1.7.6 → 1.7.8

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.
@@ -1,14 +1,43 @@
1
1
  {
2
2
  "type": "object",
3
3
  "definitions": {
4
- "control_signal": {
4
+ "can_message": {
5
5
  "type": "object",
6
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
+ },
7
36
  "id_format": {
8
- "title": "ID Format",
9
- "description": "ID format of the control message.",
37
+ "title": "ID format",
38
+ "description": "ID format of message.",
10
39
  "type": "integer",
11
- "default": 1,
40
+ "default": 0,
12
41
  "oneOf": [
13
42
  {
14
43
  "type": "integer",
@@ -27,40 +56,16 @@
27
56
  ]
28
57
  },
29
58
  "id": {
30
- "title": "Message ID (hex)",
31
- "description": "ID of the control message in hex. Example: 00435354.",
32
- "default": "00435354",
33
- "type": "string"
34
- },
35
- "id_mask": {
36
- "title": "Message ID mask (hex)",
37
- "description": "ID mask of the control message in hex. Example: 1FFFFFFF.",
59
+ "title": "ID (hex)",
60
+ "description": "ID of message in hex. Example: 1FF.",
38
61
  "type": "string",
39
- "default": "1FFFFFFF"
62
+ "default": "0"
40
63
  },
41
- "data_mask": {
42
- "title": "Data mask (hex)",
43
- "description": "Data trigger mask (byte 0 to the left). Shall match the length of the control signal message.",
44
- "type": "string",
45
- "pattern": "^([a-fA-F0-9]{2}){0,8}$",
46
- "maxLength": 16,
47
- "default": "FFFFFFFFFFFFFFFF"
48
- },
49
- "data_high": {
50
- "title": "Data trigger high (hex)",
51
- "description": "Data trigger high range (byte 0 to the left)",
52
- "type": "string",
53
- "pattern": "^([a-fA-F0-9]{2}){0,8}$",
54
- "maxLength": 16,
55
- "default": "0100000000000000"
56
- },
57
- "data_low": {
58
- "title": "Data trigger low (hex)",
59
- "description": "Data trigger low range (byte 0 to the left)",
64
+ "id_mask": {
65
+ "title": "ID mask (hex)",
66
+ "description": "ID mask in hex. Example: 7FF.",
60
67
  "type": "string",
61
- "pattern": "^([a-fA-F0-9]{2}){0,8}$",
62
- "maxLength": 16,
63
- "default": "0000000000000000"
68
+ "default": "7FF"
64
69
  }
65
70
  },
66
71
  "dependencies": {
@@ -105,73 +110,504 @@
105
110
  },
106
111
  "additionalProperties": false,
107
112
  "required": [
113
+ "chn",
108
114
  "id_format",
109
115
  "id",
110
- "id_mask",
111
- "data_mask",
112
- "data_high",
113
- "data_low"
116
+ "id_mask"
114
117
  ]
115
118
  },
116
- "can": {
119
+ "can_signal": {
117
120
  "type": "object",
118
121
  "properties": {
119
- "general": {
120
- "title": "General",
121
- "description": "CAN bus general configuration",
122
- "type": "object",
123
- "properties": {
124
- "rx_state": {
125
- "title": "Reception (rx) initial state",
126
- "description": "The initial state of CAN-bus reception. Can be changed using the control signal.",
122
+ "type": {
123
+ "title": "Signal type",
124
+ "type": "integer",
125
+ "default": 0,
126
+ "oneOf": [
127
+ {
127
128
  "type": "integer",
128
- "default": 1,
129
- "anyOf": [
130
- {
131
- "type": "integer",
132
- "title": "Disable",
133
- "enum": [
134
- 0
135
- ]
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
+ }
136
380
  },
137
- {
138
- "type": "integer",
139
- "title": "Enable",
140
- "enum": [
141
- 1
142
- ]
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
+ }
143
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
144
578
  ]
145
579
  },
146
- "tx_state": {
147
- "title": "Transmission (tx) initial state",
148
- "description": "The initial state of CAN-bus transmissions. Can be changed using the control signal.",
580
+ {
149
581
  "type": "integer",
150
- "default": 1,
151
- "anyOf": [
152
- {
153
- "type": "integer",
154
- "title": "Disable",
155
- "enum": [
156
- 0
157
- ]
158
- },
159
- {
160
- "type": "integer",
161
- "title": "Enable",
162
- "enum": [
163
- 1
164
- ]
165
- }
582
+ "title": "Enable",
583
+ "enum": [
584
+ 1
166
585
  ]
167
586
  }
168
- },
169
- "additionalProperties": false,
170
- "required": [
171
- "rx_state",
172
- "tx_state"
173
587
  ]
174
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
+ },
175
611
  "phy": {
176
612
  "title": "Physical (CAN bus low-level)",
177
613
  "description": "CAN bus low-level configuration",
@@ -182,7 +618,7 @@
182
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.",
183
619
  "type": "integer",
184
620
  "default": 1,
185
- "anyOf": [
621
+ "oneOf": [
186
622
  {
187
623
  "type": "integer",
188
624
  "title": "Normal (receive, acknowledge and transmit)",
@@ -211,7 +647,7 @@
211
647
  "description": "Retransmission of frames that have lost arbitration or that have been disturbed by errors during transmission.",
212
648
  "type": "integer",
213
649
  "default": 1,
214
- "anyOf": [
650
+ "oneOf": [
215
651
  {
216
652
  "type": "integer",
217
653
  "title": "Disable",
@@ -233,7 +669,7 @@
233
669
  "description": "Configures the CAN FD specification used by the device. Shall match the specification used by the CAN bus network.",
234
670
  "type": "integer",
235
671
  "default": 0,
236
- "anyOf": [
672
+ "oneOf": [
237
673
  {
238
674
  "type": "integer",
239
675
  "title": " ISO CAN FD (11898-1)",
@@ -255,7 +691,7 @@
255
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.",
256
692
  "type": "integer",
257
693
  "default": 0,
258
- "anyOf": [
694
+ "oneOf": [
259
695
  {
260
696
  "title": "Auto-detect",
261
697
  "enum": [
@@ -300,7 +736,7 @@
300
736
  "title": "Bit-rate standard",
301
737
  "type": "integer",
302
738
  "default": 250000,
303
- "anyOf": [
739
+ "oneOf": [
304
740
  {
305
741
  "title": "5K",
306
742
  "enum": [
@@ -391,7 +827,7 @@
391
827
  "title": "Bit-rate FD",
392
828
  "type": "integer",
393
829
  "default": 1000000,
394
- "anyOf": [
830
+ "oneOf": [
395
831
  {
396
832
  "title": "1M",
397
833
  "enum": [
@@ -531,7 +967,7 @@
531
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.",
532
968
  "type": "integer",
533
969
  "default": 0,
534
- "anyOf": [
970
+ "oneOf": [
535
971
  {
536
972
  "type": "integer",
537
973
  "title": "Reject",
@@ -549,267 +985,9 @@
549
985
  ]
550
986
  },
551
987
  "id": {
552
- "title": "ID filters",
553
988
  "description": "Filters are checked sequentially, execution stops with the first matching filter element. Max 128 11-bit filters and 64 29-bit filters.",
554
- "type": "array",
555
- "minItems": 1,
556
989
  "maxItems": 192,
557
- "items": {
558
- "type": "object",
559
- "properties": {
560
- "name": {
561
- "title": "Name",
562
- "description": "Optional filter name.",
563
- "type": "string",
564
- "pattern": "^[ -~]*$",
565
- "maxLength": 16
566
- },
567
- "state": {
568
- "title": "State",
569
- "description": "Disabled filters are ignored.",
570
- "type": "integer",
571
- "default": 1,
572
- "anyOf": [
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
- "type": {
590
- "title": "Type",
591
- "description": "Action on match, accept or reject message.",
592
- "type": "integer",
593
- "default": 0,
594
- "anyOf": [
595
- {
596
- "title": "Acceptance",
597
- "enum": [
598
- 0
599
- ]
600
- },
601
- {
602
- "title": "Rejection",
603
- "enum": [
604
- 1
605
- ]
606
- }
607
- ]
608
- },
609
- "id_format": {
610
- "title": "ID format",
611
- "description": "Filter ID format. Filters apply to messages with matching ID format.",
612
- "type": "integer",
613
- "default": 0,
614
- "anyOf": [
615
- {
616
- "title": "Standard (11-bit)",
617
- "enum": [
618
- 0
619
- ]
620
- },
621
- {
622
- "title": "Extended (29-bit)",
623
- "enum": [
624
- 1
625
- ]
626
- }
627
- ]
628
- },
629
- "method": {
630
- "title": "Filter method",
631
- "description": "The filter ID matching mechanism.",
632
- "type": "integer",
633
- "default": 0,
634
- "anyOf": [
635
- {
636
- "title": "Range",
637
- "enum": [
638
- 0
639
- ],
640
- "description": "ID ranges"
641
- },
642
- {
643
- "title": "Mask",
644
- "enum": [
645
- 1
646
- ],
647
- "description": "ID masking"
648
- }
649
- ]
650
- },
651
- "f1": {
652
- "title": "From (range) / ID (mask) (HEX)",
653
- "description": "If filter method is Range, this field defines the start of range. If filter method is Mask, this field defines the filter ID.",
654
- "type": "string",
655
- "pattern": "^[a-fA-F0-9]+$",
656
- "maxLength": 8,
657
- "default": "0"
658
- },
659
- "f2": {
660
- "title": "To (range) / mask (mask) (HEX)",
661
- "description": "If filter method is Range, this field defines the end of range. If filter method is Mask, this field defines the filter mask.",
662
- "type": "string",
663
- "pattern": "^[a-fA-F0-9]+$",
664
- "maxLength": 8,
665
- "default": "7FF"
666
- }
667
- },
668
- "dependencies": {
669
- "type": {
670
- "oneOf": [
671
- {
672
- "properties": {
673
- "type": {
674
- "enum": [
675
- 0
676
- ]
677
- },
678
- "prescaler_type": {
679
- "title": "Prescaling type",
680
- "description": "Select prescaling type. Prescale by message count, time or data. Select None to disable prescaling.",
681
- "type": "integer",
682
- "default": 0,
683
- "anyOf": [
684
- {
685
- "title": "None",
686
- "enum": [
687
- 0
688
- ]
689
- },
690
- {
691
- "title": "Count",
692
- "enum": [
693
- 1
694
- ]
695
- },
696
- {
697
- "title": "Time",
698
- "enum": [
699
- 2
700
- ]
701
- },
702
- {
703
- "title": "Data",
704
- "enum": [
705
- 3
706
- ]
707
- }
708
- ]
709
- }
710
- },
711
- "dependencies": {
712
- "prescaler_type": {
713
- "oneOf": [
714
- {
715
- "properties": {
716
- "prescaler_type": {
717
- "enum": [
718
- 0
719
- ]
720
- }
721
- }
722
- },
723
- {
724
- "properties": {
725
- "prescaler_type": {
726
- "enum": [
727
- 1
728
- ]
729
- },
730
- "prescaler_value": {
731
- "title": "Count",
732
- "type": "integer",
733
- "description": "Count prescaler value. Example: Set to 2 to sample a message with a specific ID every second time.",
734
- "default": 1,
735
- "minimum": 1,
736
- "maximum": 256
737
- }
738
- },
739
- "required": [
740
- "prescaler_value"
741
- ]
742
- },
743
- {
744
- "properties": {
745
- "prescaler_type": {
746
- "enum": [
747
- 2
748
- ]
749
- },
750
- "prescaler_value": {
751
- "title": "Time",
752
- "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.",
753
- "type": "integer",
754
- "default": 1,
755
- "minimum": 1,
756
- "maximum": 4194304
757
- }
758
- },
759
- "required": [
760
- "prescaler_value"
761
- ]
762
- },
763
- {
764
- "properties": {
765
- "prescaler_type": {
766
- "enum": [
767
- 3
768
- ]
769
- },
770
- "prescaler_value": {
771
- "title": "Mask",
772
- "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.",
773
- "type": "string",
774
- "default": "FF",
775
- "pattern": "^[a-fA-F0-9]*$",
776
- "maxLength": 16
777
- }
778
- }
779
- }
780
- ]
781
- }
782
- },
783
- "required": [
784
- "prescaler_type"
785
- ]
786
- },
787
- {
788
- "properties": {
789
- "type": {
790
- "enum": [
791
- 1
792
- ]
793
- }
794
- }
795
- }
796
- ]
797
- }
798
- },
799
- "additionalProperties": false,
800
- "patternProperties": {
801
- "prescaler_type": {},
802
- "prescaler_value": {}
803
- },
804
- "required": [
805
- "state",
806
- "type",
807
- "id_format",
808
- "method",
809
- "f1",
810
- "f2"
811
- ]
812
- }
990
+ "$ref": "#/definitions/can_filter_id"
813
991
  }
814
992
  },
815
993
  "required": [
@@ -837,7 +1015,7 @@
837
1015
  "description": "Disabled transmit messages are ignored.",
838
1016
  "type": "integer",
839
1017
  "default": 1,
840
- "anyOf": [
1018
+ "oneOf": [
841
1019
  {
842
1020
  "type": "integer",
843
1021
  "title": "Disable",
@@ -881,7 +1059,7 @@
881
1059
  "description": "Frame format of the transmit message.",
882
1060
  "type": "integer",
883
1061
  "default": 0,
884
- "anyOf": [
1062
+ "oneOf": [
885
1063
  {
886
1064
  "type": "integer",
887
1065
  "title": "Standard",
@@ -916,7 +1094,7 @@
916
1094
  "description": "Determines if the transmitted message is included in the log file.",
917
1095
  "type": "integer",
918
1096
  "default": 0,
919
- "anyOf": [
1097
+ "oneOf": [
920
1098
  {
921
1099
  "type": "integer",
922
1100
  "title": "Disable",
@@ -1003,7 +1181,7 @@
1003
1181
  ]
1004
1182
  },
1005
1183
  "brs": {
1006
- "anyOf": [
1184
+ "oneOf": [
1007
1185
  {
1008
1186
  "type": "integer",
1009
1187
  "title": "Disable",
@@ -1027,7 +1205,7 @@
1027
1205
  ]
1028
1206
  },
1029
1207
  "brs": {
1030
- "anyOf": [
1208
+ "oneOf": [
1031
1209
  {
1032
1210
  "type": "integer",
1033
1211
  "title": "Disable",
@@ -1051,7 +1229,7 @@
1051
1229
  ]
1052
1230
  },
1053
1231
  "brs": {
1054
- "anyOf": [
1232
+ "oneOf": [
1055
1233
  {
1056
1234
  "type": "integer",
1057
1235
  "title": "Disable",
@@ -1101,7 +1279,7 @@
1101
1279
  "description": "Enable to periodically transmit heartbeat signal. ",
1102
1280
  "type": "integer",
1103
1281
  "default": 0,
1104
- "anyOf": [
1282
+ "oneOf": [
1105
1283
  {
1106
1284
  "type": "integer",
1107
1285
  "title": "Disable",
@@ -1186,69 +1364,7 @@
1186
1364
  ]
1187
1365
  },
1188
1366
  "control": {
1189
- "title": "Control",
1190
- "description": "Control signal",
1191
- "type": "object",
1192
- "properties": {
1193
- "control_rx_state": {
1194
- "title": "Control reception (rx) state",
1195
- "description": "Control CAN-bus reception state (including logging) ",
1196
- "type": "integer",
1197
- "default": 0,
1198
- "anyOf": [
1199
- {
1200
- "type": "integer",
1201
- "title": "Disable",
1202
- "enum": [
1203
- 0
1204
- ]
1205
- },
1206
- {
1207
- "type": "integer",
1208
- "title": "Enable",
1209
- "enum": [
1210
- 1
1211
- ]
1212
- }
1213
- ]
1214
- },
1215
- "control_tx_state": {
1216
- "title": "Control transmission (tx) state",
1217
- "description": "Control CAN-bus transmission state (including logging) ",
1218
- "type": "integer",
1219
- "default": 0,
1220
- "anyOf": [
1221
- {
1222
- "type": "integer",
1223
- "title": "Disable",
1224
- "enum": [
1225
- 0
1226
- ]
1227
- },
1228
- {
1229
- "type": "integer",
1230
- "title": "Enable",
1231
- "enum": [
1232
- 1
1233
- ]
1234
- }
1235
- ]
1236
- },
1237
- "start": {
1238
- "title": "Start signal",
1239
- "$ref": "#/definitions/control_signal"
1240
- },
1241
- "stop": {
1242
- "title": "Stop signal",
1243
- "$ref": "#/definitions/control_signal"
1244
- }
1245
- },
1246
- "required": [
1247
- "control_rx_state",
1248
- "control_tx_state",
1249
- "start",
1250
- "stop"
1251
- ]
1367
+ "$ref": "#/definitions/can_control"
1252
1368
  }
1253
1369
  },
1254
1370
  "additionalProperties": false,
@@ -1271,7 +1387,7 @@
1271
1387
  "description": "Device LIN bus mode.",
1272
1388
  "type": "integer",
1273
1389
  "default": 0,
1274
- "anyOf": [
1390
+ "oneOf": [
1275
1391
  {
1276
1392
  "type": "integer",
1277
1393
  "title": "Subscriber",
@@ -1292,7 +1408,7 @@
1292
1408
  "title": "Bit-rate",
1293
1409
  "type": "integer",
1294
1410
  "default": 19200,
1295
- "anyOf": [
1411
+ "oneOf": [
1296
1412
  {
1297
1413
  "title": "2400",
1298
1414
  "enum": [
@@ -1360,7 +1476,7 @@
1360
1476
  "description": "Type of the checksum used on the LIN frame.",
1361
1477
  "type": "integer",
1362
1478
  "default": 0,
1363
- "anyOf": [
1479
+ "oneOf": [
1364
1480
  {
1365
1481
  "title": "Enhanced",
1366
1482
  "enum": [
@@ -1405,7 +1521,7 @@
1405
1521
  "description": "Disabled transmit rules are ignored.",
1406
1522
  "type": "integer",
1407
1523
  "default": 1,
1408
- "anyOf": [
1524
+ "oneOf": [
1409
1525
  {
1410
1526
  "title": "Disable",
1411
1527
  "enum": [
@@ -1530,6 +1646,14 @@
1530
1646
  "required": [
1531
1647
  "phy"
1532
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
1533
1657
  }
1534
1658
  },
1535
1659
  "properties": {
@@ -1577,7 +1701,7 @@
1577
1701
  "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.",
1578
1702
  "type": "integer",
1579
1703
  "default": 0,
1580
- "anyOf": [
1704
+ "oneOf": [
1581
1705
  {
1582
1706
  "type": "integer",
1583
1707
  "title": "Disable (0)",
@@ -1629,7 +1753,7 @@
1629
1753
  "properties": {
1630
1754
  "split_size": {
1631
1755
  "title": "File split size (1 to 512 MB)",
1632
- "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 WiFi is available. Small split sizes may reduce performance.",
1756
+ "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.",
1633
1757
  "type": "integer",
1634
1758
  "default": 50,
1635
1759
  "minimum": 1,
@@ -1637,7 +1761,7 @@
1637
1761
  },
1638
1762
  "split_time_period": {
1639
1763
  "title": "File split time period (0 to 86400 seconds, 0 = disable)",
1640
- "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 WiFi is available. Small split time periods may reduce performance.",
1764
+ "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.",
1641
1765
  "type": "integer",
1642
1766
  "default": 0,
1643
1767
  "minimum": 0,
@@ -1658,7 +1782,7 @@
1658
1782
  "description": "With cycling logging mode enabled the oldest log file is deleted when the memory card becomes full, allowing the logging to continue.",
1659
1783
  "type": "integer",
1660
1784
  "default": 1,
1661
- "anyOf": [
1785
+ "oneOf": [
1662
1786
  {
1663
1787
  "type": "integer",
1664
1788
  "title": "Disable",
@@ -1693,7 +1817,7 @@
1693
1817
  "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.",
1694
1818
  "type": "integer",
1695
1819
  "default": 0,
1696
- "anyOf": [
1820
+ "oneOf": [
1697
1821
  {
1698
1822
  "type": "integer",
1699
1823
  "title": "Disable",
@@ -1735,7 +1859,7 @@
1735
1859
  "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.",
1736
1860
  "type": "integer",
1737
1861
  "default": 0,
1738
- "anyOf": [
1862
+ "oneOf": [
1739
1863
  {
1740
1864
  "type": "integer",
1741
1865
  "title": "Disable",
@@ -1777,7 +1901,7 @@
1777
1901
  "description": "The format of the encryption password used for encrypting logged data on the device.",
1778
1902
  "type": "integer",
1779
1903
  "default": 0,
1780
- "anyOf": [
1904
+ "oneOf": [
1781
1905
  {
1782
1906
  "type": "integer",
1783
1907
  "title": "Plain",
@@ -1851,16 +1975,23 @@
1851
1975
  "properties": {
1852
1976
  "state": {
1853
1977
  "title": "State",
1854
- "description": "Should error frames be logged. Can negatively impact performance, as potentially many more frames needs to be written to the log.",
1978
+ "description": "Specify whether to record error frames. Enabling this can negatively impact performance, as a potentially large number of additional frames may be recorded.",
1855
1979
  "type": "integer",
1856
1980
  "default": 0,
1857
- "anyOf": [
1981
+ "oneOf": [
1858
1982
  {
1859
1983
  "type": "integer",
1860
1984
  "title": "Disable",
1861
1985
  "enum": [
1862
1986
  0
1863
1987
  ]
1988
+ },
1989
+ {
1990
+ "type": "integer",
1991
+ "title": "Enable",
1992
+ "enum": [
1993
+ 1
1994
+ ]
1864
1995
  }
1865
1996
  ]
1866
1997
  }
@@ -1891,7 +2022,7 @@
1891
2022
  "description": "Internal real-time-clock synchronization method. The real-time-clock is maintained when the device is off.",
1892
2023
  "type": "integer",
1893
2024
  "default": 0,
1894
- "anyOf": [
2025
+ "oneOf": [
1895
2026
  {
1896
2027
  "title": "Retain current time",
1897
2028
  "description": "The current internal time is not changed.",
@@ -1907,6 +2038,14 @@
1907
2038
  "enum": [
1908
2039
  1
1909
2040
  ]
2041
+ },
2042
+ {
2043
+ "title": "CAN-bus",
2044
+ "description": "The internal time synchronized to the time provided by the payload of a CAN-bus message",
2045
+ "type": "integer",
2046
+ "enum": [
2047
+ 3
2048
+ ]
1910
2049
  }
1911
2050
  ]
1912
2051
  },
@@ -1956,13 +2095,46 @@
1956
2095
  "required": [
1957
2096
  "manual_date_time"
1958
2097
  ]
2098
+ },
2099
+ {
2100
+ "properties": {
2101
+ "sync": {
2102
+ "enum": [
2103
+ 3
2104
+ ]
2105
+ },
2106
+ "tolerance": {
2107
+ "$ref": "#/definitions/rtc_tolerance"
2108
+ },
2109
+ "message": {
2110
+ "title": "Message",
2111
+ "$ref": "#/definitions/can_message"
2112
+ },
2113
+ "valid_signal": {
2114
+ "title": "Time valid signal",
2115
+ "$ref": "#/definitions/can_signal"
2116
+ },
2117
+ "time_signal": {
2118
+ "title": "Time value signal",
2119
+ "$ref": "#/definitions/can_signal"
2120
+ }
2121
+ },
2122
+ "required": [
2123
+ "message",
2124
+ "valid_signal",
2125
+ "time_signal"
2126
+ ]
1959
2127
  }
1960
2128
  ]
1961
2129
  }
1962
2130
  },
1963
2131
  "additionalProperties": false,
1964
2132
  "patternProperties": {
1965
- "manual_date_time": {}
2133
+ "manual_date_time": {},
2134
+ "message": {},
2135
+ "valid_signal": {},
2136
+ "time_signal": {},
2137
+ "tolerance": {}
1966
2138
  },
1967
2139
  "required": [
1968
2140
  "sync",
@@ -2012,12 +2184,46 @@
2012
2184
  "power_schedule"
2013
2185
  ]
2014
2186
  },
2187
+ "can_internal": {
2188
+ "title": "CAN Channel internal",
2189
+ "description": "CAN Channel internal is a virtual channel used for signals generated by the device itself.",
2190
+ "type": "object",
2191
+ "properties": {
2192
+ "general": {
2193
+ "title": "General",
2194
+ "$ref": "#/definitions/can_general"
2195
+ },
2196
+ "filter": {
2197
+ "title": "Receive filters",
2198
+ "type": "object",
2199
+ "properties": {
2200
+ "id": {
2201
+ "description": "Filters are checked sequentially, execution stops with the first matching filter element. Max 20 filters in total.",
2202
+ "maxItems": 20,
2203
+ "$ref": "#/definitions/can_filter_id"
2204
+ }
2205
+ },
2206
+ "required": [
2207
+ "id"
2208
+ ]
2209
+ },
2210
+ "control": {
2211
+ "$ref": "#/definitions/can_control"
2212
+ }
2213
+ },
2214
+ "additionalProperties": false,
2215
+ "required": [
2216
+ "filter"
2217
+ ]
2218
+ },
2015
2219
  "can_1": {
2016
- "title": "CAN Channel 1",
2220
+ "title": "CAN Channel 1 (physical)",
2221
+ "description": "CAN Channel 1 is an external physical channel.",
2017
2222
  "$ref": "#/definitions/can"
2018
2223
  },
2019
2224
  "can_2": {
2020
- "title": "CAN Channel 2",
2225
+ "title": "CAN Channel 2 (physical)",
2226
+ "description": "CAN Channel 2 is an external physical channel.",
2021
2227
  "$ref": "#/definitions/can"
2022
2228
  },
2023
2229
  "lin_1": {
@@ -2035,6 +2241,7 @@
2035
2241
  "log",
2036
2242
  "rtc",
2037
2243
  "secondaryport",
2244
+ "can_internal",
2038
2245
  "can_1",
2039
2246
  "can_2",
2040
2247
  "lin_1",