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