Replace all enum types with masks
[apps/agl-service-can-low-level.git] / examples / tests / signal.json
diff --git a/examples/tests/signal.json b/examples/tests/signal.json
new file mode 100644 (file)
index 0000000..1478caf
--- /dev/null
@@ -0,0 +1,955 @@
+{   "name": "AGL Virtual Car",
+       "extra_sources": [],
+       "initializers": [],
+       "loopers": [],
+       "buses": {},
+       "commands": [],
+       "messages": {
+               "0x620": {
+                       "bus": "hs",
+                       "is_fd" : false,
+                       "is_extended": false,
+                       "is_j1939" : false,
+                       "length" : 8,
+                       "signals": {
+                               "doors.driver.open": {
+                                       "generic_name": "doors.front_left.open",
+                                       "bit_position": 43,
+                                       "bit_size": 1,
+                                       "factor": 1.0,
+                                       "offset": 0,
+                                       "writable": true,
+                                       "decoder": "decoder_t::decode_boolean"},
+                               "doors.passenger.open": {
+                                       "generic_name": "doors.front_right.open",
+                                       "bit_position": 44,
+                                       "bit_size": 1,
+                                       "factor": 1.0,
+                                       "offset": 0,
+                                       "writable": true,
+                                       "decoder": "decoder_t::decode_boolean"},
+                               "doors.rearleft.open": {
+                                       "generic_name": "doors.rear_left.open",
+                                       "bit_position": 46,
+                                       "bit_size": 1,
+                                       "factor": 1.0,
+                                       "offset": 0,
+                                       "writable": true,
+                                       "decoder": "decoder_t::decode_boolean"},
+                               "doors.rearright.open": {
+                                       "generic_name": "doors.rear_right.open",
+                                       "bit_position": 45,
+                                       "bit_size": 4,
+                                       "factor": 1.0,
+                                       "offset": 0,
+                                       "writable": true,
+                                       "decoder": "decoder_t::decode_boolean"},
+                               "doors.coffer.open": {
+                                       "generic_name": "doors.boot.open",
+                                       "bit_position": 47,
+                                       "bit_size": 1,
+                                       "factor": 1.0,
+                                       "offset": 0,
+                                       "writable": true,
+                                       "decoder": "decoder_t::decode_boolean"}
+               }
+       },
+               "0x799": {
+                       "bus": "hs",
+                       "is_fd" : false,
+                       "is_extended": false,
+                       "is_j1939" : false,
+                       "length" : 8,
+                       "signals": {
+                               "windows.driver.open": {
+                                       "generic_name": "windows.front_left.open",
+                                       "bit_position": 43,
+                                       "bit_size": 1,
+                                       "factor": 1.0,
+                                       "offset": 0,
+                                       "writable": true,
+                                       "decoder": "decoder_t::decode_boolean"},
+                               "windows.passenger.open": {
+                                       "generic_name": "windows.front_right.open",
+                                       "bit_position": 44,
+                                       "bit_size": 1,
+                                       "factor": 1.0,
+                                       "offset": 0,
+                                       "writable": true,
+                                       "decoder": "decoder_t::decode_boolean"},
+                               "windows.rearleft.open": {
+                                       "generic_name": "windows.rear_left.open",
+                                       "bit_position": 46,
+                                       "bit_size": 1,
+                                       "factor": 1.0,
+                                       "offset": 0,
+                                       "writable": true,
+                                       "decoder": "decoder_t::decode_boolean"},
+                               "windows.rearright.open": {
+                                       "generic_name": "windows.rear_right.open",
+                                       "bit_position": 45,
+                                       "bit_size": 4,
+                                       "factor": 1.0,
+                                       "offset": 0,
+                                       "writable": true,
+                                       "decoder": "decoder_t::decode_boolean"}
+               }
+       },
+       "0x3D9": {
+       "bus": "hs",
+       "is_fd" : true,
+       "is_extended": false,
+       "is_j1939" : false,
+       "length" : 8,
+       "signals": {
+               "PT_FuelLevelPct": {
+                       "generic_name": "fuel.level",
+                       "bit_position": 8,
+                       "bit_size": 8,
+                       "factor": 0.392157,
+                       "offset": 0,
+                       "writable": true
+               },
+               "PT_EngineSpeed": {
+                       "generic_name": "engine.speed",
+                       "bit_position": 16,
+                       "bit_size": 16,
+                       "factor": 0.25,
+                       "offset": 0,
+                       "writable": true
+               },
+               "PT_FuelLevelLow": {
+                       "generic_name": "fuel.level.low",
+                       "bit_position": 55,
+                       "bit_size": 1,
+                       "factor": 1,
+                       "offset": 0,
+                       "writable": true,
+                       "decoder": "decoder_t::decode_boolean"
+               }
+       }
+       },
+       "0x4D1": {
+       "bus": "hs",
+       "is_fd" : false,
+       "is_extended": false,
+       "is_j1939" : false,
+       "length" : 8,
+       "signals": {
+               "PT_EngineOilTempHigh": {
+                       "generic_name": "engine.oil.temp.high",
+                       "bit_position": 7,
+                       "bit_size": 1,
+                       "factor": 1,
+                       "offset": 0,
+                       "writable": true,
+                       "decoder": "decoder_t::decode_boolean"
+               },
+               "PT_EngineOilTemp": {
+                       "generic_name": "engine.oil.temp",
+                       "bit_position": 16,
+                       "bit_size": 8,
+                       "factor": 1,
+                       "offset": 0,
+                       "writable": true
+               }
+       }
+       },
+       "0x3E9": {
+       "bus": "hs",
+       "is_fd" : false,
+       "is_extended": false,
+       "is_j1939" : false,
+       "length" : 8,
+       "signals": {
+               "PT_VehicleAvgSpeed": {
+                       "generic_name": "vehicle.average.speed",
+                       "bit_position": 0,
+                       "bit_size": 15,
+                       "factor": 0.015625,
+                       "offset": 0,
+                       "writable": false
+               }
+       }
+       },
+       "0x30": {
+       "bus": "ls",
+       "is_fd" : false,
+       "is_extended": true,
+       "is_j1939" : false,
+       "length" : 8,
+       "signals": {
+               "LeftTemperature": {
+                       "generic_name": "hvac.temperature.left",
+                       "bit_position": 0,
+                       "bit_size": 8,
+                       "factor": 1,
+                       "offset": 0,
+                       "writable": true
+               },
+               "RightTemperature": {
+                       "generic_name": "hvac.temperature.right",
+                       "bit_position": 8,
+                       "bit_size": 8,
+                       "factor": 1,
+                       "offset": 0,
+                       "writable": true
+               },
+               "Temperature": {
+                       "generic_name": "hvac.temperature.average",
+                       "bit_position": 16,
+                       "bit_size": 8,
+                       "factor": 1,
+                       "offset": 0,
+                       "writable": true
+               },
+               "FanSpeed": {
+                       "generic_name": "hvac.fan.speed",
+                       "bit_position": 32,
+                       "bit_size": 8,
+                       "factor": 23.529411765,
+                       "offset": 0,
+                       "writable": true
+               }
+       }
+    },
+    "61442": {
+        "comment": "Electronic Transmission Controller 1",
+        "length": 8,
+        "name": "ETC1",
+        "bus" : "j1939",
+        "is_fd" : false,
+        "is_extended": false,
+        "is_j1939" : true,
+        "signals" : {
+            "Trns.Trque.Converter.Lockup.Engaged" : {
+                "generic_name": "Trns.Trque.Converter.Lockup.Engaged",
+                "bit_position": 2,
+                "bit_size": 2,
+                "factor": 1,
+                "offset": 0,
+                "comment": "State signal which indicates whether the torque converter lockup is engaged.",
+                "is_big_endian": false,
+                "is_signed": false,
+                "writable" : true,
+                "states": {
+                    "TorqueConverterLockupDisengaged": [0],
+                    "TorqueConverterLockupEngaged": [1],
+                    "Error": [2],
+                    "NotAvailable": [3]
+                }
+            },
+            "Trns.Trq.Cnvrtr.Lckp.Trnstn.In.Prcess" : {
+                "generic_name": "Trns.Trq.Cnvrtr.Lckp.Trnstn.In.Prcess",
+                "bit_position": 6,
+                "bit_size": 2,
+                "factor": 1,
+                "offset": 0,
+                "comment": "State signal indicating whether or not the transmission torque converter lock up clutch is transitioning between being",
+                "is_big_endian": false,
+                "is_signed": false,
+                "writable" : true,
+                "states": {
+                    "TransitionIsNotInProcess": [0],
+                    "TransitionIsInProcess": [1],
+                    "Error": [2],
+                    "NotAvailable": [3]
+                }
+            },
+            "Src.Addrss.Of.Ctrllng.Dvc.Fr.Trns.Cntrl" : {
+                "generic_name": "Src.Addrss.Of.Ctrllng.Dvc.Fr.Trns.Cntrl",
+                "bit_position": 56,
+                "bit_size": 8,
+                "factor": 1,
+                "offset": 0,
+                "comment": "The source address of the SAE J1939 device currently controlling the transmission.",
+                "is_big_endian": false,
+                "is_signed": false,
+                "writable" : true
+            },
+            "Momentary.Eng.Max.Power.Enable" : {
+                "generic_name": "Momentary.Eng.Max.Power.Enable",
+                "bit_position": 36,
+                "bit_size": 2,
+                "factor": 1,
+                "offset": 0,
+                "comment": "Momentarily Requesting highest torque map from the engine control",
+                "is_big_endian": false,
+                "is_signed": false,
+                "writable" : true,
+                "states": {
+                    "notRqingMaxPowerAvailable": [0],
+                    "mmntarilyRqingMaxPowerAvailable": [1],
+                    "fault": [2],
+                    "notAvailable": [3]
+                }
+            },
+            "Trans.Input.Shaft.Speed" : {
+                "generic_name": "Trans.Input.Shaft.Speed",
+                "bit_position": 40,
+                "bit_size": 16,
+                "factor": 0.125,
+                "offset": 0,
+                "comment": "Rotational velocity of the primary shaft transferring power into the transmission.",
+                "unit": "rpm",
+                "is_big_endian": false,
+                "is_signed": false,
+                "writable" : true
+            },
+            "Progressive.Shift.Disable" : {
+                "generic_name": "Progressive.Shift.Disable",
+                "bit_position": 34,
+                "bit_size": 2,
+                "factor": 1,
+                "offset": 0,
+                "comment": "Command signal used to indicate that progressive shifting by the engine should be disallowed.",
+                "is_big_endian": false,
+                "is_signed": false,
+                "writable" : true,
+                "states": {
+                    "ProgressiveShiftIsNotDisabled": [0],
+                    "ProgressiveShiftIsDisabled": [1],
+                    "Reserved": [2],
+                    "TakeNoAction": [3]
+                }
+            },
+            "Eng.Momentary.Overspeed.Enable" : {
+                "generic_name": "Eng.Momentary.Overspeed.Enable",
+                "bit_position": 32,
+                "bit_size": 2,
+                "factor": 1,
+                "offset": 0,
+                "comment": "Command signal used to indicate that the engine speed may be boosted up to the maximum engine overspeed value to",
+                "is_big_endian": false,
+                "is_signed": false,
+                "writable" : true,
+                "states": {
+                    "MomentaryEngOverspeedIsDisabled": [0],
+                    "MomentaryEngOverspeedIsEnabled": [1],
+                    "Reserved": [2],
+                    "TakeNoAction": [3]
+                }
+            },
+            "Percent.Clutch.Slip" : {
+                "generic_name": "Percent.Clutch.Slip",
+                "bit_position": 24,
+                "bit_size": 8,
+                "factor": 0.4,
+                "offset": 0,
+                "comment": "Parameter which represents the ratio of input shaft speed to current engine speed (in percent).",
+                "unit": "%",
+                "is_big_endian": false,
+                "is_signed": false,
+                "writable" : true
+            },
+            "Trans.Output.Shaft.Speed" : {
+                "generic_name": "Trans.Output.Shaft.Speed",
+                "bit_position": 8,
+                "bit_size": 16,
+                "factor": 0.125,
+                "offset": 0,
+                "comment": "Calculated speed of the transmission output shaft.",
+                "unit": "rpm",
+                "is_big_endian": false,
+                "is_signed": false,
+                "writable" : true
+            },
+            "Trans.Shift.In.Process" : {
+                "generic_name": "Trans.Shift.In.Process",
+                "bit_position": 4,
+                "bit_size": 2,
+                "factor": 1,
+                "offset": 0,
+                "comment": "Indicates that the transmission is in process of shifting from the current gear to the selected gear.",
+                "is_big_endian": false,
+                "is_signed": false,
+                "writable" : true,
+                "states": {
+                    "ShiftIsNotInProcess": [0],
+                    "ShiftInProcess": [1],
+                    "Error": [2],
+                    "NotAvailable": [3]
+                }
+            },
+            "Trans.Driveline.Engaged" : {
+                "generic_name": "Trans.Driveline.Engaged",
+                "bit_position": 0,
+                "bit_size": 2,
+                "factor": 1,
+                "offset": 0,
+                "comment": "Driveline engaged indicates the transmission controlled portion of the driveline is engaged sufficiently to allow a transfer",
+                "is_big_endian": false,
+                "is_signed": false,
+                "writable" : true,
+                "states": {
+                    "DrivelineDisengaged": [0],
+                    "DrivelineEngaged": [1],
+                    "Error": [2],
+                    "NotAvailable": [3]
+                }
+            }
+        }
+    },
+    "61444": {
+        "comment": "Electronic Engine Controller 1",
+        "length": 8,
+        "name": "EEC1",
+        "bus" : "j1939",
+        "is_fd" : false,
+        "is_extended": false,
+        "is_j1939" : true,
+        "signals" : {
+            "Src.AddrssOf.Ctrllng.Dvc.Fr.Eng.Cntrl" : {
+                "generic_name": "Src.AddrssOf.Ctrllng.Dvc.Fr.Eng.Cntrl",
+                "bit_position": 40,
+                "bit_size": 8,
+                "factor": 1,
+                "offset": 0,
+                "comment": "The source address of the SAE J1939 device currently controlling the engine.",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Actl.Eng.Prcnt.Trque.High.Resolution" : {
+                "generic_name": "Actl.Eng.Prcnt.Trque.High.Resolution",
+                "bit_position": 4,
+                "bit_size": 4,
+                "factor": 0.125,
+                "offset": 0,
+                "comment": "This parameter displays an additional torque in percent of the reference engine torque.",
+                "unit": "%",
+                "is_big_endian": false,
+                "is_signed": false,
+                "states": {
+                    "0000": [0],
+                    "0125": [1],
+                    "0875": [7],
+                    "1111NotAvailable": [8]
+                }
+            },
+            "Eng.Demand.Percent.Torque" : {
+                "generic_name": "Eng.Demand.Percent.Torque",
+                "bit_position": 56,
+                "bit_size": 8,
+                "factor": 1,
+                "offset": -125,
+                "comment": "The requested torque output of the engine by all dynamic internal inputs, including smoke control, noise control and low",
+                "unit": "%",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Eng.Starter.Mode" : {
+                "generic_name": "Eng.Starter.Mode",
+                "bit_position": 48,
+                "bit_size": 4,
+                "factor": 1,
+                "offset": 0,
+                "comment": "There are several phases in a starting action and different reasons why a start cannot take place.",
+                "is_big_endian": false,
+                "is_signed": false,
+                "states": {
+                    "startNotRqed": [0],
+                    "starterActiveGearNotEngaged": [1],
+                    "starterActiveGearEngaged": [2],
+                    "strtFnshdStrtrNtActvAftrHvngBnA": [3],
+                    "strtrInhbtdDToEngAlreadyRunning": [4],
+                    "strtrInhbtdDTEngNtReadyForStart": [5],
+                    "strtrInhbtdDTDrvlnEnggdOthrTrns": [6],
+                    "strtrInhbtdDToActiveImmobilizer": [7],
+                    "strtrInhbtdDueToStarterOvertemp": [8],
+                    "1011Reserved": [9],
+                    "starterInhibitedReasonUnknown": [12],
+                    "error": [14],
+                    "notAvailable": [15]
+                }
+            },
+            "Eng.Speed" : {
+                "generic_name": "Eng.Speed",
+                "bit_position": 24,
+                "bit_size": 16,
+                "factor": 0.125,
+                "offset": 0,
+                "comment": "Actual engine speed which is calculated over a minimum crankshaft angle of 720 degrees divided by the number of cylinders.",
+                "unit": "rpm",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Actual.Eng.Percent.Torque" : {
+                "generic_name": "Actual.Eng.Percent.Torque",
+                "bit_position": 16,
+                "bit_size": 8,
+                "factor": 1,
+                "offset": -125,
+                "comment": "The calculated output torque of the engine.",
+                "unit": "%",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Drivers.Demand.Eng.Percent.Torque" : {
+                "generic_name": "Drivers.Demand.Eng.Percent.Torque",
+                "bit_position": 8,
+                "bit_size": 8,
+                "factor": 1,
+                "offset": -125,
+                "comment": "The requested torque output of the engine by the driver.",
+                "unit": "%",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Eng.Torque.Mode" : {
+                "generic_name": "Eng.Torque.Mode",
+                "bit_position": 0,
+                "bit_size": 4,
+                "factor": 1,
+                "offset": 0,
+                "comment": "State signal which indicates which engine torque mode is currently generating, limiting, or controlling the torque.",
+                "is_big_endian": false,
+                "is_signed": false,
+                "states": {
+                    "Low idle governor/no request (de": [0],
+                    "Accelerator pedal/operator selec": [1],
+                    "Cruise control": [2],
+                    "PTO governor": [3],
+                    "Road speed governor": [4],
+                    "ASR control": [5],
+                    "Transmission control": [6],
+                    "ABS control": [7],
+                    "Torque limiting": [8],
+                    "High speed governor": [9],
+                    "Braking system": [10],
+                    "Remote accelerator": [11],
+                    "Not available": [15]
+                }
+            }
+        }
+    },
+    "65253": {
+        "comment": "Engine Hours, Revolutions",
+        "length": 8,
+        "name": "HOURS",
+        "bus" : "j1939",
+        "is_fd" : false,
+        "is_extended": false,
+        "is_j1939" : true,
+        "signals" : {
+            "Eng.Total.Revolutions" : {
+                "generic_name": "Eng.Total.Revolutions",
+                "bit_position": 32,
+                "bit_size": 32,
+                "factor": 1000,
+                "offset": 0,
+                "comment": "Accumulated number of revolutions of engine crankshaft during its operation.",
+                "unit": "r",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Eng.Total.Hours.Of.Operation" : {
+                "generic_name": "Eng.Total.Hours.Of.Operation",
+                "bit_position": 0,
+                "bit_size": 32,
+                "factor": 0.05,
+                "offset": 0,
+                "comment": "Accumulated time of operation of engine.",
+                "unit": "hr",
+                "is_big_endian": false,
+                "is_signed": false
+            }
+        }
+    },
+    "61449": {
+        "comment": "Vehicle Dynamic Stability Control 2",
+        "length": 8,
+        "name": "VDC2",
+        "bus" : "j1939",
+        "is_fd" : false,
+        "is_extended": false,
+        "is_j1939" : true,
+        "signals" : {
+            "Steer.Wheel.Angle" : {
+                "generic_name": "Steer.Wheel.Angle",
+                "bit_position": 0,
+                "bit_size": 16,
+                "factor": 0.0009765625,
+                "offset": -31.374,
+                "comment": "The main operator`s steering wheel angle (on the steering column, not the actual wheel angle).",
+                "unit": "rad",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Longitudinal.Acceleration" : {
+                "generic_name": "Longitudinal.Acceleration",
+                "bit_position": 56,
+                "bit_size": 8,
+                "factor": 0.1,
+                "offset": -12.5,
+                "comment": "Indicates the longitudinal acceleration of the vehicle.",
+                "unit": "m/s/s",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Lateral.Acceleration" : {
+                "generic_name": "Lateral.Acceleration",
+                "bit_position": 40,
+                "bit_size": 16,
+                "factor": 0.00048828125,
+                "offset": -15.687,
+                "comment": "Indicates a lateral acceleration of the vehicle.",
+                "unit": "m/s/s",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Yaw.Rate" : {
+                "generic_name": "Yaw.Rate",
+                "bit_position": 24,
+                "bit_size": 16,
+                "factor": 0.0001220703125,
+                "offset": -3.92,
+                "comment": "Indicates the rotation about the vertical axis.",
+                "unit": "rad/s",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Steer.Wheel.Angle.Sensor.Type" : {
+                "generic_name": "Steer.Wheel.Angle.Sensor.Type",
+                "bit_position": 22,
+                "bit_size": 2,
+                "factor": 1,
+                "offset": 0,
+                "comment": "Indicates whether the steering wheel angle sensor is capable of absolute measuring of the number of steering wheel",
+                "is_big_endian": false,
+                "is_signed": false,
+                "states": {
+                    "RelativeMeasuringPrinciple": [0],
+                    "AbsMeasuringPrinciple": [1],
+                    "Reserved": [2],
+                    "NotAvailable": [3]
+                }
+            },
+            "Steer.Wheel.Turn.Counter" : {
+                "generic_name": "Steer.Wheel.Turn.Counter",
+                "bit_position": 16,
+                "bit_size": 6,
+                "factor": 1,
+                "offset": -32,
+                "comment": "Indicates number of steering wheel turns, absolute position or relative position at ignition on.",
+                "unit": "turns",
+                "is_big_endian": false,
+                "is_signed": false
+            }
+        }
+    },
+    "65215": {
+        "comment": "Wheel Speed Information",
+        "length": 8,
+        "name": "EBC2",
+        "bus" : "j1939",
+        "is_fd" : false,
+        "is_extended": false,
+        "is_j1939" : true,
+        "signals" : {
+            "Rlative.Speed.Rear.Axle2.Right.Wheel" : {
+                "generic_name": "Rlative.Speed.Rear.Axle2.Right.Wheel",
+                "bit_position": 56,
+                "bit_size": 8,
+                "factor": 0.0625,
+                "offset": -7.8125,
+                "comment": "The speed of the rear axle #2, right wheel relative to the front axle speed, SPN 904.",
+                "unit": "km/h",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Relative.Speed.Rear.Axle2.Left.Wheel" : {
+                "generic_name": "Relative.Speed.Rear.Axle2.Left.Wheel",
+                "bit_position": 48,
+                "bit_size": 8,
+                "factor": 0.0625,
+                "offset": -7.8125,
+                "comment": "The speed of the rear axle #2, left wheel relative to the front axle speed, SPN 904.",
+                "unit": "km/h",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Rlative.Speed.Rear.Axle1.Right.Wheel" : {
+                "generic_name": "Rlative.Speed.Rear.Axle1.Right.Wheel",
+                "bit_position": 40,
+                "bit_size": 8,
+                "factor": 0.0625,
+                "offset": -7.8125,
+                "comment": "The speed of the rear axle #1, right wheel relative to the front axle speed, SPN 904.",
+                "unit": "km/h",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Relative.Speed.Rear.Axle1.Left.Wheel" : {
+                "generic_name": "Relative.Speed.Rear.Axle1.Left.Wheel",
+                "bit_position": 32,
+                "bit_size": 8,
+                "factor": 0.0625,
+                "offset": -7.8125,
+                "comment": "The speed of the rear axle #1, left wheel relative to the front axle speed, SPN 904.",
+                "unit": "km/h",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Rlative.Speed.Front.Axle.Right.Wheel" : {
+                "generic_name": "Rlative.Speed.Front.Axle.Right.Wheel",
+                "bit_position": 24,
+                "bit_size": 8,
+                "factor": 0.0625,
+                "offset": -7.8125,
+                "comment": "The speed of the front axle, right wheel relative to the front axle speed, SPN 904.",
+                "unit": "km/h",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Relative.Speed.Front.Axle.Left.Wheel" : {
+                "generic_name": "Relative.Speed.Front.Axle.Left.Wheel",
+                "bit_position": 16,
+                "bit_size": 8,
+                "factor": 0.0625,
+                "offset": -7.8125,
+                "comment": "The speed of the front axle, left wheel relative to the front axle speed, SPN 904.",
+                "unit": "km/h",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Front.Axle.Speed" : {
+                "generic_name": "Front.Axle.Speed",
+                "bit_position": 0,
+                "bit_size": 16,
+                "factor": 0.00390625,
+                "offset": 0,
+                "comment": "The average speed of the two front wheels.",
+                "unit": "km/h",
+                "is_big_endian": false,
+                "is_signed": false
+            }
+        }
+    },
+    "65262": {
+        "comment": "Engine Temperature 1",
+        "length": 8,
+        "name": "ET1",
+        "bus" : "j1939",
+        "is_fd" : false,
+        "is_extended": false,
+        "is_j1939" : true,
+        "signals" : {
+            "Eng.Fuel.Temp1" : {
+                "generic_name": "Eng.Fuel.Temp1",
+                "bit_position": 8,
+                "bit_size": 8,
+                "factor": 1,
+                "offset": -40,
+                "comment": "Temperature of fuel (or gas) passing through the first fuel control system.",
+                "unit": "deg C",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Eng.Intercooler.Thermostat.Opening" : {
+                "generic_name": "Eng.Intercooler.Thermostat.Opening",
+                "bit_position": 56,
+                "bit_size": 8,
+                "factor": 0.4,
+                "offset": 0,
+                "comment": "The current position of the thermostat used to regulate the temperature of the engine intercooler.",
+                "unit": "%",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Eng.Intercooler.Temp" : {
+                "generic_name": "Eng.Intercooler.Temp",
+                "bit_position": 48,
+                "bit_size": 8,
+                "factor": 1,
+                "offset": -40,
+                "comment": "Temperature of liquid found in the intercooler located after the turbocharger.",
+                "unit": "deg C",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Eng.Turbo.Oil.Temp" : {
+                "generic_name": "Eng.Turbo.Oil.Temp",
+                "bit_position": 32,
+                "bit_size": 16,
+                "factor": 0.03125,
+                "offset": -273,
+                "comment": "Temperature of the turbocharger lubricant.",
+                "unit": "deg C",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Eng.Oil.Temp1" : {
+                "generic_name": "Eng.Oil.Temp1",
+                "bit_position": 16,
+                "bit_size": 16,
+                "factor": 0.03125,
+                "offset": -273,
+                "comment": "Temperature of the engine lubricant.",
+                "unit": "deg C",
+                "is_big_endian": false,
+                "is_signed": false
+            },
+            "Eng.Coolant.Temp" : {
+                "generic_name": "Eng.Coolant.Temp",
+                "bit_position": 0,
+                "bit_size": 8,
+                "factor": 0.03125,
+                "offset": -273,
+                "comment": "Temperature of liquid found in engine cooling system.",
+                "unit": "deg C",
+                "is_big_endian": false,
+                "is_signed": false
+            }
+        }
+    }
+},
+"diagnostic_messages": [
+               {
+                       "bus": "hs",
+                       "pid": 4,
+                       "name": "engine.load",
+                       "frequency": 5,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 5,
+                       "name": "engine.coolant.temperature",
+                       "frequency": 1,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 10,
+                       "name": "fuel.pressure",
+                       "frequency": 1,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 11,
+                       "name": "intake.manifold.pressure",
+                       "frequency": 1,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 12,
+                       "name": "engine.speed",
+                       "frequency": 5,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 13,
+                       "name": "vehicle.speed",
+                       "frequency": 5,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 15,
+                       "name": "intake.air.temperature",
+                       "frequency": 1,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 16,
+                       "name": "mass.airflow",
+                       "frequency": 5,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 17,
+                       "name": "throttle.position",
+                       "frequency": 5,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 31,
+                       "name": "running.time",
+                       "frequency": 1,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 45,
+                       "name": "EGR.error",
+                       "frequency": 0,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 47,
+                       "name": "fuel.level",
+                       "frequency": 1,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 51,
+                       "name": "barometric.pressure",
+                       "frequency": 1,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 70,
+                       "name": "ambient.air.temperature",
+                       "frequency": 1,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 76,
+                       "name": "commanded.throttle.position",
+                       "frequency": 1,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 82,
+                       "name": "ethanol.fuel.percentage",
+                       "frequency": 1,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 90,
+                       "name": "accelerator.pedal.position",
+                       "frequency": 5,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 91,
+                       "name": "hybrid.battery-pack.remaining.life",
+                       "frequency": 5,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 92,
+                       "name": "engine.oil.temperature",
+                       "frequency": 1,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 94,
+                       "name": "engine.fuel.rate",
+                       "frequency": 1,
+                       "decoder": "decoder_t::decode_obd2_response"
+               },
+               {
+                       "bus": "hs",
+                       "pid": 99,
+                       "name": "engine.torque",
+                       "frequency": 1,
+                       "decoder": "decoder_t::decode_obd2_response"
+               }
+       ]
+}