diff options
author | Arthur Guyader <arthur.guyader@iot.bzh> | 2019-07-02 17:46:16 +0200 |
---|---|---|
committer | Arthur Guyader <arthur.guyader@iot.bzh> | 2019-08-12 15:06:45 +0200 |
commit | 8c0a3d45ca37f710100afab065b07e82682dc1ef (patch) | |
tree | d2374f3dc618f07ad46d4639aa2c846c79c8ce93 /examples/j1939 | |
parent | 3977705505069b4210b29e8188cdd35813c65886 (diff) |
Update examples and can_samples
Update of examples for new features (is_fd,is_extended,is_j1939).
Bug-AGL: SPEC-2386
Signed-off-by: Arthur Guyader <arthur.guyader@iot.bzh>
Change-Id: I8c3afbafdde4f5818d73c0e71a3b7e47fb7d8fc6
Diffstat (limited to 'examples/j1939')
-rw-r--r-- | examples/j1939/application-generated.cpp | 598 | ||||
-rw-r--r-- | examples/j1939/j1939_parse.json | 191 |
2 files changed, 575 insertions, 214 deletions
diff --git a/examples/j1939/application-generated.cpp b/examples/j1939/application-generated.cpp index ebb580a6..1b07b5bc 100644 --- a/examples/j1939/application-generated.cpp +++ b/examples/j1939/application-generated.cpp @@ -5,17 +5,16 @@ application_t::application_t() : can_bus_manager_{utils::config_parser_t{"/etc/dev-mapping.conf"}} , message_set_{ - {std::make_shared<message_set_t>(message_set_t{0,"J1939", + {std::make_shared<message_set_t>(message_set_t{0,"Virtual J1939", { // beginning message_definition_ vector - - {std::make_shared<message_definition_t>(message_definition_t{"j1939",61442,0,message_format_t::J1939,frequency_clock_t(5.00000f),true,8, + {std::make_shared<message_definition_t>(message_definition_t{"j1939",61442,"ETC1",8,false,message_format_t::J1939,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared<signal_t> (signal_t{ - "EngMomentaryOverspeedEnable",// generic_name + "Eng.Momentary.Overspeed.Enable",// generic_name 32,// bit_position 2,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -27,22 +26,21 @@ application_t::application_t() {2,"Reserved"}, {3,"TakeNoAction"} },// states - false,// writable - nullptr,// decoder + true,// writable + decoder_t::decode_state,// decoder nullptr,// encoder false,// received std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "",// unit - "Command signal used to indicate that the engine speed may be boosted up to the maximum engine overspeed value to"// comment + ""// unit })}, {std::make_shared<signal_t> (signal_t{ - "MomentaryEngMaxPowerEnable",// generic_name + "Momentary.Eng.Max.Power.Enable",// generic_name 36,// bit_position 2,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -54,22 +52,21 @@ application_t::application_t() {3,"notAvailable"}, {0,"notRqingMaxPowerAvailable"} },// states - false,// writable - nullptr,// decoder + true,// writable + decoder_t::decode_state,// decoder nullptr,// encoder false,// received std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "",// unit - "Momentarily Requesting highest torque map from the engine control"// comment + ""// unit })}, {std::make_shared<signal_t> (signal_t{ - "PercentClutchSlip",// generic_name + "Percent.Clutch.Slip",// generic_name 24,// bit_position 8,// bit_size 0.400000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -77,22 +74,21 @@ application_t::application_t() false,// force_send_changed { },// states - false,// writable + true,// writable nullptr,// decoder nullptr,// encoder false,// received std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "%",// unit - "Parameter which represents the ratio of input shaft speed to current engine speed (in percent)."// comment + "%"// unit })}, {std::make_shared<signal_t> (signal_t{ - "ProgressiveShiftDisable",// generic_name + "Progressive.Shift.Disable",// generic_name 34,// bit_position 2,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -104,22 +100,21 @@ application_t::application_t() {2,"Reserved"}, {3,"TakeNoAction"} },// states - false,// writable - nullptr,// decoder + true,// writable + decoder_t::decode_state,// decoder nullptr,// encoder false,// received std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "",// unit - "Command signal used to indicate that progressive shifting by the engine should be disallowed."// comment + ""// unit })}, {std::make_shared<signal_t> (signal_t{ - "SrcAddrssOfCtrllngDvcFrTrnsCntrl",// generic_name + "Src.Addrss.Of.Ctrllng.Dvc.Fr.Trns.Cntrl",// generic_name 56,// bit_position 8,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -127,22 +122,21 @@ application_t::application_t() false,// force_send_changed { },// states - false,// writable + true,// writable nullptr,// decoder nullptr,// encoder false,// received std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "",// unit - "The source address of the SAE J1939 device currently controlling the transmission."// comment + ""// unit })}, {std::make_shared<signal_t> (signal_t{ - "TransDrivelineEngaged",// generic_name + "Trans.Driveline.Engaged",// generic_name 0,// bit_position 2,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -154,22 +148,21 @@ application_t::application_t() {2,"Error"}, {3,"NotAvailable"} },// states - false,// writable - nullptr,// decoder + true,// writable + decoder_t::decode_state,// decoder nullptr,// encoder false,// received std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "",// unit - "Driveline engaged indicates the transmission controlled portion of the driveline is engaged sufficiently to allow a transfer"// comment + ""// unit })}, {std::make_shared<signal_t> (signal_t{ - "TransInputShaftSpeed",// generic_name + "Trans.Input.Shaft.Speed",// generic_name 40,// bit_position 16,// bit_size 0.125000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -177,22 +170,21 @@ application_t::application_t() false,// force_send_changed { },// states - false,// writable + true,// writable nullptr,// decoder nullptr,// encoder false,// received std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "rpm",// unit - "Rotational velocity of the primary shaft transferring power into the transmission."// comment + "rpm"// unit })}, {std::make_shared<signal_t> (signal_t{ - "TransOutputShaftSpeed",// generic_name + "Trans.Output.Shaft.Speed",// generic_name 8,// bit_position 16,// bit_size 0.125000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -200,22 +192,21 @@ application_t::application_t() false,// force_send_changed { },// states - false,// writable + true,// writable nullptr,// decoder nullptr,// encoder false,// received std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "rpm",// unit - "Calculated speed of the transmission output shaft."// comment + "rpm"// unit })}, {std::make_shared<signal_t> (signal_t{ - "TransShiftInProcess",// generic_name + "Trans.Shift.In.Process",// generic_name 4,// bit_position 2,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -227,22 +218,21 @@ application_t::application_t() {1,"ShiftInProcess"}, {0,"ShiftIsNotInProcess"} },// states - false,// writable - nullptr,// decoder + true,// writable + decoder_t::decode_state,// decoder nullptr,// encoder false,// received std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "",// unit - "Indicates that the transmission is in process of shifting from the current gear to the selected gear."// comment + ""// unit })}, {std::make_shared<signal_t> (signal_t{ - "TrnsTrqCnvrtrLckpTrnstnInPrcess",// generic_name + "Trns.Trq.Cnvrtr.Lckp.Trnstn.In.Prcess",// generic_name 6,// bit_position 2,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -254,22 +244,21 @@ application_t::application_t() {1,"TransitionIsInProcess"}, {0,"TransitionIsNotInProcess"} },// states - false,// writable - nullptr,// decoder + true,// writable + decoder_t::decode_state,// decoder nullptr,// encoder false,// received std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "",// unit - "State signal indicating whether or not the transmission torque converter lock up clutch is transitioning between being"// comment + ""// unit })}, {std::make_shared<signal_t> (signal_t{ - "TrnsTrqueConverterLockupEngaged",// generic_name + "Trns.Trque.Converter.Lockup.Engaged",// generic_name 2,// bit_position 2,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -281,6 +270,80 @@ application_t::application_t() {0,"TorqueConverterLockupDisengaged"}, {1,"TorqueConverterLockupEngaged"} },// states + true,// writable + decoder_t::decode_state,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + ""// unit + })} + } // end signals vector + })} // end message_definition entry +, {std::make_shared<message_definition_t>(message_definition_t{"j1939",61444,"EEC1",8,false,message_format_t::J1939,frequency_clock_t(5.00000f),true, + { // beginning signals vector + {std::make_shared<signal_t> (signal_t{ + "Actl.Eng.Prcnt.Trque.High.Resolution",// generic_name + 4,// bit_position + 4,// bit_size + 0.125000f,// factor + 0.00000f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + {0,"0000"}, + {1,"0125"}, + {7,"0875"}, + {8,"1111NotAvailable"} + },// states + false,// writable + decoder_t::decode_state,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "%"// unit + })}, + {std::make_shared<signal_t> (signal_t{ + "Actual.Eng.Percent.Torque",// generic_name + 16,// bit_position + 8,// bit_size + 1.00000f,// factor + -125.000f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "%"// unit + })}, + {std::make_shared<signal_t> (signal_t{ + "Drivers.Demand.Eng.Percent.Torque",// generic_name + 8,// bit_position + 8,// bit_size + 1.00000f,// factor + -125.000f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states false,// writable nullptr,// decoder nullptr,// encoder @@ -288,20 +351,154 @@ application_t::application_t() std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "",// unit - "State signal which indicates whether the torque converter lockup is engaged."// comment + "%"// unit + })}, + {std::make_shared<signal_t> (signal_t{ + "Eng.Demand.Percent.Torque",// generic_name + 56,// bit_position + 8,// bit_size + 1.00000f,// factor + -125.000f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "%"// unit + })}, + {std::make_shared<signal_t> (signal_t{ + "Eng.Speed",// generic_name + 24,// bit_position + 16,// bit_size + 0.125000f,// factor + 0.00000f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "rpm"// unit + })}, + {std::make_shared<signal_t> (signal_t{ + "Eng.Starter.Mode",// generic_name + 48,// bit_position + 4,// bit_size + 1.00000f,// factor + 0.00000f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + {9,"1011Reserved"}, + {14,"error"}, + {15,"notAvailable"}, + {0,"startNotRqed"}, + {2,"starterActiveGearEngaged"}, + {1,"starterActiveGearNotEngaged"}, + {12,"starterInhibitedReasonUnknown"}, + {3,"strtFnshdStrtrNtActvAftrHvngBnA"}, + {6,"strtrInhbtdDTDrvlnEnggdOthrTrns"}, + {5,"strtrInhbtdDTEngNtReadyForStart"}, + {7,"strtrInhbtdDToActiveImmobilizer"}, + {4,"strtrInhbtdDToEngAlreadyRunning"}, + {8,"strtrInhbtdDueToStarterOvertemp"} + },// states + false,// writable + decoder_t::decode_state,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + ""// unit + })}, + {std::make_shared<signal_t> (signal_t{ + "Eng.Torque.Mode",// generic_name + 0,// bit_position + 4,// bit_size + 1.00000f,// factor + 0.00000f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + {7,"ABS control"}, + {5,"ASR control"}, + {1,"Accelerator pedal/operator selec"}, + {10,"Braking system"}, + {2,"Cruise control"}, + {9,"High speed governor"}, + {0,"Low idle governor/no request (de"}, + {15,"Not available"}, + {3,"PTO governor"}, + {11,"Remote accelerator"}, + {4,"Road speed governor"}, + {8,"Torque limiting"}, + {6,"Transmission control"} + },// states + false,// writable + decoder_t::decode_state,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + ""// unit + })}, + {std::make_shared<signal_t> (signal_t{ + "Src.AddrssOf.Ctrllng.Dvc.Fr.Eng.Cntrl",// generic_name + 40,// bit_position + 8,// bit_size + 1.00000f,// factor + 0.00000f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + ""// unit })} } // end signals vector - })}, // end message_definition entry - - {std::make_shared<message_definition_t>(message_definition_t{"j1939",61449,0,message_format_t::J1939,frequency_clock_t(5.00000f),true,8, + })} // end message_definition entry +, {std::make_shared<message_definition_t>(message_definition_t{"j1939",61449,"VDC2",8,false,message_format_t::J1939,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared<signal_t> (signal_t{ - "LateralAcceleration",// generic_name + "Lateral.Acceleration",// generic_name 40,// bit_position 16,// bit_size 0.000488281f,// factor - -15.6870,// offset + -15.6870f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -316,15 +513,14 @@ application_t::application_t() std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "m/s/s",// unit - "Indicates a lateral acceleration of the vehicle."// comment + "m/s/s"// unit })}, {std::make_shared<signal_t> (signal_t{ - "LongitudinalAcceleration",// generic_name + "Longitudinal.Acceleration",// generic_name 56,// bit_position 8,// bit_size 0.100000f,// factor - -12.5000,// offset + -12.5000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -339,15 +535,14 @@ application_t::application_t() std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "m/s/s",// unit - "Indicates the longitudinal acceleration of the vehicle."// comment + "m/s/s"// unit })}, {std::make_shared<signal_t> (signal_t{ - "SteerWheelAngle",// generic_name + "Steer.Wheel.Angle",// generic_name 0,// bit_position 16,// bit_size 0.000976562f,// factor - -31.3740,// offset + -31.3740f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -362,15 +557,14 @@ application_t::application_t() std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "rad",// unit - "The main operator`s steering wheel angle (on the steering column, not the actual wheel angle)."// comment + "rad"// unit })}, {std::make_shared<signal_t> (signal_t{ - "SteerWheelAngleSensorType",// generic_name + "Steer.Wheel.Angle.Sensor.Type",// generic_name 22,// bit_position 2,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -383,21 +577,20 @@ application_t::application_t() {2,"Reserved"} },// states false,// writable - nullptr,// decoder + decoder_t::decode_state,// decoder nullptr,// encoder false,// received std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "",// unit - "Indicates whether the steering wheel angle sensor is capable of absolute measuring of the number of steering wheel"// comment + ""// unit })}, {std::make_shared<signal_t> (signal_t{ - "SteerWheelTurnCounter",// generic_name + "Steer.Wheel.Turn.Counter",// generic_name 16,// bit_position 6,// bit_size 1.00000f,// factor - -32.0000,// offset + -32.0000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -412,15 +605,14 @@ application_t::application_t() std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "turns",// unit - "Indicates number of steering wheel turns, absolute position or relative position at ignition on."// comment + "turns"// unit })}, {std::make_shared<signal_t> (signal_t{ - "YawRate",// generic_name + "Yaw.Rate",// generic_name 24,// bit_position 16,// bit_size 0.000122070f,// factor - -3.92000,// offset + -3.92000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -435,20 +627,176 @@ application_t::application_t() std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "rad/s",// unit - "Indicates the rotation about the vertical axis."// comment + "rad/s"// unit })} } // end signals vector - })}, // end message_definition entry - - {std::make_shared<message_definition_t>(message_definition_t{"j1939",65253,0,message_format_t::J1939,frequency_clock_t(5.00000f),true,8, + })} // end message_definition entry +, {std::make_shared<message_definition_t>(message_definition_t{"j1939",65215,"EBC2",8,false,message_format_t::J1939,frequency_clock_t(5.00000f),true, + { // beginning signals vector + {std::make_shared<signal_t> (signal_t{ + "Front.Axle.Speed",// generic_name + 0,// bit_position + 16,// bit_size + 0.00390625f,// factor + 0.00000f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h"// unit + })}, + {std::make_shared<signal_t> (signal_t{ + "Relative.Speed.Front.Axle.Left.Wheel",// generic_name + 16,// bit_position + 8,// bit_size + 0.0625000f,// factor + -7.81250f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h"// unit + })}, + {std::make_shared<signal_t> (signal_t{ + "Relative.Speed.Rear.Axle1.Left.Wheel",// generic_name + 32,// bit_position + 8,// bit_size + 0.0625000f,// factor + -7.81250f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h"// unit + })}, + {std::make_shared<signal_t> (signal_t{ + "Relative.Speed.Rear.Axle2.Left.Wheel",// generic_name + 48,// bit_position + 8,// bit_size + 0.0625000f,// factor + -7.81250f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h"// unit + })}, + {std::make_shared<signal_t> (signal_t{ + "Rlative.Speed.Front.Axle.Right.Wheel",// generic_name + 24,// bit_position + 8,// bit_size + 0.0625000f,// factor + -7.81250f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h"// unit + })}, + {std::make_shared<signal_t> (signal_t{ + "Rlative.Speed.Rear.Axle1.Right.Wheel",// generic_name + 40,// bit_position + 8,// bit_size + 0.0625000f,// factor + -7.81250f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h"// unit + })}, + {std::make_shared<signal_t> (signal_t{ + "Rlative.Speed.Rear.Axle2.Right.Wheel",// generic_name + 56,// bit_position + 8,// bit_size + 0.0625000f,// factor + -7.81250f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h"// unit + })} + } // end signals vector + })} // end message_definition entry +, {std::make_shared<message_definition_t>(message_definition_t{"j1939",65253,"HOURS",8,false,message_format_t::J1939,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared<signal_t> (signal_t{ - "EngTotalHoursOfOperation",// generic_name + "Eng.Total.Hours.Of.Operation",// generic_name 0,// bit_position 32,// bit_size 0.0500000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -463,15 +811,14 @@ application_t::application_t() std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "hr",// unit - "Accumulated time of operation of engine."// comment + "hr"// unit })}, {std::make_shared<signal_t> (signal_t{ - "EngTotalRevolutions",// generic_name + "Eng.Total.Revolutions",// generic_name 32,// bit_position 32,// bit_size 1000.00f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -486,21 +833,18 @@ application_t::application_t() std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "r",// unit - "Accumulated number of revolutions of engine crankshaft during its operation."// comment + "r"// unit })} } // end signals vector - })}, // end message_definition entry - - - {std::make_shared<message_definition_t>(message_definition_t{"j1939",65262,0,message_format_t::J1939,frequency_clock_t(5.00000f),true,8, + })} // end message_definition entry +, {std::make_shared<message_definition_t>(message_definition_t{"j1939",65262,"ET1",8,false,message_format_t::J1939,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared<signal_t> (signal_t{ - "EngCoolantTemp",// generic_name + "Eng.Coolant.Temp",// generic_name 0,// bit_position 8,// bit_size 0.0312500f,// factor - -273.000,// offset + -273.000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -515,15 +859,14 @@ application_t::application_t() std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "deg C",// unit - "Temperature of liquid found in engine cooling system."// comment + "deg C"// unit })}, {std::make_shared<signal_t> (signal_t{ - "EngFuelTemp1",// generic_name + "Eng.Fuel.Temp1",// generic_name 8,// bit_position 8,// bit_size 1.00000f,// factor - -40.0000,// offset + -40.0000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -538,15 +881,14 @@ application_t::application_t() std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "deg C",// unit - "Temperature of fuel (or gas) passing through the first fuel control system."// comment + "deg C"// unit })}, {std::make_shared<signal_t> (signal_t{ - "EngIntercoolerTemp",// generic_name + "Eng.Intercooler.Temp",// generic_name 48,// bit_position 8,// bit_size 1.00000f,// factor - -40.0000,// offset + -40.0000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -561,15 +903,14 @@ application_t::application_t() std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "deg C",// unit - "Temperature of liquid found in the intercooler located after the turbocharger."// comment + "deg C"// unit })}, {std::make_shared<signal_t> (signal_t{ - "EngIntercoolerThermostatOpening",// generic_name + "Eng.Intercooler.Thermostat.Opening",// generic_name 56,// bit_position 8,// bit_size 0.400000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -584,15 +925,14 @@ application_t::application_t() std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "%",// unit - "The current position of the thermostat used to regulate the temperature of the engine intercooler."// comment + "%"// unit })}, {std::make_shared<signal_t> (signal_t{ - "EngOilTemp1",// generic_name + "Eng.Oil.Temp1",// generic_name 16,// bit_position 16,// bit_size 0.0312500f,// factor - -273.000,// offset + -273.000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -607,15 +947,14 @@ application_t::application_t() std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "deg C",// unit - "Temperature of the engine lubricant."// comment + "deg C"// unit })}, {std::make_shared<signal_t> (signal_t{ - "EngTurboOilTemp",// generic_name + "Eng.Turbo.Oil.Temp",// generic_name 32,// bit_position 16,// bit_size 0.0312500f,// factor - -273.000,// offset + -273.000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -630,8 +969,7 @@ application_t::application_t() std::make_pair<bool, int>(false, 0),// multiplex 0,// is_big_endian 0,// is_signed - "deg C",// unit - "Temperature of the turbocharger lubricant."// comment + "deg C"// unit })} } // end signals vector })} // end message_definition entry diff --git a/examples/j1939/j1939_parse.json b/examples/j1939/j1939_parse.json index fd4c3fc2..a5f8bcbc 100644 --- a/examples/j1939/j1939_parse.json +++ b/examples/j1939/j1939_parse.json @@ -11,10 +11,12 @@ "length": 8, "name": "ETC1", "bus" : "j1939", + "is_fd" : false, + "is_extended": false, "is_j1939" : true, "signals" : { - "TrnsTrqueConverterLockupEngaged" : { - "generic_name": "TrnsTrqueConverterLockupEngaged", + "Trns.Trque.Converter.Lockup.Engaged" : { + "generic_name": "Trns.Trque.Converter.Lockup.Engaged", "bit_position": 2, "bit_size": 2, "factor": 1, @@ -22,6 +24,7 @@ "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], @@ -29,8 +32,8 @@ "NotAvailable": [3] } }, - "TrnsTrqCnvrtrLckpTrnstnInPrcess" : { - "generic_name": "TrnsTrqCnvrtrLckpTrnstnInPrcess", + "Trns.Trq.Cnvrtr.Lckp.Trnstn.In.Prcess" : { + "generic_name": "Trns.Trq.Cnvrtr.Lckp.Trnstn.In.Prcess", "bit_position": 6, "bit_size": 2, "factor": 1, @@ -38,6 +41,7 @@ "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], @@ -45,18 +49,19 @@ "NotAvailable": [3] } }, - "SrcAddrssOfCtrllngDvcFrTrnsCntrl" : { - "generic_name": "SrcAddrssOfCtrllngDvcFrTrnsCntrl", + "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 + "is_signed": false, + "writable" : true }, - "MomentaryEngMaxPowerEnable" : { - "generic_name": "MomentaryEngMaxPowerEnable", + "Momentary.Eng.Max.Power.Enable" : { + "generic_name": "Momentary.Eng.Max.Power.Enable", "bit_position": 36, "bit_size": 2, "factor": 1, @@ -64,6 +69,7 @@ "comment": "Momentarily Requesting highest torque map from the engine control", "is_big_endian": false, "is_signed": false, + "writable" : true, "states": { "notRqingMaxPowerAvailable": [0], "mmntarilyRqingMaxPowerAvailable": [1], @@ -71,8 +77,8 @@ "notAvailable": [3] } }, - "TransInputShaftSpeed" : { - "generic_name": "TransInputShaftSpeed", + "Trans.Input.Shaft.Speed" : { + "generic_name": "Trans.Input.Shaft.Speed", "bit_position": 40, "bit_size": 16, "factor": 0.125, @@ -80,10 +86,11 @@ "comment": "Rotational velocity of the primary shaft transferring power into the transmission.", "unit": "rpm", "is_big_endian": false, - "is_signed": false + "is_signed": false, + "writable" : true }, - "ProgressiveShiftDisable" : { - "generic_name": "ProgressiveShiftDisable", + "Progressive.Shift.Disable" : { + "generic_name": "Progressive.Shift.Disable", "bit_position": 34, "bit_size": 2, "factor": 1, @@ -91,6 +98,7 @@ "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], @@ -98,8 +106,8 @@ "TakeNoAction": [3] } }, - "EngMomentaryOverspeedEnable" : { - "generic_name": "EngMomentaryOverspeedEnable", + "Eng.Momentary.Overspeed.Enable" : { + "generic_name": "Eng.Momentary.Overspeed.Enable", "bit_position": 32, "bit_size": 2, "factor": 1, @@ -107,6 +115,7 @@ "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], @@ -114,8 +123,8 @@ "TakeNoAction": [3] } }, - "PercentClutchSlip" : { - "generic_name": "PercentClutchSlip", + "Percent.Clutch.Slip" : { + "generic_name": "Percent.Clutch.Slip", "bit_position": 24, "bit_size": 8, "factor": 0.4, @@ -123,10 +132,11 @@ "comment": "Parameter which represents the ratio of input shaft speed to current engine speed (in percent).", "unit": "%", "is_big_endian": false, - "is_signed": false + "is_signed": false, + "writable" : true }, - "TransOutputShaftSpeed" : { - "generic_name": "TransOutputShaftSpeed", + "Trans.Output.Shaft.Speed" : { + "generic_name": "Trans.Output.Shaft.Speed", "bit_position": 8, "bit_size": 16, "factor": 0.125, @@ -134,10 +144,11 @@ "comment": "Calculated speed of the transmission output shaft.", "unit": "rpm", "is_big_endian": false, - "is_signed": false + "is_signed": false, + "writable" : true }, - "TransShiftInProcess" : { - "generic_name": "TransShiftInProcess", + "Trans.Shift.In.Process" : { + "generic_name": "Trans.Shift.In.Process", "bit_position": 4, "bit_size": 2, "factor": 1, @@ -145,6 +156,7 @@ "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], @@ -152,8 +164,8 @@ "NotAvailable": [3] } }, - "TransDrivelineEngaged" : { - "generic_name": "TransDrivelineEngaged", + "Trans.Driveline.Engaged" : { + "generic_name": "Trans.Driveline.Engaged", "bit_position": 0, "bit_size": 2, "factor": 1, @@ -161,6 +173,7 @@ "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], @@ -175,10 +188,12 @@ "length": 8, "name": "EEC1", "bus" : "j1939", + "is_fd" : false, + "is_extended": false, "is_j1939" : true, "signals" : { - "SrcAddrssOfCtrllngDvcFrEngCntrl" : { - "generic_name": "SrcAddrssOfCtrllngDvcFrEngCntrl", + "Src.AddrssOf.Ctrllng.Dvc.Fr.Eng.Cntrl" : { + "generic_name": "Src.AddrssOf.Ctrllng.Dvc.Fr.Eng.Cntrl", "bit_position": 40, "bit_size": 8, "factor": 1, @@ -187,8 +202,8 @@ "is_big_endian": false, "is_signed": false }, - "ActlEngPrcntTrqueHighResolution" : { - "generic_name": "ActlEngPrcntTrqueHighResolution", + "Actl.Eng.Prcnt.Trque.High.Resolution" : { + "generic_name": "Actl.Eng.Prcnt.Trque.High.Resolution", "bit_position": 4, "bit_size": 4, "factor": 0.125, @@ -204,8 +219,8 @@ "1111NotAvailable": [8] } }, - "EngDemandPercentTorque" : { - "generic_name": "EngDemandPercentTorque", + "Eng.Demand.Percent.Torque" : { + "generic_name": "Eng.Demand.Percent.Torque", "bit_position": 56, "bit_size": 8, "factor": 1, @@ -215,8 +230,8 @@ "is_big_endian": false, "is_signed": false }, - "EngStarterMode" : { - "generic_name": "EngStarterMode", + "Eng.Starter.Mode" : { + "generic_name": "Eng.Starter.Mode", "bit_position": 48, "bit_size": 4, "factor": 1, @@ -240,8 +255,8 @@ "notAvailable": [15] } }, - "EngSpeed" : { - "generic_name": "EngSpeed", + "Eng.Speed" : { + "generic_name": "Eng.Speed", "bit_position": 24, "bit_size": 16, "factor": 0.125, @@ -251,8 +266,8 @@ "is_big_endian": false, "is_signed": false }, - "ActualEngPercentTorque" : { - "generic_name": "ActualEngPercentTorque", + "Actual.Eng.Percent.Torque" : { + "generic_name": "Actual.Eng.Percent.Torque", "bit_position": 16, "bit_size": 8, "factor": 1, @@ -262,8 +277,8 @@ "is_big_endian": false, "is_signed": false }, - "DriversDemandEngPercentTorque" : { - "generic_name": "DriversDemandEngPercentTorque", + "Drivers.Demand.Eng.Percent.Torque" : { + "generic_name": "Drivers.Demand.Eng.Percent.Torque", "bit_position": 8, "bit_size": 8, "factor": 1, @@ -273,8 +288,8 @@ "is_big_endian": false, "is_signed": false }, - "EngTorqueMode" : { - "generic_name": "EngTorqueMode", + "Eng.Torque.Mode" : { + "generic_name": "Eng.Torque.Mode", "bit_position": 0, "bit_size": 4, "factor": 1, @@ -305,10 +320,12 @@ "length": 8, "name": "HOURS", "bus" : "j1939", + "is_fd" : false, + "is_extended": false, "is_j1939" : true, "signals" : { - "EngTotalRevolutions" : { - "generic_name": "EngTotalRevolutions", + "Eng.Total.Revolutions" : { + "generic_name": "Eng.Total.Revolutions", "bit_position": 32, "bit_size": 32, "factor": 1000, @@ -318,8 +335,8 @@ "is_big_endian": false, "is_signed": false }, - "EngTotalHoursOfOperation" : { - "generic_name": "EngTotalHoursOfOperation", + "Eng.Total.Hours.Of.Operation" : { + "generic_name": "Eng.Total.Hours.Of.Operation", "bit_position": 0, "bit_size": 32, "factor": 0.05, @@ -336,10 +353,12 @@ "length": 8, "name": "VDC2", "bus" : "j1939", + "is_fd" : false, + "is_extended": false, "is_j1939" : true, "signals" : { - "SteerWheelAngle" : { - "generic_name": "SteerWheelAngle", + "Steer.Wheel.Angle" : { + "generic_name": "Steer.Wheel.Angle", "bit_position": 0, "bit_size": 16, "factor": 0.0009765625, @@ -349,8 +368,8 @@ "is_big_endian": false, "is_signed": false }, - "LongitudinalAcceleration" : { - "generic_name": "LongitudinalAcceleration", + "Longitudinal.Acceleration" : { + "generic_name": "Longitudinal.Acceleration", "bit_position": 56, "bit_size": 8, "factor": 0.1, @@ -360,8 +379,8 @@ "is_big_endian": false, "is_signed": false }, - "LateralAcceleration" : { - "generic_name": "LateralAcceleration", + "Lateral.Acceleration" : { + "generic_name": "Lateral.Acceleration", "bit_position": 40, "bit_size": 16, "factor": 0.00048828125, @@ -371,8 +390,8 @@ "is_big_endian": false, "is_signed": false }, - "YawRate" : { - "generic_name": "YawRate", + "Yaw.Rate" : { + "generic_name": "Yaw.Rate", "bit_position": 24, "bit_size": 16, "factor": 0.0001220703125, @@ -382,8 +401,8 @@ "is_big_endian": false, "is_signed": false }, - "SteerWheelAngleSensorType" : { - "generic_name": "SteerWheelAngleSensorType", + "Steer.Wheel.Angle.Sensor.Type" : { + "generic_name": "Steer.Wheel.Angle.Sensor.Type", "bit_position": 22, "bit_size": 2, "factor": 1, @@ -398,8 +417,8 @@ "NotAvailable": [3] } }, - "SteerWheelTurnCounter" : { - "generic_name": "SteerWheelTurnCounter", + "Steer.Wheel.Turn.Counter" : { + "generic_name": "Steer.Wheel.Turn.Counter", "bit_position": 16, "bit_size": 6, "factor": 1, @@ -416,10 +435,12 @@ "length": 8, "name": "EBC2", "bus" : "j1939", + "is_fd" : false, + "is_extended": false, "is_j1939" : true, "signals" : { - "RlativeSpeedRearAxle2RightWheel" : { - "generic_name": "RlativeSpeedRearAxle2RightWheel", + "Rlative.Speed.Rear.Axle2.Right.Wheel" : { + "generic_name": "Rlative.Speed.Rear.Axle2.Right.Wheel", "bit_position": 56, "bit_size": 8, "factor": 0.0625, @@ -429,8 +450,8 @@ "is_big_endian": false, "is_signed": false }, - "RelativeSpeedRearAxle2LeftWheel" : { - "generic_name": "RelativeSpeedRearAxle2LeftWheel", + "Relative.Speed.Rear.Axle2.Left.Wheel" : { + "generic_name": "Relative.Speed.Rear.Axle2.Left.Wheel", "bit_position": 48, "bit_size": 8, "factor": 0.0625, @@ -440,8 +461,8 @@ "is_big_endian": false, "is_signed": false }, - "RlativeSpeedRearAxle1RightWheel" : { - "generic_name": "RlativeSpeedRearAxle1RightWheel", + "Rlative.Speed.Rear.Axle1.Right.Wheel" : { + "generic_name": "Rlative.Speed.Rear.Axle1.Right.Wheel", "bit_position": 40, "bit_size": 8, "factor": 0.0625, @@ -451,8 +472,8 @@ "is_big_endian": false, "is_signed": false }, - "RelativeSpeedRearAxle1LeftWheel" : { - "generic_name": "RelativeSpeedRearAxle1LeftWheel", + "Relative.Speed.Rear.Axle1.Left.Wheel" : { + "generic_name": "Relative.Speed.Rear.Axle1.Left.Wheel", "bit_position": 32, "bit_size": 8, "factor": 0.0625, @@ -462,8 +483,8 @@ "is_big_endian": false, "is_signed": false }, - "RlativeSpeedFrontAxleRightWheel" : { - "generic_name": "RlativeSpeedFrontAxleRightWheel", + "Rlative.Speed.Front.Axle.Right.Wheel" : { + "generic_name": "Rlative.Speed.Front.Axle.Right.Wheel", "bit_position": 24, "bit_size": 8, "factor": 0.0625, @@ -473,8 +494,8 @@ "is_big_endian": false, "is_signed": false }, - "RelativeSpeedFrontAxleLeftWheel" : { - "generic_name": "RelativeSpeedFrontAxleLeftWheel", + "Relative.Speed.Front.Axle.Left.Wheel" : { + "generic_name": "Relative.Speed.Front.Axle.Left.Wheel", "bit_position": 16, "bit_size": 8, "factor": 0.0625, @@ -484,8 +505,8 @@ "is_big_endian": false, "is_signed": false }, - "FrontAxleSpeed" : { - "generic_name": "FrontAxleSpeed", + "Front.Axle.Speed" : { + "generic_name": "Front.Axle.Speed", "bit_position": 0, "bit_size": 16, "factor": 0.00390625, @@ -502,10 +523,12 @@ "length": 8, "name": "ET1", "bus" : "j1939", + "is_fd" : false, + "is_extended": false, "is_j1939" : true, "signals" : { - "EngFuelTemp1" : { - "generic_name": "EngFuelTemp1", + "Eng.Fuel.Temp1" : { + "generic_name": "Eng.Fuel.Temp1", "bit_position": 8, "bit_size": 8, "factor": 1, @@ -515,8 +538,8 @@ "is_big_endian": false, "is_signed": false }, - "EngIntercoolerThermostatOpening" : { - "generic_name": "EngIntercoolerThermostatOpening", + "Eng.Intercooler.Thermostat.Opening" : { + "generic_name": "Eng.Intercooler.Thermostat.Opening", "bit_position": 56, "bit_size": 8, "factor": 0.4, @@ -526,8 +549,8 @@ "is_big_endian": false, "is_signed": false }, - "EngIntercoolerTemp" : { - "generic_name": "EngIntercoolerTemp", + "Eng.Intercooler.Temp" : { + "generic_name": "Eng.Intercooler.Temp", "bit_position": 48, "bit_size": 8, "factor": 1, @@ -537,8 +560,8 @@ "is_big_endian": false, "is_signed": false }, - "EngTurboOilTemp" : { - "generic_name": "EngTurboOilTemp", + "Eng.Turbo.Oil.Temp" : { + "generic_name": "Eng.Turbo.Oil.Temp", "bit_position": 32, "bit_size": 16, "factor": 0.03125, @@ -548,8 +571,8 @@ "is_big_endian": false, "is_signed": false }, - "EngOilTemp1" : { - "generic_name": "EngOilTemp1", + "Eng.Oil.Temp1" : { + "generic_name": "Eng.Oil.Temp1", "bit_position": 16, "bit_size": 16, "factor": 0.03125, @@ -559,8 +582,8 @@ "is_big_endian": false, "is_signed": false }, - "EngCoolantTemp" : { - "generic_name": "EngCoolantTemp", + "Eng.Coolant.Temp" : { + "generic_name": "Eng.Coolant.Temp", "bit_position": 0, "bit_size": 8, "factor": 0.03125, |