From 006598ee46a227f52bcac7be172cd45a8a364aff Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Tue, 26 Nov 2019 16:18:26 +0100 Subject: Update examples and can_samples Update of examples for new features (is_fd,is_extended,is_j1939). Bug-AGL: SPEC-2386 Bug-AGL: SPEC-2976 Signed-off-by: Arthur Guyader Change-Id: I8c3afbafdde4f5818d73c0e71a3b7e47fb7d8fc6 Signed-off-by: Romain Forlot --- examples/agl-vcar/application-generated.cpp | 50 +- examples/agl-vcar/signals.json | 18 + examples/basic/application-generated.cpp | 14 +- examples/basic/signals.json | 3 + examples/engine/application-generated.cpp | 18 +- examples/engine/signals.json | 9 + examples/hvac/application-generated.cpp | 10 +- examples/hvac/signals.json | 3 + examples/j1939/application-generated.cpp | 598 ++++++-- examples/j1939/j1939_parse.json | 191 +-- examples/tests/application-generated.cpp | 1691 +++++++++++++++++++++++ examples/toyota/auris/application-generated.cpp | 40 +- examples/toyota/auris/signals.json | 15 + 13 files changed, 2380 insertions(+), 280 deletions(-) create mode 100644 examples/tests/application-generated.cpp (limited to 'examples') diff --git a/examples/agl-vcar/application-generated.cpp b/examples/agl-vcar/application-generated.cpp index 38d26cc1..35d847b7 100644 --- a/examples/agl-vcar/application-generated.cpp +++ b/examples/agl-vcar/application-generated.cpp @@ -7,14 +7,14 @@ application_t::application_t() , message_set_{ {std::make_shared(message_set_t{0,"AGL Virtual Car", { // beginning message_definition_ vector - {std::make_shared(message_definition_t{"ls",0x30,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, + {std::make_shared(message_definition_t{"ls",0x30,"",0,false,message_format_t::EXTENDED,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (signal_t{ "hvac.fan.speed",// generic_name 32,// bit_position 8,// bit_size 23.5294f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -36,7 +36,7 @@ application_t::application_t() 0,// 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 @@ -58,7 +58,7 @@ application_t::application_t() 8,// 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 @@ -80,7 +80,7 @@ application_t::application_t() 16,// 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 @@ -99,14 +99,14 @@ application_t::application_t() })} } // end signals vector })} // end message_definition entry -, {std::make_shared(message_definition_t{"hs",0x3D9,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, +, {std::make_shared(message_definition_t{"hs",0x3D9,"",0,true,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (signal_t{ "engine.speed",// generic_name 16,// bit_position 16,// bit_size 0.250000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -128,7 +128,7 @@ application_t::application_t() 55,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -150,7 +150,7 @@ application_t::application_t() 8,// bit_position 8,// bit_size 0.392157f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -169,14 +169,14 @@ application_t::application_t() })} } // end signals vector })} // end message_definition entry -, {std::make_shared(message_definition_t{"hs",0x3E9,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, +, {std::make_shared(message_definition_t{"hs",0x3E9,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (signal_t{ "vehicle.average.speed",// generic_name 0,// bit_position 15,// bit_size 0.0156250f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -195,14 +195,14 @@ application_t::application_t() })} } // end signals vector })} // end message_definition entry -, {std::make_shared(message_definition_t{"hs",0x4D1,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, +, {std::make_shared(message_definition_t{"hs",0x4D1,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (signal_t{ "engine.oil.temp",// generic_name 16,// 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 @@ -224,7 +224,7 @@ application_t::application_t() 7,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -243,14 +243,14 @@ application_t::application_t() })} } // end signals vector })} // end message_definition entry -, {std::make_shared(message_definition_t{"hs",0x620,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, +, {std::make_shared(message_definition_t{"hs",0x620,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (signal_t{ "doors.boot.open",// generic_name 47,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -272,7 +272,7 @@ application_t::application_t() 43,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -294,7 +294,7 @@ application_t::application_t() 44,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -316,7 +316,7 @@ application_t::application_t() 46,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -338,7 +338,7 @@ application_t::application_t() 45,// bit_position 4,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -357,14 +357,14 @@ application_t::application_t() })} } // end signals vector })} // end message_definition entry -, {std::make_shared(message_definition_t{"hs",0x799,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, +, {std::make_shared(message_definition_t{"hs",0x799,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (signal_t{ "windows.front_left.open",// generic_name 43,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -386,7 +386,7 @@ application_t::application_t() 44,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -408,7 +408,7 @@ application_t::application_t() 46,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -430,7 +430,7 @@ application_t::application_t() 45,// bit_position 4,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency diff --git a/examples/agl-vcar/signals.json b/examples/agl-vcar/signals.json index 8d64b52d..679ab68e 100644 --- a/examples/agl-vcar/signals.json +++ b/examples/agl-vcar/signals.json @@ -7,6 +7,9 @@ "messages": { "0x620": { "bus": "hs", + "is_fd" : false, + "is_extended": false, + "is_j1939" : false, "signals": { "doors.driver.open": { "generic_name": "doors.front_left.open", @@ -47,6 +50,9 @@ }, "0x799": { "bus": "hs", + "is_fd" : false, + "is_extended": false, + "is_j1939" : false, "signals": { "windows.driver.open": { "generic_name": "windows.front_left.open", @@ -80,6 +86,9 @@ }, "0x3D9": { "bus": "hs", + "is_fd" : true, + "is_extended": false, + "is_j1939" : false, "signals": { "PT_FuelLevelPct": { "generic_name": "fuel.level", @@ -107,6 +116,9 @@ }, "0x4D1": { "bus": "hs", + "is_fd" : false, + "is_extended": false, + "is_j1939" : false, "signals": { "PT_EngineOilTempHigh": { "generic_name": "engine.oil.temp.high", @@ -127,6 +139,9 @@ }, "0x3E9": { "bus": "hs", + "is_fd" : false, + "is_extended": false, + "is_j1939" : false, "signals": { "PT_VehicleAvgSpeed": { "generic_name": "vehicle.average.speed", @@ -139,6 +154,9 @@ }, "0x30": { "bus": "ls", + "is_fd" : false, + "is_extended": true, + "is_j1939" : false, "signals": { "LeftTemperature": { "generic_name": "hvac.temperature.left", diff --git a/examples/basic/application-generated.cpp b/examples/basic/application-generated.cpp index e05397ad..19857603 100644 --- a/examples/basic/application-generated.cpp +++ b/examples/basic/application-generated.cpp @@ -34,14 +34,14 @@ application_t::application_t() , message_set_{ {std::make_shared(message_set_t{0,"example", { // beginning message_definition_ vector - {std::make_shared(message_definition_t{"hs",0x128,0,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, + {std::make_shared(message_definition_t{"hs",0x128,"ECM_z_5D2",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (signal_t{ "engine_speed",// generic_name 12,// bit_position 8,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(15.0000f),// frequency @@ -63,7 +63,7 @@ application_t::application_t() 41,// bit_position 3,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -78,7 +78,7 @@ application_t::application_t() {3,"THIRD"} },// states false,// writable - nullptr,// decoder + decoder_t::decode_state,// decoder nullptr,// encoder false,// received std::make_pair(false, 0),// multiplex @@ -91,7 +91,7 @@ application_t::application_t() 52,// bit_position 12,// bit_size 0.153920f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -113,7 +113,7 @@ application_t::application_t() 44,// bit_position 12,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -135,7 +135,7 @@ application_t::application_t() 52,// bit_position 12,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency diff --git a/examples/basic/signals.json b/examples/basic/signals.json index 8d9a2d24..dc2e346c 100644 --- a/examples/basic/signals.json +++ b/examples/basic/signals.json @@ -27,6 +27,9 @@ "0x128": { "name": "ECM_z_5D2", "bus": "hs", + "is_fd" : false, + "is_extended": false, + "is_j1939" : false, "signals": { "StrAnglAct": { "generic_name": "SteeringWheelAngle", diff --git a/examples/engine/application-generated.cpp b/examples/engine/application-generated.cpp index 3b9ecfde..bc66b5ec 100644 --- a/examples/engine/application-generated.cpp +++ b/examples/engine/application-generated.cpp @@ -7,14 +7,14 @@ application_t::application_t() , message_set_{ {std::make_shared(message_set_t{0,"example", { // beginning message_definition_ vector - {std::make_shared(message_definition_t{"hs",0x3D9,0,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, + {std::make_shared(message_definition_t{"hs",0x3D9,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (signal_t{ "engine.speed",// generic_name 16,// bit_position 16,// bit_size 0.250000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -36,7 +36,7 @@ application_t::application_t() 55,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -58,7 +58,7 @@ application_t::application_t() 8,// bit_position 8,// bit_size 0.392157f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -77,14 +77,14 @@ application_t::application_t() })} } // end signals vector })} // end message_definition entry -, {std::make_shared(message_definition_t{"hs",0x3E9,0,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, +, {std::make_shared(message_definition_t{"hs",0x3E9,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (signal_t{ "vehicle.average.speed",// generic_name 0,// bit_position 15,// bit_size 0.0156250f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -103,14 +103,14 @@ application_t::application_t() })} } // end signals vector })} // end message_definition entry -, {std::make_shared(message_definition_t{"hs",0x4D1,0,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, +, {std::make_shared(message_definition_t{"hs",0x4D1,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (signal_t{ "engine.oil.temp",// generic_name 16,// 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 @@ -132,7 +132,7 @@ application_t::application_t() 7,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency diff --git a/examples/engine/signals.json b/examples/engine/signals.json index 83ed38e2..a64fa138 100644 --- a/examples/engine/signals.json +++ b/examples/engine/signals.json @@ -7,6 +7,9 @@ "messages": { "0x3D9": { "bus": "hs", + "is_fd" : false, + "is_extended": false, + "is_j1939" : false, "signals": { "PT_FuelLevelPct": { "generic_name": "fuel.level", @@ -34,6 +37,9 @@ }, "0x4D1": { "bus": "hs", + "is_fd" : false, + "is_extended": false, + "is_j1939" : false, "signals": { "PT_EngineOilTempHigh": { "generic_name": "engine.oil.temp.high", @@ -54,6 +60,9 @@ }, "0x3E9": { "bus": "hs", + "is_fd" : false, + "is_extended": false, + "is_j1939" : false, "signals": { "PT_VehicleAvgSpeed": { "generic_name": "vehicle.average.speed", diff --git a/examples/hvac/application-generated.cpp b/examples/hvac/application-generated.cpp index de8f2240..a716654e 100644 --- a/examples/hvac/application-generated.cpp +++ b/examples/hvac/application-generated.cpp @@ -7,14 +7,14 @@ application_t::application_t() , message_set_{ {std::make_shared(message_set_t{0,"example", { // beginning message_definition_ vector - {std::make_shared(message_definition_t{"ls",0x30,0,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, + {std::make_shared(message_definition_t{"ls",0x30,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (signal_t{ "hvac.fan.speed",// generic_name 32,// bit_position 8,// bit_size 23.5294f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -36,7 +36,7 @@ application_t::application_t() 0,// 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 @@ -58,7 +58,7 @@ application_t::application_t() 8,// 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 @@ -80,7 +80,7 @@ application_t::application_t() 16,// 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 diff --git a/examples/hvac/signals.json b/examples/hvac/signals.json index 81ad64b8..dbe4cf7d 100644 --- a/examples/hvac/signals.json +++ b/examples/hvac/signals.json @@ -7,6 +7,9 @@ "messages": { "0x30": { "bus": "ls", + "is_fd" : false, + "is_extended": false, + "is_j1939" : false, "signals": { "LeftTemperature": { "generic_name": "hvac.temperature.left", 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{0,"J1939", + {std::make_shared(message_set_t{0,"Virtual J1939", { // beginning message_definition_ vector - - {std::make_shared(message_definition_t{"j1939",61442,0,message_format_t::J1939,frequency_clock_t(5.00000f),true,8, + {std::make_shared(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{ - "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(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{ - "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(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{ - "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(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{ - "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(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{ - "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(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{ - "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(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{ - "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(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{ - "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(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{ - "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(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{ - "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(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{ - "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(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + ""// unit + })} + } // end signals vector + })} // end message_definition entry +, {std::make_shared(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{ + "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(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "%"// unit + })}, + {std::make_shared (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(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "%"// unit + })}, + {std::make_shared (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(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{ + "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(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "%"// unit + })}, + {std::make_shared (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(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "rpm"// unit + })}, + {std::make_shared (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(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + ""// unit + })}, + {std::make_shared (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(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + ""// unit + })}, + {std::make_shared (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(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + ""// unit })} } // end signals vector - })}, // end message_definition entry - - {std::make_shared(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{"j1939",61449,"VDC2",8,false,message_format_t::J1939,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (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(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{ - "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(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{ - "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(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{ - "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(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{ - "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(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{ - "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(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{"j1939",65253,0,message_format_t::J1939,frequency_clock_t(5.00000f),true,8, + })} // end message_definition entry +, {std::make_shared(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{ + "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(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h"// unit + })}, + {std::make_shared (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(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h"// unit + })}, + {std::make_shared (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(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h"// unit + })}, + {std::make_shared (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(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h"// unit + })}, + {std::make_shared (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(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h"// unit + })}, + {std::make_shared (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(false, 0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h"// unit + })}, + {std::make_shared (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(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{"j1939",65253,"HOURS",8,false,message_format_t::J1939,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (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(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{ - "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(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{"j1939",65262,0,message_format_t::J1939,frequency_clock_t(5.00000f),true,8, + })} // end message_definition entry +, {std::make_shared(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{ - "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(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{ - "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(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{ - "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(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{ - "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(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{ - "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(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{ - "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(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, diff --git a/examples/tests/application-generated.cpp b/examples/tests/application-generated.cpp new file mode 100644 index 00000000..6abb4851 --- /dev/null +++ b/examples/tests/application-generated.cpp @@ -0,0 +1,1691 @@ +#include "application.hpp" +#include "../can/can-decoder.hpp" +#include "../can/can-encoder.hpp" + +application_t::application_t() + : can_bus_manager_{utils::config_parser_t{"/etc/dev-mapping.conf"}} + , message_set_{ + {std::make_shared(message_set_t{0,"AGL Virtual Car", + { // beginning message_definition_ vector + {std::make_shared(message_definition_t{"ls",0x30,"",0,false,message_format_t::EXTENDED,frequency_clock_t(5.00000f),true, { // beginning signals vector + {std::make_shared (signal_t{ + "hvac.fan.speed",// generic_name + 32,// bit_position + 8,// bit_size + 23.5294f,// 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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "hvac.temperature.left",// generic_name + 0,// 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 + true,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "hvac.temperature.right",// generic_name + 8,// 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 + true,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "hvac.temperature.average",// generic_name + 16,// 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 + true,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })} + } // end signals vector + })} // end message_definition entry +, {std::make_shared(message_definition_t{"hs",0x3D9,"",0,true,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector + {std::make_shared (signal_t{ + "engine.speed",// generic_name + 16,// bit_position + 16,// bit_size + 0.250000f,// 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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "fuel.level.low",// generic_name + 55,// bit_position + 1,// 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 + decoder_t::decode_boolean,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "fuel.level",// generic_name + 8,// bit_position + 8,// bit_size + 0.392157f,// 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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })} + } // end signals vector + })} // end message_definition entry +, {std::make_shared(message_definition_t{"hs",0x3E9,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector + {std::make_shared (signal_t{ + "vehicle.average.speed",// generic_name + 0,// bit_position + 15,// bit_size + 0.0156250f,// 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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })} + } // end signals vector + })} // end message_definition entry +, {std::make_shared(message_definition_t{"hs",0x4D1,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector + {std::make_shared (signal_t{ + "engine.oil.temp",// generic_name + 16,// 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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "engine.oil.temp.high",// generic_name + 7,// bit_position + 1,// 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 + decoder_t::decode_boolean,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })} + } // end signals vector + })} // end message_definition entry +, {std::make_shared(message_definition_t{"hs",0x620,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector + {std::make_shared (signal_t{ + "doors.boot.open",// generic_name + 47,// bit_position + 1,// 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 + decoder_t::decode_boolean,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "doors.front_left.open",// generic_name + 43,// bit_position + 1,// 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 + decoder_t::decode_boolean,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "doors.front_right.open",// generic_name + 44,// bit_position + 1,// 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 + decoder_t::decode_boolean,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "doors.rear_left.open",// generic_name + 46,// bit_position + 1,// 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 + decoder_t::decode_boolean,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "doors.rear_right.open",// generic_name + 45,// 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 + { + },// states + false,// writable + decoder_t::decode_boolean,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })} + } // end signals vector + })} // end message_definition entry +, {std::make_shared(message_definition_t{"hs",0x799,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector + {std::make_shared (signal_t{ + "windows.front_left.open",// generic_name + 43,// bit_position + 1,// 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 + decoder_t::decode_boolean,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "windows.front_right.open",// generic_name + 44,// bit_position + 1,// 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 + decoder_t::decode_boolean,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "windows.rear_left.open",// generic_name + 46,// bit_position + 1,// 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 + decoder_t::decode_boolean,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "windows.rear_right.open",// generic_name + 45,// 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 + { + },// states + false,// writable + decoder_t::decode_boolean,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })} + } // end signals vector + })} // end message_definition entry +, {std::make_shared(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{ + "Eng.Momentary.Overspeed.Enable",// generic_name + 32,// bit_position + 2,// 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 + { + {0,"MomentaryEngOverspeedIsDisabled"}, + {1,"MomentaryEngOverspeedIsEnabled"}, + {2,"Reserved"}, + {3,"TakeNoAction"} + },// states + true,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "Momentary.Eng.Max.Power.Enable",// generic_name + 36,// bit_position + 2,// 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 + { + {2,"fault"}, + {1,"mmntarilyRqingMaxPowerAvailable"}, + {3,"notAvailable"}, + {0,"notRqingMaxPowerAvailable"} + },// states + true,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "Percent.Clutch.Slip",// generic_name + 24,// bit_position + 8,// bit_size + 0.400000f,// factor + 0.00000f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + true,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "%",// unit + })}, + {std::make_shared (signal_t{ + "Progressive.Shift.Disable",// generic_name + 34,// bit_position + 2,// 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 + { + {1,"ProgressiveShiftIsDisabled"}, + {0,"ProgressiveShiftIsNotDisabled"}, + {2,"Reserved"}, + {3,"TakeNoAction"} + },// states + true,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "Src.Addrss.Of.Ctrllng.Dvc.Fr.Trns.Cntrl",// generic_name + 56,// 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 + true,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "Trans.Driveline.Engaged",// generic_name + 0,// bit_position + 2,// 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 + { + {0,"DrivelineDisengaged"}, + {1,"DrivelineEngaged"}, + {2,"Error"}, + {3,"NotAvailable"} + },// states + true,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "Trans.Input.Shaft.Speed",// generic_name + 40,// 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 + true,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "rpm",// unit + })}, + {std::make_shared (signal_t{ + "Trans.Output.Shaft.Speed",// generic_name + 8,// 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 + true,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "rpm",// unit + })}, + {std::make_shared (signal_t{ + "Trans.Shift.In.Process",// generic_name + 4,// bit_position + 2,// 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 + { + {2,"Error"}, + {3,"NotAvailable"}, + {1,"ShiftInProcess"}, + {0,"ShiftIsNotInProcess"} + },// states + true,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "Trns.Trq.Cnvrtr.Lckp.Trnstn.In.Prcess",// generic_name + 6,// bit_position + 2,// 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 + { + {2,"Error"}, + {3,"NotAvailable"}, + {1,"TransitionIsInProcess"}, + {0,"TransitionIsNotInProcess"} + },// states + true,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "Trns.Trque.Converter.Lockup.Engaged",// generic_name + 2,// bit_position + 2,// 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 + { + {2,"Error"}, + {3,"NotAvailable"}, + {0,"TorqueConverterLockupDisengaged"}, + {1,"TorqueConverterLockupEngaged"} + },// states + true,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })} + } // end signals vector + })} // end message_definition entry +, {std::make_shared(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{ + "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 + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "%",// unit + })}, + {std::make_shared (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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "%",// unit + })}, + {std::make_shared (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 + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "%",// unit + })}, + {std::make_shared (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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "%",// unit + })}, + {std::make_shared (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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "rpm",// unit + })}, + {std::make_shared (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 + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (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 + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })} + } // end signals vector + })} // end message_definition entry +, {std::make_shared(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{ + "Lateral.Acceleration",// generic_name + 40,// bit_position + 16,// bit_size + 0.000488281f,// factor + -15.6870f,// 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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "m/s/s",// unit + })}, + {std::make_shared (signal_t{ + "Longitudinal.Acceleration",// generic_name + 56,// bit_position + 8,// bit_size + 0.100000f,// factor + -12.5000f,// 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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "m/s/s",// unit + })}, + {std::make_shared (signal_t{ + "Steer.Wheel.Angle",// generic_name + 0,// bit_position + 16,// bit_size + 0.000976562f,// factor + -31.3740f,// 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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "rad",// unit + })}, + {std::make_shared (signal_t{ + "Steer.Wheel.Angle.Sensor.Type",// generic_name + 22,// bit_position + 2,// 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 + { + {1,"AbsMeasuringPrinciple"}, + {3,"NotAvailable"}, + {0,"RelativeMeasuringPrinciple"}, + {2,"Reserved"} + },// states + false,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "",// unit + })}, + {std::make_shared (signal_t{ + "Steer.Wheel.Turn.Counter",// generic_name + 16,// bit_position + 6,// bit_size + 1.00000f,// factor + -32.0000f,// 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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "turns",// unit + })}, + {std::make_shared (signal_t{ + "Yaw.Rate",// generic_name + 24,// bit_position + 16,// bit_size + 0.000122070f,// factor + -3.92000f,// 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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "rad/s",// unit + })} + } // end signals vector + })} // end message_definition entry +, {std::make_shared(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{ + "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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h",// unit + })}, + {std::make_shared (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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h",// unit + })}, + {std::make_shared (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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h",// unit + })}, + {std::make_shared (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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h",// unit + })}, + {std::make_shared (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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h",// unit + })}, + {std::make_shared (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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "km/h",// unit + })}, + {std::make_shared (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(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{"j1939",65253,"HOURS",8,false,message_format_t::J1939,frequency_clock_t(5.00000f),true, { // beginning signals vector + {std::make_shared (signal_t{ + "Eng.Total.Hours.Of.Operation",// generic_name + 0,// bit_position + 32,// bit_size + 0.0500000f,// 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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "hr",// unit + })}, + {std::make_shared (signal_t{ + "Eng.Total.Revolutions",// generic_name + 32,// bit_position + 32,// bit_size + 1000.00f,// 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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "r",// unit + })} + } // end signals vector + })} // end message_definition entry +, {std::make_shared(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{ + "Eng.Coolant.Temp",// generic_name + 0,// bit_position + 8,// bit_size + 0.0312500f,// factor + -273.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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "deg C",// unit + })}, + {std::make_shared (signal_t{ + "Eng.Fuel.Temp1",// generic_name + 8,// bit_position + 8,// bit_size + 1.00000f,// factor + -40.0000f,// 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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "deg C",// unit + })}, + {std::make_shared (signal_t{ + "Eng.Intercooler.Temp",// generic_name + 48,// bit_position + 8,// bit_size + 1.00000f,// factor + -40.0000f,// 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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "deg C",// unit + })}, + {std::make_shared (signal_t{ + "Eng.Intercooler.Thermostat.Opening",// generic_name + 56,// bit_position + 8,// bit_size + 0.400000f,// 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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "%",// unit + })}, + {std::make_shared (signal_t{ + "Eng.Oil.Temp1",// generic_name + 16,// bit_position + 16,// bit_size + 0.0312500f,// factor + -273.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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "deg C",// unit + })}, + {std::make_shared (signal_t{ + "Eng.Turbo.Oil.Temp",// generic_name + 32,// bit_position + 16,// bit_size + 0.0312500f,// factor + -273.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(false,0),// multiplex + 0,// is_big_endian + 0,// is_signed + "deg C",// unit + })} + } // end signals vector + })} // end message_definition entry + }, // end message_definition vector + { // beginning diagnostic_messages_ vector + {std::make_shared(diagnostic_message_t{ + 4, + "engine.load", + 0, + 0, + UNIT::INVALID, + 5.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 5, + "engine.coolant.temperature", + 0, + 0, + UNIT::INVALID, + 1.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 10, + "fuel.pressure", + 0, + 0, + UNIT::INVALID, + 1.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 11, + "intake.manifold.pressure", + 0, + 0, + UNIT::INVALID, + 1.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 12, + "engine.speed", + 0, + 0, + UNIT::INVALID, + 5.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 13, + "vehicle.speed", + 0, + 0, + UNIT::INVALID, + 5.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 15, + "intake.air.temperature", + 0, + 0, + UNIT::INVALID, + 1.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 16, + "mass.airflow", + 0, + 0, + UNIT::INVALID, + 5.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 17, + "throttle.position", + 0, + 0, + UNIT::INVALID, + 5.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 31, + "running.time", + 0, + 0, + UNIT::INVALID, + 1.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 45, + "EGR.error", + 0, + 0, + UNIT::INVALID, + 0.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 47, + "fuel.level", + 0, + 0, + UNIT::INVALID, + 1.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 51, + "barometric.pressure", + 0, + 0, + UNIT::INVALID, + 1.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 70, + "ambient.air.temperature", + 0, + 0, + UNIT::INVALID, + 1.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 76, + "commanded.throttle.position", + 0, + 0, + UNIT::INVALID, + 1.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 82, + "ethanol.fuel.percentage", + 0, + 0, + UNIT::INVALID, + 1.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 90, + "accelerator.pedal.position", + 0, + 0, + UNIT::INVALID, + 5.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 91, + "hybrid.battery-pack.remaining.life", + 0, + 0, + UNIT::INVALID, + 5.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 92, + "engine.oil.temperature", + 0, + 0, + UNIT::INVALID, + 1.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 94, + "engine.fuel.rate", + 0, + 0, + UNIT::INVALID, + 1.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} +, {std::make_shared(diagnostic_message_t{ + 99, + "engine.torque", + 0, + 0, + UNIT::INVALID, + 1.00000f, + decoder_t::decode_obd2_response, + nullptr, + true, + false + })} + + } // end diagnostic_messages_ vector + })} // end message_set entry + } // end message_set vector +{ + for(std::shared_ptr cms: message_set_) + { + std::vector> messages_definition = cms->get_messages_definition(); + for(std::shared_ptr cmd : messages_definition) + { + cmd->set_parent(cms); + std::vector> signals = cmd->get_signals(); + for(std::shared_ptr sig: signals) + { + sig->set_parent(cmd); + } + } + + std::vector> diagnostic_messages = cms->get_diagnostic_messages(); + for(std::shared_ptr dm : diagnostic_messages) + { + dm->set_parent(cms); + } + } + } + +const std::string application_t::get_diagnostic_bus() const +{ + return "hs"; +} + + diff --git a/examples/toyota/auris/application-generated.cpp b/examples/toyota/auris/application-generated.cpp index f635e2bd..1d5e946a 100644 --- a/examples/toyota/auris/application-generated.cpp +++ b/examples/toyota/auris/application-generated.cpp @@ -7,14 +7,14 @@ application_t::application_t() , message_set_{ {std::make_shared(message_set_t{0,"example", { // beginning message_definition_ vector - {std::make_shared(message_definition_t{"hs",0x3D9,0,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, + {std::make_shared(message_definition_t{"hs",0x3D9,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (signal_t{ "engine.speed",// generic_name 16,// bit_position 16,// bit_size 0.250000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -36,7 +36,7 @@ application_t::application_t() 55,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -58,7 +58,7 @@ application_t::application_t() 8,// bit_position 8,// bit_size 0.392157f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -77,14 +77,14 @@ application_t::application_t() })} } // end signals vector })} // end message_definition entry -, {std::make_shared(message_definition_t{"hs",0x3E9,0,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, +, {std::make_shared(message_definition_t{"hs",0x3E9,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (signal_t{ "vehicle.average.speed",// generic_name 0,// bit_position 15,// bit_size 0.0156250f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -103,14 +103,14 @@ application_t::application_t() })} } // end signals vector })} // end message_definition entry -, {std::make_shared(message_definition_t{"hs",0x4D1,0,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, +, {std::make_shared(message_definition_t{"hs",0x4D1,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (signal_t{ "engine.oil.temp",// generic_name 16,// 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 @@ -132,7 +132,7 @@ application_t::application_t() 7,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -151,14 +151,14 @@ application_t::application_t() })} } // end signals vector })} // end message_definition entry -, {std::make_shared(message_definition_t{"hs",0x620,0,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, +, {std::make_shared(message_definition_t{"hs",0x620,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (signal_t{ "doors.boot.open",// generic_name 47,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -180,7 +180,7 @@ application_t::application_t() 43,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -202,7 +202,7 @@ application_t::application_t() 44,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -224,7 +224,7 @@ application_t::application_t() 46,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -246,7 +246,7 @@ application_t::application_t() 45,// bit_position 4,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -265,14 +265,14 @@ application_t::application_t() })} } // end signals vector })} // end message_definition entry -, {std::make_shared(message_definition_t{"hs",0x799,0,0,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, +, {std::make_shared(message_definition_t{"hs",0x799,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (signal_t{ "windows.front_left.open",// generic_name 43,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -294,7 +294,7 @@ application_t::application_t() 44,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -316,7 +316,7 @@ application_t::application_t() 46,// bit_position 1,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency @@ -338,7 +338,7 @@ application_t::application_t() 45,// bit_position 4,// bit_size 1.00000f,// factor - 0.00000,// offset + 0.00000f,// offset 0,// min_value 0,// max_value frequency_clock_t(0.00000f),// frequency diff --git a/examples/toyota/auris/signals.json b/examples/toyota/auris/signals.json index c6345ef4..5b726660 100644 --- a/examples/toyota/auris/signals.json +++ b/examples/toyota/auris/signals.json @@ -7,6 +7,9 @@ "messages": { "0x620": { "bus": "hs", + "is_fd" : false, + "is_extended": false, + "is_j1939" : false, "signals": { "doors.driver.open": { "generic_name": "doors.front_left.open", @@ -47,6 +50,9 @@ }, "0x799": { "bus": "hs", + "is_fd" : false, + "is_extended": false, + "is_j1939" : false, "signals": { "windows.driver.open": { "generic_name": "windows.front_left.open", @@ -80,6 +86,9 @@ }, "0x3D9": { "bus": "hs", + "is_fd" : false, + "is_extended": false, + "is_j1939" : false, "signals": { "PT_FuelLevelPct": { "generic_name": "fuel.level", @@ -107,6 +116,9 @@ }, "0x4D1": { "bus": "hs", + "is_fd" : false, + "is_extended": false, + "is_j1939" : false, "signals": { "PT_EngineOilTempHigh": { "generic_name": "engine.oil.temp.high", @@ -127,6 +139,9 @@ }, "0x3E9": { "bus": "hs", + "is_fd" : false, + "is_extended": false, + "is_j1939" : false, "signals": { "PT_VehicleAvgSpeed": { "generic_name": "vehicle.average.speed", -- cgit 1.2.3-korg