Restore /etc/dev-mapping.conf support
[apps/agl-service-can-low-level.git] / examples / agl-vcar / signals.json
1 {
2     "name": "AGL Virtual Car",
3     "version": "2.0",
4     "extra_sources": [],
5     "initializers": [],
6     "loopers": [],
7     "buses": {},
8     "commands": [],
9     "messages": {
10         "0x620": {
11             "bus": "hs",
12             "is_fd": false,
13             "is_j1939": false,
14             "signals": {
15                 "doors.driver.open": {
16                     "generic_name": "doors.front_left.open",
17                     "bit_position": 43,
18                     "bit_size": 1,
19                     "factor": 1.0,
20                     "offset": 0,
21                     "writable": true,
22                     "decoder": "decoder_t::decode_boolean"
23                 },
24                 "doors.passenger.open": {
25                     "generic_name": "doors.front_right.open",
26                     "bit_position": 44,
27                     "bit_size": 1,
28                     "factor": 1.0,
29                     "offset": 0,
30                     "writable": true,
31                     "decoder": "decoder_t::decode_boolean"
32                 },
33                 "doors.rearleft.open": {
34                     "generic_name": "doors.rear_left.open",
35                     "bit_position": 46,
36                     "bit_size": 1,
37                     "factor": 1.0,
38                     "offset": 0,
39                     "writable": true,
40                     "decoder": "decoder_t::decode_boolean"
41                 },
42                 "doors.rearright.open": {
43                     "generic_name": "doors.rear_right.open",
44                     "bit_position": 45,
45                     "bit_size": 4,
46                     "factor": 1.0,
47                     "offset": 0,
48                     "writable": true,
49                     "decoder": "decoder_t::decode_boolean"
50                 },
51                 "doors.coffer.open": {
52                     "generic_name": "doors.boot.open",
53                     "bit_position": 47,
54                     "bit_size": 1,
55                     "factor": 1.0,
56                     "offset": 0,
57                     "writable": true,
58                     "decoder": "decoder_t::decode_boolean"
59                 }
60             }
61         },
62         "0x799": {
63             "bus": "hs",
64             "is_fd": false,
65             "is_j1939": false,
66             "signals": {
67                 "windows.driver.open": {
68                     "generic_name": "windows.front_left.open",
69                     "bit_position": 43,
70                     "bit_size": 1,
71                     "factor": 1.0,
72                     "offset": 0,
73                     "writable": true,
74                     "decoder": "decoder_t::decode_boolean"
75                 },
76                 "windows.passenger.open": {
77                     "generic_name": "windows.front_right.open",
78                     "bit_position": 44,
79                     "bit_size": 1,
80                     "factor": 1.0,
81                     "offset": 0,
82                     "writable": true,
83                     "decoder": "decoder_t::decode_boolean"
84                 },
85                 "windows.rearleft.open": {
86                     "generic_name": "windows.rear_left.open",
87                     "bit_position": 46,
88                     "bit_size": 1,
89                     "factor": 1.0,
90                     "offset": 0,
91                     "writable": true,
92                     "decoder": "decoder_t::decode_boolean"
93                 },
94                 "windows.rearright.open": {
95                     "generic_name": "windows.rear_right.open",
96                     "bit_position": 45,
97                     "bit_size": 4,
98                     "factor": 1.0,
99                     "offset": 0,
100                     "writable": true,
101                     "decoder": "decoder_t::decode_boolean"
102                 }
103             }
104         },
105         "0x3D9": {
106             "bus": "hs",
107             "is_fd": true,
108             "is_extended": false,
109             "is_j1939": false,
110             "signals": {
111                 "PT_FuelLevelPct": {
112                     "generic_name": "fuel.level",
113                     "bit_position": 8,
114                     "bit_size": 8,
115                     "factor": 0.392157,
116                     "offset": 0,
117                     "writable": true
118                 },
119                 "PT_EngineSpeed": {
120                     "generic_name": "engine.speed",
121                     "bit_position": 16,
122                     "bit_size": 16,
123                     "factor": 0.25,
124                     "offset": 0,
125                     "writable": true
126                 },
127                 "PT_FuelLevelLow": {
128                     "generic_name": "fuel.level.low",
129                     "bit_position": 55,
130                     "bit_size": 1,
131                     "factor": 1,
132                     "offset": 0,
133                     "writable": true,
134                     "decoder": "decoder_t::decode_boolean"
135                 }
136             }
137         },
138         "0x3DA": {
139             "bus": "hs",
140             "is_fd": true,
141             "is_extended": false,
142             "is_j1939": false,
143             "signals": {
144                 "FD_PT_FuelLevelPct": {
145                     "generic_name": "fd.fuel.level",
146                     "bit_position": 8,
147                     "bit_size": 8,
148                     "factor": 0.392157,
149                     "offset": 0,
150                     "writable": true
151                 },
152                 "FD_PT_EngineSpeed": {
153                     "generic_name": "fd.engine.speed",
154                     "bit_position": 16,
155                     "bit_size": 16,
156                     "factor": 0.25,
157                     "offset": 0,
158                     "writable": true
159                 },
160                 "FD_PT_FuelLevelLow": {
161                     "generic_name": "fd.fuel.level.low",
162                     "bit_position": 55,
163                     "bit_size": 1,
164                     "factor": 1,
165                     "offset": 0,
166                     "writable": true,
167                     "decoder": "decoder_t::decode_boolean"
168                 }
169             }
170         },
171         "0x4D1": {
172             "bus": "hs",
173             "is_fd": false,
174             "is_extended": false,
175             "is_j1939": false,
176             "signals": {
177                 "PT_EngineOilTempHigh": {
178                     "generic_name": "engine.oil.temp.high",
179                     "bit_position": 7,
180                     "bit_size": 1,
181                     "factor": 1,
182                     "offset": 0,
183                     "writable": true,
184                     "decoder": "decoder_t::decode_boolean"
185                 },
186                 "PT_EngineOilTemp": {
187                     "generic_name": "engine.oil.temp",
188                     "bit_position": 16,
189                     "bit_size": 8,
190                     "factor": 1,
191                     "offset": 0,
192                     "writable": true
193                 }
194             }
195         },
196         "0x3E9": {
197             "bus": "hs",
198             "is_fd": false,
199             "is_extended": false,
200             "is_j1939": false,
201             "signals": {
202                 "PT_VehicleAvgSpeed": {
203                     "generic_name": "vehicle.average.speed",
204                     "bit_position": 0,
205                     "bit_size": 15,
206                     "factor": 0.015625,
207                     "offset": 0,
208                     "writable": false
209                 }
210             }
211         },
212         "0x30": {
213             "bus": "ls",
214             "is_fd": false,
215             "is_extended": true,
216             "is_j1939": false,
217             "signals": {
218                 "LeftTemperature": {
219                     "generic_name": "hvac.temperature.left",
220                     "bit_position": 0,
221                     "bit_size": 8,
222                     "factor": 1,
223                     "offset": 0,
224                     "writable": true
225                 },
226                 "RightTemperature": {
227                     "generic_name": "hvac.temperature.right",
228                     "bit_position": 8,
229                     "bit_size": 8,
230                     "factor": 1,
231                     "offset": 0,
232                     "writable": true
233                 },
234                 "Temperature": {
235                     "generic_name": "hvac.temperature.average",
236                     "bit_position": 16,
237                     "bit_size": 8,
238                     "factor": 1,
239                     "offset": 0,
240                     "writable": true
241                 },
242                 "FanSpeed": {
243                     "generic_name": "hvac.fan.speed",
244                     "bit_position": 32,
245                     "bit_size": 8,
246                     "factor": 23.529411765,
247                     "offset": 0,
248                     "writable": true
249                 }
250             }
251         },
252         "0x21": {
253             "bus": "ls",
254             "is_fd": false,
255             "is_extended": false,
256             "is_j1939": false,
257             "length": 8,
258             "signals": {
259                 "SW_Previous": {
260                     "generic_name": "steering_wheel.previous",
261                     "bit_position": 32,
262                     "bit_size": 1,
263                     "factor": 1,
264                     "offset": 0,
265                     "decoder": "decoder_t::decode_boolean",
266                     "writable": false
267                 },
268                 "SW_VolumeUp": {
269                     "generic_name": "steering_wheel.volume.up",
270                     "bit_position": 33,
271                     "bit_size": 1,
272                     "factor": 1,
273                     "offset": 0,
274                     "decoder": "decoder_t::decode_boolean",
275                     "writable": false
276                 },
277                 "SW_Mode": {
278                     "generic_name": "steering_wheel.mode",
279                     "bit_position": 34,
280                     "bit_size": 1,
281                     "factor": 1,
282                     "offset": 0,
283                     "decoder": "decoder_t::decode_boolean",
284                     "writable": false
285                 },
286                 "SW_VolumeDown": {
287                     "generic_name": "steering_wheel.volume.down",
288                     "bit_position": 35,
289                     "bit_size": 1,
290                     "factor": 1,
291                     "offset": 0,
292                     "decoder": "decoder_t::decode_boolean",
293                     "writable": false
294                 },
295                 "SW_Next": {
296                     "generic_name": "steering_wheel.next",
297                     "bit_position": 36,
298                     "bit_size": 1,
299                     "factor": 1,
300                     "offset": 0,
301                     "decoder": "decoder_t::decode_boolean",
302                     "writable": false
303                 },
304                 "SW_Info": {
305                     "generic_name": "steering_wheel.info",
306                     "bit_position": 38,
307                     "bit_size": 1,
308                     "factor": 1,
309                     "offset": 0,
310                     "decoder": "decoder_t::decode_boolean",
311                     "writable": false
312                 },
313                 "SW_VolumeMute": {
314                     "generic_name": "steering_wheel.volume.mute",
315                     "bit_position": 39,
316                     "bit_size": 1,
317                     "factor": 1,
318                     "offset": 0,
319                     "decoder": "decoder_t::decode_boolean",
320                     "writable": false
321                 },
322                 "SW_Voice": {
323                     "generic_name": "steering_wheel.voice",
324                     "bit_position": 45,
325                     "bit_size": 1,
326                     "factor": 1,
327                     "offset": 0,
328                     "decoder": "decoder_t::decode_boolean",
329                     "writable": false
330                 },
331                 "SW_PhoneHangup": {
332                     "generic_name": "steering_wheel.phone.hangup",
333                     "bit_position": 46,
334                     "bit_size": 1,
335                     "factor": 1,
336                     "offset": 0,
337                     "decoder": "decoder_t::decode_boolean",
338                     "writable": false
339                 },
340                 "SW_PhoneCall": {
341                     "generic_name": "steering_wheel.phone.call",
342                     "bit_position": 47,
343                     "bit_size": 1,
344                     "factor": 1,
345                     "offset": 0,
346                     "decoder": "decoder_t::decode_boolean",
347                     "writable": false
348                 },
349                 "SW_CruiseEnable": {
350                     "generic_name": "steering_wheel.cruise.enable",
351                     "bit_position": 48,
352                     "bit_size": 1,
353                     "factor": 1,
354                     "offset": 0,
355                     "decoder": "decoder_t::decode_boolean",
356                     "writable": false
357                 },
358                 "SW_CruiseResume": {
359                     "generic_name": "steering_wheel.cruise.resume",
360                     "bit_position": 49,
361                     "bit_size": 1,
362                     "factor": 1,
363                     "offset": 0,
364                     "decoder": "decoder_t::decode_boolean",
365                     "writable": false
366                 },
367                 "SW_CruiseSet": {
368                     "generic_name": "steering_wheel.cruise.set",
369                     "bit_position": 51,
370                     "bit_size": 1,
371                     "factor": 1,
372                     "offset": 0,
373                     "decoder": "decoder_t::decode_boolean",
374                     "writable": false
375                 },
376                 "SW_CruiseCancel": {
377                     "generic_name": "steering_wheel.cruise.cancel",
378                     "bit_position": 52,
379                     "bit_size": 1,
380                     "factor": 1,
381                     "offset": 0,
382                     "decoder": "decoder_t::decode_boolean",
383                     "writable": false
384                 },
385                 "SW_CruiseLimit": {
386                     "generic_name": "steering_wheel.cruise.limit",
387                     "bit_position": 54,
388                     "bit_size": 1,
389                     "factor": 1,
390                     "offset": 0,
391                     "decoder": "decoder_t::decode_boolean",
392                     "writable": false
393                 },
394                 "SW_CruiseDistance": {
395                     "generic_name": "steering_wheel.cruise.distance",
396                     "bit_position": 55,
397                     "bit_size": 1,
398                     "factor": 1,
399                     "offset": 0,
400                     "decoder": "decoder_t::decode_boolean",
401                     "writable": false
402                 },
403                 "SW_Horn": {
404                     "generic_name": "steering_wheel.horn",
405                     "bit_position": 56,
406                     "bit_size": 1,
407                     "factor": 1,
408                     "offset": 0,
409                     "decoder": "decoder_t::decode_boolean",
410                     "writable": false
411                 },
412                 "SW_LaneDepartureWarning": {
413                     "generic_name": "steering_wheel.lane_departure_warning",
414                     "bit_position": 63,
415                     "bit_size": 1,
416                     "factor": 1,
417                     "offset": 0,
418                     "decoder": "decoder_t::decode_boolean",
419                     "writable": false
420                 }
421             }
422         },
423         "61442": {
424             "comment": "Electronic Transmission Controller 1",
425             "length": 8,
426             "name": "ETC1",
427             "bus": "j1939",
428             "is_fd": false,
429             "is_extended": false,
430             "is_j1939": true,
431             "signals": {
432                 "Trns.Trque.Converter.Lockup.Engaged": {
433                     "generic_name": "Trns.Trque.Converter.Lockup.Engaged",
434                     "bit_position": 2,
435                     "bit_size": 2,
436                     "factor": 1,
437                     "offset": 0,
438                     "comment": "State signal which indicates whether the torque converter lockup is engaged.",
439                     "is_big_endian": false,
440                     "sign": 0,
441                     "writable": true,
442                     "states": {
443                         "TorqueConverterLockupDisengaged": [
444                             0
445                         ],
446                         "TorqueConverterLockupEngaged": [
447                             1
448                         ],
449                         "Error": [
450                             2
451                         ],
452                         "NotAvailable": [
453                             3
454                         ]
455                     }
456                 },
457                 "Trns.Trq.Cnvrtr.Lckp.Trnstn.In.Prcess": {
458                     "generic_name": "Trns.Trq.Cnvrtr.Lckp.Trnstn.In.Prcess",
459                     "bit_position": 6,
460                     "bit_size": 2,
461                     "factor": 1,
462                     "offset": 0,
463                     "comment": "State signal indicating whether or not the transmission torque converter lock up clutch is transitioning between being",
464                     "is_big_endian": false,
465                     "sign": 0,
466                     "writable": true,
467                     "states": {
468                         "TransitionIsNotInProcess": [
469                             0
470                         ],
471                         "TransitionIsInProcess": [
472                             1
473                         ],
474                         "Error": [
475                             2
476                         ],
477                         "NotAvailable": [
478                             3
479                         ]
480                     }
481                 },
482                 "Src.Addrss.Of.Ctrllng.Dvc.Fr.Trns.Cntrl": {
483                     "generic_name": "Src.Addrss.Of.Ctrllng.Dvc.Fr.Trns.Cntrl",
484                     "bit_position": 56,
485                     "bit_size": 8,
486                     "factor": 1,
487                     "offset": 0,
488                     "comment": "The source address of the SAE J1939 device currently controlling the transmission.",
489                     "is_big_endian": false,
490                     "sign": 0,
491                     "writable": true
492                 },
493                 "Momentary.Eng.Max.Power.Enable": {
494                     "generic_name": "Momentary.Eng.Max.Power.Enable",
495                     "bit_position": 36,
496                     "bit_size": 2,
497                     "factor": 1,
498                     "offset": 0,
499                     "comment": "Momentarily Requesting highest torque map from the engine control",
500                     "is_big_endian": false,
501                     "sign": 0,
502                     "writable": true,
503                     "states": {
504                         "notRqingMaxPowerAvailable": [
505                             0
506                         ],
507                         "mmntarilyRqingMaxPowerAvailable": [
508                             1
509                         ],
510                         "fault": [
511                             2
512                         ],
513                         "notAvailable": [
514                             3
515                         ]
516                     }
517                 },
518                 "Trans.Input.Shaft.Speed": {
519                     "generic_name": "Trans.Input.Shaft.Speed",
520                     "bit_position": 40,
521                     "bit_size": 16,
522                     "factor": 0.125,
523                     "offset": 0,
524                     "comment": "Rotational velocity of the primary shaft transferring power into the transmission.",
525                     "unit": "rpm",
526                     "is_big_endian": false,
527                     "sign": 0,
528                     "writable": true
529                 },
530                 "Progressive.Shift.Disable": {
531                     "generic_name": "Progressive.Shift.Disable",
532                     "bit_position": 34,
533                     "bit_size": 2,
534                     "factor": 1,
535                     "offset": 0,
536                     "comment": "Command signal used to indicate that progressive shifting by the engine should be disallowed.",
537                     "is_big_endian": false,
538                     "sign": 0,
539                     "writable": true,
540                     "states": {
541                         "ProgressiveShiftIsNotDisabled": [
542                             0
543                         ],
544                         "ProgressiveShiftIsDisabled": [
545                             1
546                         ],
547                         "Reserved": [
548                             2
549                         ],
550                         "TakeNoAction": [
551                             3
552                         ]
553                     }
554                 },
555                 "Eng.Momentary.Overspeed.Enable": {
556                     "generic_name": "Eng.Momentary.Overspeed.Enable",
557                     "bit_position": 32,
558                     "bit_size": 2,
559                     "factor": 1,
560                     "offset": 0,
561                     "comment": "Command signal used to indicate that the engine speed may be boosted up to the maximum engine overspeed value to",
562                     "is_big_endian": false,
563                     "sign": 0,
564                     "writable": true,
565                     "states": {
566                         "MomentaryEngOverspeedIsDisabled": [
567                             0
568                         ],
569                         "MomentaryEngOverspeedIsEnabled": [
570                             1
571                         ],
572                         "Reserved": [
573                             2
574                         ],
575                         "TakeNoAction": [
576                             3
577                         ]
578                     }
579                 },
580                 "Percent.Clutch.Slip": {
581                     "generic_name": "Percent.Clutch.Slip",
582                     "bit_position": 24,
583                     "bit_size": 8,
584                     "factor": 0.4,
585                     "offset": 0,
586                     "comment": "Parameter which represents the ratio of input shaft speed to current engine speed (in percent).",
587                     "unit": "%",
588                     "is_big_endian": false,
589                     "sign": 0,
590                     "writable": true
591                 },
592                 "Trans.Output.Shaft.Speed": {
593                     "generic_name": "Trans.Output.Shaft.Speed",
594                     "bit_position": 8,
595                     "bit_size": 16,
596                     "factor": 0.125,
597                     "offset": 0,
598                     "comment": "Calculated speed of the transmission output shaft.",
599                     "unit": "rpm",
600                     "is_big_endian": false,
601                     "sign": 0,
602                     "writable": true
603                 },
604                 "Trans.Shift.In.Process": {
605                     "generic_name": "Trans.Shift.In.Process",
606                     "bit_position": 4,
607                     "bit_size": 2,
608                     "factor": 1,
609                     "offset": 0,
610                     "comment": "Indicates that the transmission is in process of shifting from the current gear to the selected gear.",
611                     "is_big_endian": false,
612                     "sign": 0,
613                     "writable": true,
614                     "states": {
615                         "ShiftIsNotInProcess": [
616                             0
617                         ],
618                         "ShiftInProcess": [
619                             1
620                         ],
621                         "Error": [
622                             2
623                         ],
624                         "NotAvailable": [
625                             3
626                         ]
627                     }
628                 },
629                 "Trans.Driveline.Engaged": {
630                     "generic_name": "Trans.Driveline.Engaged",
631                     "bit_position": 0,
632                     "bit_size": 2,
633                     "factor": 1,
634                     "offset": 0,
635                     "comment": "Driveline engaged indicates the transmission controlled portion of the driveline is engaged sufficiently to allow a transfer",
636                     "is_big_endian": false,
637                     "sign": 0,
638                     "writable": true,
639                     "states": {
640                         "DrivelineDisengaged": [
641                             0
642                         ],
643                         "DrivelineEngaged": [
644                             1
645                         ],
646                         "Error": [
647                             2
648                         ],
649                         "NotAvailable": [
650                             3
651                         ]
652                     }
653                 }
654             }
655         },
656         "61444": {
657             "comment": "Electronic Engine Controller 1",
658             "length": 8,
659             "name": "EEC1",
660             "bus": "j1939",
661             "is_fd": false,
662             "is_j1939": true,
663             "signals": {
664                 "Src.AddrssOf.Ctrllng.Dvc.Fr.Eng.Cntrl": {
665                     "generic_name": "Src.AddrssOf.Ctrllng.Dvc.Fr.Eng.Cntrl",
666                     "bit_position": 40,
667                     "bit_size": 8,
668                     "factor": 1,
669                     "offset": 0,
670                     "comment": "The source address of the SAE J1939 device currently controlling the engine.",
671                     "is_big_endian": false,
672                     "sign": 0
673                 },
674                 "Actl.Eng.Prcnt.Trque.High.Resolution": {
675                     "generic_name": "Actl.Eng.Prcnt.Trque.High.Resolution",
676                     "bit_position": 4,
677                     "bit_size": 4,
678                     "factor": 0.125,
679                     "offset": 0,
680                     "comment": "This parameter displays an additional torque in percent of the reference engine torque.",
681                     "unit": "%",
682                     "is_big_endian": false,
683                     "sign": 0,
684                     "states": {
685                         "0000": [
686                             0
687                         ],
688                         "0125": [
689                             1
690                         ],
691                         "0875": [
692                             7
693                         ],
694                         "1111NotAvailable": [
695                             8
696                         ]
697                     }
698                 },
699                 "Eng.Demand.Percent.Torque": {
700                     "generic_name": "Eng.Demand.Percent.Torque",
701                     "bit_position": 56,
702                     "bit_size": 8,
703                     "factor": 1,
704                     "offset": -125,
705                     "comment": "The requested torque output of the engine by all dynamic internal inputs, including smoke control, noise control and low",
706                     "unit": "%",
707                     "is_big_endian": false,
708                     "sign": 0
709                 },
710                 "Eng.Starter.Mode": {
711                     "generic_name": "Eng.Starter.Mode",
712                     "bit_position": 48,
713                     "bit_size": 4,
714                     "factor": 1,
715                     "offset": 0,
716                     "comment": "There are several phases in a starting action and different reasons why a start cannot take place.",
717                     "is_big_endian": false,
718                     "sign": 0,
719                     "states": {
720                         "startNotRqed": [
721                             0
722                         ],
723                         "starterActiveGearNotEngaged": [
724                             1
725                         ],
726                         "starterActiveGearEngaged": [
727                             2
728                         ],
729                         "strtFnshdStrtrNtActvAftrHvngBnA": [
730                             3
731                         ],
732                         "strtrInhbtdDToEngAlreadyRunning": [
733                             4
734                         ],
735                         "strtrInhbtdDTEngNtReadyForStart": [
736                             5
737                         ],
738                         "strtrInhbtdDTDrvlnEnggdOthrTrns": [
739                             6
740                         ],
741                         "strtrInhbtdDToActiveImmobilizer": [
742                             7
743                         ],
744                         "strtrInhbtdDueToStarterOvertemp": [
745                             8
746                         ],
747                         "1011Reserved": [
748                             9
749                         ],
750                         "starterInhibitedReasonUnknown": [
751                             12
752                         ],
753                         "error": [
754                             14
755                         ],
756                         "notAvailable": [
757                             15
758                         ]
759                     }
760                 },
761                 "Eng.Speed": {
762                     "generic_name": "Eng.Speed",
763                     "bit_position": 24,
764                     "bit_size": 16,
765                     "factor": 0.125,
766                     "offset": 0,
767                     "comment": "Actual engine speed which is calculated over a minimum crankshaft angle of 720 degrees divided by the number of cylinders.",
768                     "unit": "rpm",
769                     "is_big_endian": false,
770                     "sign": 0
771                 },
772                 "Actual.Eng.Percent.Torque": {
773                     "generic_name": "Actual.Eng.Percent.Torque",
774                     "bit_position": 16,
775                     "bit_size": 8,
776                     "factor": 1,
777                     "offset": -125,
778                     "comment": "The calculated output torque of the engine.",
779                     "unit": "%",
780                     "is_big_endian": false,
781                     "sign": 0
782                 },
783                 "Drivers.Demand.Eng.Percent.Torque": {
784                     "generic_name": "Drivers.Demand.Eng.Percent.Torque",
785                     "bit_position": 8,
786                     "bit_size": 8,
787                     "factor": 1,
788                     "offset": -125,
789                     "comment": "The requested torque output of the engine by the driver.",
790                     "unit": "%",
791                     "is_big_endian": false,
792                     "sign": 0
793                 },
794                 "Eng.Torque.Mode": {
795                     "generic_name": "Eng.Torque.Mode",
796                     "bit_position": 0,
797                     "bit_size": 4,
798                     "factor": 1,
799                     "offset": 0,
800                     "comment": "State signal which indicates which engine torque mode is currently generating, limiting, or controlling the torque.",
801                     "is_big_endian": false,
802                     "sign": 0,
803                     "states": {
804                         "Low idle governor/no request (de": [
805                             0
806                         ],
807                         "Accelerator pedal/operator selec": [
808                             1
809                         ],
810                         "Cruise control": [
811                             2
812                         ],
813                         "PTO governor": [
814                             3
815                         ],
816                         "Road speed governor": [
817                             4
818                         ],
819                         "ASR control": [
820                             5
821                         ],
822                         "Transmission control": [
823                             6
824                         ],
825                         "ABS control": [
826                             7
827                         ],
828                         "Torque limiting": [
829                             8
830                         ],
831                         "High speed governor": [
832                             9
833                         ],
834                         "Braking system": [
835                             10
836                         ],
837                         "Remote accelerator": [
838                             11
839                         ],
840                         "Not available": [
841                             15
842                         ]
843                     }
844                 }
845             }
846         },
847         "130306": {
848             "name": "Wind.Data",
849             "bus": "j1939",
850             "comment": "Wind Data",
851             "length": 8,
852             "is_fd": false,
853             "is_extended": false,
854             "is_j1939": true,
855             "byte_frame_is_big_endian": true,
856             "bit_position_reversed": true,
857             "signals": {
858                 "Sid": {
859                     "bit_position": 0,
860                     "bit_size": 8,
861                     "sign": 0,
862                     "generic_name": "Wind.Data.Sid"
863                 },
864                 "Wind.Speed": {
865                     "bit_position": 8,
866                     "bit_size": 16,
867                     "factor": 0.01,
868                     "sign": 0,
869                     "unit": "m/s",
870                     "generic_name": "Wind.Data.Wind.Speed"
871                 },
872                 "Wind.Angle": {
873                     "bit_position": 24,
874                     "bit_size": 16,
875                     "factor": 0.0001,
876                     "sign": 0,
877                     "unit": "rad",
878                     "generic_name": "Wind.Data.Wind.Angle"
879                 },
880                 "Reference": {
881                     "bit_position": 40,
882                     "bit_size": 3,
883                     "decoder": "decoder_t::decode_state",
884                     "sign": 0,
885                     "states": {
886                         "True (ground referenced to North)": [
887                             0
888                         ],
889                         "Magnetic (ground referenced to Magnetic North)": [
890                             1
891                         ],
892                         "Apparent": [
893                             2
894                         ],
895                         "True (boat referenced)": [
896                             3
897                         ],
898                         "True (water referenced)": [
899                             4
900                         ]
901                     },
902                     "generic_name": "Wind.Data.Reference"
903                 },
904                 "Reserved": {
905                     "bit_position": 43,
906                     "bit_size": 21,
907                     "decoder": "decoder_t::decode_bytes",
908                     "sign": 0,
909                     "generic_name": "Wind.Data.Reserved"
910                 }
911             }
912         }
913     },
914     "diagnostic_messages": [
915         {
916             "bus": "hs",
917             "pid": 4,
918             "name": "engine.load",
919             "frequency": 5,
920             "decoder": "decoder_t::decode_obd2_response"
921         },
922         {
923             "bus": "hs",
924             "pid": 5,
925             "name": "engine.coolant.temperature",
926             "frequency": 1,
927             "decoder": "decoder_t::decode_obd2_response"
928         },
929         {
930             "bus": "hs",
931             "pid": 10,
932             "name": "fuel.pressure",
933             "frequency": 1,
934             "decoder": "decoder_t::decode_obd2_response"
935         },
936         {
937             "bus": "hs",
938             "pid": 11,
939             "name": "intake.manifold.pressure",
940             "frequency": 1,
941             "decoder": "decoder_t::decode_obd2_response"
942         },
943         {
944             "bus": "hs",
945             "pid": 12,
946             "name": "engine.speed",
947             "frequency": 5,
948             "decoder": "decoder_t::decode_obd2_response"
949         },
950         {
951             "bus": "hs",
952             "pid": 13,
953             "name": "vehicle.speed",
954             "frequency": 5,
955             "decoder": "decoder_t::decode_obd2_response"
956         },
957         {
958             "bus": "hs",
959             "pid": 15,
960             "name": "intake.air.temperature",
961             "frequency": 1,
962             "decoder": "decoder_t::decode_obd2_response"
963         },
964         {
965             "bus": "hs",
966             "pid": 16,
967             "name": "mass.airflow",
968             "frequency": 5,
969             "decoder": "decoder_t::decode_obd2_response"
970         },
971         {
972             "bus": "hs",
973             "pid": 17,
974             "name": "throttle.position",
975             "frequency": 5,
976             "decoder": "decoder_t::decode_obd2_response"
977         },
978         {
979             "bus": "hs",
980             "pid": 31,
981             "name": "running.time",
982             "frequency": 1,
983             "decoder": "decoder_t::decode_obd2_response"
984         },
985         {
986             "bus": "hs",
987             "pid": 45,
988             "name": "EGR.error",
989             "frequency": 0,
990             "decoder": "decoder_t::decode_obd2_response"
991         },
992         {
993             "bus": "hs",
994             "pid": 47,
995             "name": "fuel.level",
996             "frequency": 1,
997             "decoder": "decoder_t::decode_obd2_response"
998         },
999         {
1000             "bus": "hs",
1001             "pid": 51,
1002             "name": "barometric.pressure",
1003             "frequency": 1,
1004             "decoder": "decoder_t::decode_obd2_response"
1005         },
1006         {
1007             "bus": "hs",
1008             "pid": 70,
1009             "name": "ambient.air.temperature",
1010             "frequency": 1,
1011             "decoder": "decoder_t::decode_obd2_response"
1012         },
1013         {
1014             "bus": "hs",
1015             "pid": 76,
1016             "name": "commanded.throttle.position",
1017             "frequency": 1,
1018             "decoder": "decoder_t::decode_obd2_response"
1019         },
1020         {
1021             "bus": "hs",
1022             "pid": 82,
1023             "name": "ethanol.fuel.percentage",
1024             "frequency": 1,
1025             "decoder": "decoder_t::decode_obd2_response"
1026         },
1027         {
1028             "bus": "hs",
1029             "pid": 90,
1030             "name": "accelerator.pedal.position",
1031             "frequency": 5,
1032             "decoder": "decoder_t::decode_obd2_response"
1033         },
1034         {
1035             "bus": "hs",
1036             "pid": 91,
1037             "name": "hybrid.battery-pack.remaining.life",
1038             "frequency": 5,
1039             "decoder": "decoder_t::decode_obd2_response"
1040         },
1041         {
1042             "bus": "hs",
1043             "pid": 92,
1044             "name": "engine.oil.temperature",
1045             "frequency": 1,
1046             "decoder": "decoder_t::decode_obd2_response"
1047         },
1048         {
1049             "bus": "hs",
1050             "pid": 94,
1051             "name": "engine.fuel.rate",
1052             "frequency": 1,
1053             "decoder": "decoder_t::decode_obd2_response"
1054         },
1055         {
1056             "bus": "hs",
1057             "pid": 99,
1058             "name": "engine.torque",
1059             "frequency": 1,
1060             "decoder": "decoder_t::decode_obd2_response"
1061         }
1062     ]
1063 }