1 #include "application.hpp"
2 #include "../can/can-decoder.hpp"
3 #include "../can/can-encoder.hpp"
5 application_t::application_t()
6 : can_bus_manager_{utils::config_parser_t{"/etc/dev-mapping.conf"}}
8 {std::make_shared<message_set_t>(message_set_t{0,"AGL Virtual Car",
9 { // beginning message_definition_ vector
10 {std::make_shared<message_definition_t>(message_definition_t{"ls",0x111,"",16,66,frequency_clock_t(5.00000f),true,
11 { // beginning signals vector
12 {std::make_shared<signal_t> (signal_t{
13 "sig1.1",// generic_name
20 frequency_clock_t(0.00000f),// frequency
22 false,// force_send_changed
29 std::make_pair<bool, int>(false, 0),// multiplex
34 {std::make_shared<signal_t> (signal_t{
35 "sig1.2",// generic_name
42 frequency_clock_t(0.00000f),// frequency
44 false,// force_send_changed
51 std::make_pair<bool, int>(false, 0),// multiplex
56 {std::make_shared<signal_t> (signal_t{
57 "sig2.1",// generic_name
64 frequency_clock_t(0.00000f),// frequency
66 false,// force_send_changed
73 std::make_pair<bool, int>(false, 0),// multiplex
78 {std::make_shared<signal_t> (signal_t{
79 "sig2.2",// generic_name
86 frequency_clock_t(0.00000f),// frequency
88 false,// force_send_changed
95 std::make_pair<bool, int>(false, 0),// multiplex
100 {std::make_shared<signal_t> (signal_t{
101 "sig3.1",// generic_name
108 frequency_clock_t(0.00000f),// frequency
110 false,// force_send_changed
117 std::make_pair<bool, int>(false, 0),// multiplex
122 {std::make_shared<signal_t> (signal_t{
123 "sig3.2",// generic_name
130 frequency_clock_t(0.00000f),// frequency
132 false,// force_send_changed
139 std::make_pair<bool, int>(false, 0),// multiplex
144 {std::make_shared<signal_t> (signal_t{
145 "sig4.1",// generic_name
152 frequency_clock_t(0.00000f),// frequency
154 false,// force_send_changed
161 std::make_pair<bool, int>(false, 0),// multiplex
166 {std::make_shared<signal_t> (signal_t{
167 "sig4.2",// generic_name
174 frequency_clock_t(0.00000f),// frequency
176 false,// force_send_changed
183 std::make_pair<bool, int>(false, 0),// multiplex
188 } // end signals vector
189 })} // end message_definition entry
190 , {std::make_shared<message_definition_t>(message_definition_t{"ls",0x30,"",8,4,frequency_clock_t(5.00000f),true,
191 { // beginning signals vector
192 {std::make_shared<signal_t> (signal_t{
193 "hvac.fan.speed",// generic_name
200 frequency_clock_t(0.00000f),// frequency
202 false,// force_send_changed
209 std::make_pair<bool, int>(false, 0),// multiplex
214 {std::make_shared<signal_t> (signal_t{
215 "hvac.temperature.left",// generic_name
222 frequency_clock_t(0.00000f),// frequency
224 false,// force_send_changed
231 std::make_pair<bool, int>(false, 0),// multiplex
236 {std::make_shared<signal_t> (signal_t{
237 "hvac.temperature.right",// generic_name
244 frequency_clock_t(0.00000f),// frequency
246 false,// force_send_changed
253 std::make_pair<bool, int>(false, 0),// multiplex
258 {std::make_shared<signal_t> (signal_t{
259 "hvac.temperature.average",// generic_name
266 frequency_clock_t(0.00000f),// frequency
268 false,// force_send_changed
275 std::make_pair<bool, int>(false, 0),// multiplex
280 } // end signals vector
281 })} // end message_definition entry
282 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3D9,"",8,2050,frequency_clock_t(5.00000f),true,
283 { // beginning signals vector
284 {std::make_shared<signal_t> (signal_t{
285 "engine.speed",// generic_name
292 frequency_clock_t(0.00000f),// frequency
294 false,// force_send_changed
301 std::make_pair<bool, int>(false, 0),// multiplex
306 {std::make_shared<signal_t> (signal_t{
307 "fuel.level.low",// generic_name
314 frequency_clock_t(0.00000f),// frequency
316 false,// force_send_changed
320 decoder_t::decode_boolean,// decoder
323 std::make_pair<bool, int>(false, 0),// multiplex
328 {std::make_shared<signal_t> (signal_t{
329 "fuel.level",// generic_name
336 frequency_clock_t(0.00000f),// frequency
338 false,// force_send_changed
345 std::make_pair<bool, int>(false, 0),// multiplex
350 } // end signals vector
351 })} // end message_definition entry
352 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3E9,"",8,2,frequency_clock_t(5.00000f),true,
353 { // beginning signals vector
354 {std::make_shared<signal_t> (signal_t{
355 "vehicle.average.speed",// generic_name
362 frequency_clock_t(0.00000f),// frequency
364 false,// force_send_changed
371 std::make_pair<bool, int>(false, 0),// multiplex
376 } // end signals vector
377 })} // end message_definition entry
378 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x4D1,"",8,2,frequency_clock_t(5.00000f),true,
379 { // beginning signals vector
380 {std::make_shared<signal_t> (signal_t{
381 "engine.oil.temp",// generic_name
388 frequency_clock_t(0.00000f),// frequency
390 false,// force_send_changed
397 std::make_pair<bool, int>(false, 0),// multiplex
402 {std::make_shared<signal_t> (signal_t{
403 "engine.oil.temp.high",// generic_name
410 frequency_clock_t(0.00000f),// frequency
412 false,// force_send_changed
416 decoder_t::decode_boolean,// decoder
419 std::make_pair<bool, int>(false, 0),// multiplex
424 } // end signals vector
425 })} // end message_definition entry
426 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x620,"",8,2,frequency_clock_t(5.00000f),true,
427 { // beginning signals vector
428 {std::make_shared<signal_t> (signal_t{
429 "doors.boot.open",// generic_name
436 frequency_clock_t(0.00000f),// frequency
438 false,// force_send_changed
442 decoder_t::decode_boolean,// decoder
445 std::make_pair<bool, int>(false, 0),// multiplex
450 {std::make_shared<signal_t> (signal_t{
451 "doors.front_left.open",// generic_name
458 frequency_clock_t(0.00000f),// frequency
460 false,// force_send_changed
464 decoder_t::decode_boolean,// decoder
467 std::make_pair<bool, int>(false, 0),// multiplex
472 {std::make_shared<signal_t> (signal_t{
473 "doors.front_right.open",// generic_name
480 frequency_clock_t(0.00000f),// frequency
482 false,// force_send_changed
486 decoder_t::decode_boolean,// decoder
489 std::make_pair<bool, int>(false, 0),// multiplex
494 {std::make_shared<signal_t> (signal_t{
495 "doors.rear_left.open",// generic_name
502 frequency_clock_t(0.00000f),// frequency
504 false,// force_send_changed
508 decoder_t::decode_boolean,// decoder
511 std::make_pair<bool, int>(false, 0),// multiplex
516 {std::make_shared<signal_t> (signal_t{
517 "doors.rear_right.open",// generic_name
524 frequency_clock_t(0.00000f),// frequency
526 false,// force_send_changed
530 decoder_t::decode_boolean,// decoder
533 std::make_pair<bool, int>(false, 0),// multiplex
538 } // end signals vector
539 })} // end message_definition entry
540 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x799,"",8,2,frequency_clock_t(5.00000f),true,
541 { // beginning signals vector
542 {std::make_shared<signal_t> (signal_t{
543 "windows.front_left.open",// generic_name
550 frequency_clock_t(0.00000f),// frequency
552 false,// force_send_changed
556 decoder_t::decode_boolean,// decoder
559 std::make_pair<bool, int>(false, 0),// multiplex
564 {std::make_shared<signal_t> (signal_t{
565 "windows.front_right.open",// generic_name
572 frequency_clock_t(0.00000f),// frequency
574 false,// force_send_changed
578 decoder_t::decode_boolean,// decoder
581 std::make_pair<bool, int>(false, 0),// multiplex
586 {std::make_shared<signal_t> (signal_t{
587 "windows.rear_left.open",// generic_name
594 frequency_clock_t(0.00000f),// frequency
596 false,// force_send_changed
600 decoder_t::decode_boolean,// decoder
603 std::make_pair<bool, int>(false, 0),// multiplex
608 {std::make_shared<signal_t> (signal_t{
609 "windows.rear_right.open",// generic_name
616 frequency_clock_t(0.00000f),// frequency
618 false,// force_send_changed
622 decoder_t::decode_boolean,// decoder
625 std::make_pair<bool, int>(false, 0),// multiplex
630 } // end signals vector
631 })} // end message_definition entry
632 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",61442,"ETC1",8,18,frequency_clock_t(5.00000f),true,
633 { // beginning signals vector
634 {std::make_shared<signal_t> (signal_t{
635 "Eng.Momentary.Overspeed.Enable",// generic_name
642 frequency_clock_t(0.00000f),// frequency
644 false,// force_send_changed
646 {0,"MomentaryEngOverspeedIsDisabled"},
647 {1,"MomentaryEngOverspeedIsEnabled"},
652 decoder_t::decode_state,// decoder
655 std::make_pair<bool, int>(false, 0),// multiplex
660 {std::make_shared<signal_t> (signal_t{
661 "Momentary.Eng.Max.Power.Enable",// generic_name
668 frequency_clock_t(0.00000f),// frequency
670 false,// force_send_changed
673 {1,"mmntarilyRqingMaxPowerAvailable"},
675 {0,"notRqingMaxPowerAvailable"}
678 decoder_t::decode_state,// decoder
681 std::make_pair<bool, int>(false, 0),// multiplex
686 {std::make_shared<signal_t> (signal_t{
687 "Percent.Clutch.Slip",// generic_name
694 frequency_clock_t(0.00000f),// frequency
696 false,// force_send_changed
703 std::make_pair<bool, int>(false, 0),// multiplex
708 {std::make_shared<signal_t> (signal_t{
709 "Progressive.Shift.Disable",// generic_name
716 frequency_clock_t(0.00000f),// frequency
718 false,// force_send_changed
720 {1,"ProgressiveShiftIsDisabled"},
721 {0,"ProgressiveShiftIsNotDisabled"},
726 decoder_t::decode_state,// decoder
729 std::make_pair<bool, int>(false, 0),// multiplex
734 {std::make_shared<signal_t> (signal_t{
735 "Src.Addrss.Of.Ctrllng.Dvc.Fr.Trns.Cntrl",// generic_name
742 frequency_clock_t(0.00000f),// frequency
744 false,// force_send_changed
751 std::make_pair<bool, int>(false, 0),// multiplex
756 {std::make_shared<signal_t> (signal_t{
757 "Trans.Driveline.Engaged",// generic_name
764 frequency_clock_t(0.00000f),// frequency
766 false,// force_send_changed
768 {0,"DrivelineDisengaged"},
769 {1,"DrivelineEngaged"},
774 decoder_t::decode_state,// decoder
777 std::make_pair<bool, int>(false, 0),// multiplex
782 {std::make_shared<signal_t> (signal_t{
783 "Trans.Input.Shaft.Speed",// generic_name
790 frequency_clock_t(0.00000f),// frequency
792 false,// force_send_changed
799 std::make_pair<bool, int>(false, 0),// multiplex
804 {std::make_shared<signal_t> (signal_t{
805 "Trans.Output.Shaft.Speed",// generic_name
812 frequency_clock_t(0.00000f),// frequency
814 false,// force_send_changed
821 std::make_pair<bool, int>(false, 0),// multiplex
826 {std::make_shared<signal_t> (signal_t{
827 "Trans.Shift.In.Process",// generic_name
834 frequency_clock_t(0.00000f),// frequency
836 false,// force_send_changed
840 {1,"ShiftInProcess"},
841 {0,"ShiftIsNotInProcess"}
844 decoder_t::decode_state,// decoder
847 std::make_pair<bool, int>(false, 0),// multiplex
852 {std::make_shared<signal_t> (signal_t{
853 "Trns.Trq.Cnvrtr.Lckp.Trnstn.In.Prcess",// generic_name
860 frequency_clock_t(0.00000f),// frequency
862 false,// force_send_changed
866 {1,"TransitionIsInProcess"},
867 {0,"TransitionIsNotInProcess"}
870 decoder_t::decode_state,// decoder
873 std::make_pair<bool, int>(false, 0),// multiplex
878 {std::make_shared<signal_t> (signal_t{
879 "Trns.Trque.Converter.Lockup.Engaged",// generic_name
886 frequency_clock_t(0.00000f),// frequency
888 false,// force_send_changed
892 {0,"TorqueConverterLockupDisengaged"},
893 {1,"TorqueConverterLockupEngaged"}
896 decoder_t::decode_state,// decoder
899 std::make_pair<bool, int>(false, 0),// multiplex
904 } // end signals vector
905 })} // end message_definition entry
906 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",61444,"EEC1",8,18,frequency_clock_t(5.00000f),true,
907 { // beginning signals vector
908 {std::make_shared<signal_t> (signal_t{
909 "Actl.Eng.Prcnt.Trque.High.Resolution",// generic_name
916 frequency_clock_t(0.00000f),// frequency
918 false,// force_send_changed
923 {8,"1111NotAvailable"}
926 decoder_t::decode_state,// decoder
929 std::make_pair<bool, int>(false, 0),// multiplex
934 {std::make_shared<signal_t> (signal_t{
935 "Actual.Eng.Percent.Torque",// generic_name
942 frequency_clock_t(0.00000f),// frequency
944 false,// force_send_changed
951 std::make_pair<bool, int>(false, 0),// multiplex
956 {std::make_shared<signal_t> (signal_t{
957 "Drivers.Demand.Eng.Percent.Torque",// generic_name
964 frequency_clock_t(0.00000f),// frequency
966 false,// force_send_changed
973 std::make_pair<bool, int>(false, 0),// multiplex
978 {std::make_shared<signal_t> (signal_t{
979 "Eng.Demand.Percent.Torque",// generic_name
986 frequency_clock_t(0.00000f),// frequency
988 false,// force_send_changed
995 std::make_pair<bool, int>(false, 0),// multiplex
1000 {std::make_shared<signal_t> (signal_t{
1001 "Eng.Speed",// generic_name
1008 frequency_clock_t(0.00000f),// frequency
1010 false,// force_send_changed
1017 std::make_pair<bool, int>(false, 0),// multiplex
1022 {std::make_shared<signal_t> (signal_t{
1023 "Eng.Starter.Mode",// generic_name
1030 frequency_clock_t(0.00000f),// frequency
1032 false,// force_send_changed
1036 {15,"notAvailable"},
1038 {2,"starterActiveGearEngaged"},
1039 {1,"starterActiveGearNotEngaged"},
1040 {12,"starterInhibitedReasonUnknown"},
1041 {3,"strtFnshdStrtrNtActvAftrHvngBnA"},
1042 {6,"strtrInhbtdDTDrvlnEnggdOthrTrns"},
1043 {5,"strtrInhbtdDTEngNtReadyForStart"},
1044 {7,"strtrInhbtdDToActiveImmobilizer"},
1045 {4,"strtrInhbtdDToEngAlreadyRunning"},
1046 {8,"strtrInhbtdDueToStarterOvertemp"}
1049 decoder_t::decode_state,// decoder
1052 std::make_pair<bool, int>(false, 0),// multiplex
1057 {std::make_shared<signal_t> (signal_t{
1058 "Eng.Torque.Mode",// generic_name
1065 frequency_clock_t(0.00000f),// frequency
1067 false,// force_send_changed
1071 {1,"Accelerator pedal/operator selec"},
1072 {10,"Braking system"},
1073 {2,"Cruise control"},
1074 {9,"High speed governor"},
1075 {0,"Low idle governor/no request (de"},
1076 {15,"Not available"},
1078 {11,"Remote accelerator"},
1079 {4,"Road speed governor"},
1080 {8,"Torque limiting"},
1081 {6,"Transmission control"}
1084 decoder_t::decode_state,// decoder
1087 std::make_pair<bool, int>(false, 0),// multiplex
1092 {std::make_shared<signal_t> (signal_t{
1093 "Src.AddrssOf.Ctrllng.Dvc.Fr.Eng.Cntrl",// generic_name
1100 frequency_clock_t(0.00000f),// frequency
1102 false,// force_send_changed
1109 std::make_pair<bool, int>(false, 0),// multiplex
1114 } // end signals vector
1115 })} // end message_definition entry
1116 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",61449,"VDC2",8,18,frequency_clock_t(5.00000f),true,
1117 { // beginning signals vector
1118 {std::make_shared<signal_t> (signal_t{
1119 "Lateral.Acceleration",// generic_name
1122 0.000488281f,// factor
1126 frequency_clock_t(0.00000f),// frequency
1128 false,// force_send_changed
1135 std::make_pair<bool, int>(false, 0),// multiplex
1140 {std::make_shared<signal_t> (signal_t{
1141 "Longitudinal.Acceleration",// generic_name
1148 frequency_clock_t(0.00000f),// frequency
1150 false,// force_send_changed
1157 std::make_pair<bool, int>(false, 0),// multiplex
1162 {std::make_shared<signal_t> (signal_t{
1163 "Steer.Wheel.Angle",// generic_name
1166 0.000976562f,// factor
1170 frequency_clock_t(0.00000f),// frequency
1172 false,// force_send_changed
1179 std::make_pair<bool, int>(false, 0),// multiplex
1184 {std::make_shared<signal_t> (signal_t{
1185 "Steer.Wheel.Angle.Sensor.Type",// generic_name
1192 frequency_clock_t(0.00000f),// frequency
1194 false,// force_send_changed
1196 {1,"AbsMeasuringPrinciple"},
1198 {0,"RelativeMeasuringPrinciple"},
1202 decoder_t::decode_state,// decoder
1205 std::make_pair<bool, int>(false, 0),// multiplex
1210 {std::make_shared<signal_t> (signal_t{
1211 "Steer.Wheel.Turn.Counter",// generic_name
1218 frequency_clock_t(0.00000f),// frequency
1220 false,// force_send_changed
1227 std::make_pair<bool, int>(false, 0),// multiplex
1232 {std::make_shared<signal_t> (signal_t{
1233 "Yaw.Rate",// generic_name
1236 0.000122070f,// factor
1240 frequency_clock_t(0.00000f),// frequency
1242 false,// force_send_changed
1249 std::make_pair<bool, int>(false, 0),// multiplex
1254 } // end signals vector
1255 })} // end message_definition entry
1256 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",65215,"EBC2",8,18,frequency_clock_t(5.00000f),true,
1257 { // beginning signals vector
1258 {std::make_shared<signal_t> (signal_t{
1259 "Front.Axle.Speed",// generic_name
1262 0.00390625f,// factor
1266 frequency_clock_t(0.00000f),// frequency
1268 false,// force_send_changed
1275 std::make_pair<bool, int>(false, 0),// multiplex
1280 {std::make_shared<signal_t> (signal_t{
1281 "Relative.Speed.Front.Axle.Left.Wheel",// generic_name
1284 0.0625000f,// factor
1288 frequency_clock_t(0.00000f),// frequency
1290 false,// force_send_changed
1297 std::make_pair<bool, int>(false, 0),// multiplex
1302 {std::make_shared<signal_t> (signal_t{
1303 "Relative.Speed.Rear.Axle1.Left.Wheel",// generic_name
1306 0.0625000f,// factor
1310 frequency_clock_t(0.00000f),// frequency
1312 false,// force_send_changed
1319 std::make_pair<bool, int>(false, 0),// multiplex
1324 {std::make_shared<signal_t> (signal_t{
1325 "Relative.Speed.Rear.Axle2.Left.Wheel",// generic_name
1328 0.0625000f,// factor
1332 frequency_clock_t(0.00000f),// frequency
1334 false,// force_send_changed
1341 std::make_pair<bool, int>(false, 0),// multiplex
1346 {std::make_shared<signal_t> (signal_t{
1347 "Rlative.Speed.Front.Axle.Right.Wheel",// generic_name
1350 0.0625000f,// factor
1354 frequency_clock_t(0.00000f),// frequency
1356 false,// force_send_changed
1363 std::make_pair<bool, int>(false, 0),// multiplex
1368 {std::make_shared<signal_t> (signal_t{
1369 "Rlative.Speed.Rear.Axle1.Right.Wheel",// generic_name
1372 0.0625000f,// factor
1376 frequency_clock_t(0.00000f),// frequency
1378 false,// force_send_changed
1385 std::make_pair<bool, int>(false, 0),// multiplex
1390 {std::make_shared<signal_t> (signal_t{
1391 "Rlative.Speed.Rear.Axle2.Right.Wheel",// generic_name
1394 0.0625000f,// factor
1398 frequency_clock_t(0.00000f),// frequency
1400 false,// force_send_changed
1407 std::make_pair<bool, int>(false, 0),// multiplex
1412 } // end signals vector
1413 })} // end message_definition entry
1414 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",65253,"HOURS",8,18,frequency_clock_t(5.00000f),true,
1415 { // beginning signals vector
1416 {std::make_shared<signal_t> (signal_t{
1417 "Eng.Total.Hours.Of.Operation",// generic_name
1420 0.0500000f,// factor
1424 frequency_clock_t(0.00000f),// frequency
1426 false,// force_send_changed
1433 std::make_pair<bool, int>(false, 0),// multiplex
1438 {std::make_shared<signal_t> (signal_t{
1439 "Eng.Total.Revolutions",// generic_name
1446 frequency_clock_t(0.00000f),// frequency
1448 false,// force_send_changed
1455 std::make_pair<bool, int>(false, 0),// multiplex
1460 } // end signals vector
1461 })} // end message_definition entry
1462 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",65262,"ET1",8,18,frequency_clock_t(5.00000f),true,
1463 { // beginning signals vector
1464 {std::make_shared<signal_t> (signal_t{
1465 "Eng.Coolant.Temp",// generic_name
1468 0.0312500f,// factor
1472 frequency_clock_t(0.00000f),// frequency
1474 false,// force_send_changed
1481 std::make_pair<bool, int>(false, 0),// multiplex
1486 {std::make_shared<signal_t> (signal_t{
1487 "Eng.Fuel.Temp1",// generic_name
1494 frequency_clock_t(0.00000f),// frequency
1496 false,// force_send_changed
1503 std::make_pair<bool, int>(false, 0),// multiplex
1508 {std::make_shared<signal_t> (signal_t{
1509 "Eng.Intercooler.Temp",// generic_name
1516 frequency_clock_t(0.00000f),// frequency
1518 false,// force_send_changed
1525 std::make_pair<bool, int>(false, 0),// multiplex
1530 {std::make_shared<signal_t> (signal_t{
1531 "Eng.Intercooler.Thermostat.Opening",// generic_name
1538 frequency_clock_t(0.00000f),// frequency
1540 false,// force_send_changed
1547 std::make_pair<bool, int>(false, 0),// multiplex
1552 {std::make_shared<signal_t> (signal_t{
1553 "Eng.Oil.Temp1",// generic_name
1556 0.0312500f,// factor
1560 frequency_clock_t(0.00000f),// frequency
1562 false,// force_send_changed
1569 std::make_pair<bool, int>(false, 0),// multiplex
1574 {std::make_shared<signal_t> (signal_t{
1575 "Eng.Turbo.Oil.Temp",// generic_name
1578 0.0312500f,// factor
1582 frequency_clock_t(0.00000f),// frequency
1584 false,// force_send_changed
1591 std::make_pair<bool, int>(false, 0),// multiplex
1596 } // end signals vector
1597 })} // end message_definition entry
1599 }, // end message_definition vector
1600 { // beginning diagnostic_messages_ vector
1601 {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1608 decoder_t::decode_obd2_response,
1613 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1615 "engine.coolant.temperature",
1620 decoder_t::decode_obd2_response,
1625 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1632 decoder_t::decode_obd2_response,
1637 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1639 "intake.manifold.pressure",
1644 decoder_t::decode_obd2_response,
1649 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1656 decoder_t::decode_obd2_response,
1661 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1668 decoder_t::decode_obd2_response,
1673 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1675 "intake.air.temperature",
1680 decoder_t::decode_obd2_response,
1685 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1692 decoder_t::decode_obd2_response,
1697 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1699 "throttle.position",
1704 decoder_t::decode_obd2_response,
1709 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1716 decoder_t::decode_obd2_response,
1721 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1728 decoder_t::decode_obd2_response,
1733 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1740 decoder_t::decode_obd2_response,
1745 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1747 "barometric.pressure",
1752 decoder_t::decode_obd2_response,
1757 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1759 "ambient.air.temperature",
1764 decoder_t::decode_obd2_response,
1769 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1771 "commanded.throttle.position",
1776 decoder_t::decode_obd2_response,
1781 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1783 "ethanol.fuel.percentage",
1788 decoder_t::decode_obd2_response,
1793 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1795 "accelerator.pedal.position",
1800 decoder_t::decode_obd2_response,
1805 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1807 "hybrid.battery-pack.remaining.life",
1812 decoder_t::decode_obd2_response,
1817 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1819 "engine.oil.temperature",
1824 decoder_t::decode_obd2_response,
1829 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1836 decoder_t::decode_obd2_response,
1841 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1848 decoder_t::decode_obd2_response,
1854 } // end diagnostic_messages_ vector
1855 })} // end message_set entry
1856 } // end message_set vector
1858 for(std::shared_ptr<message_set_t> cms: message_set_)
1860 std::vector<std::shared_ptr<message_definition_t>> messages_definition = cms->get_messages_definition();
1861 for(std::shared_ptr<message_definition_t> cmd : messages_definition)
1863 cmd->set_parent(cms);
1864 std::vector<std::shared_ptr<signal_t>> signals = cmd->get_signals();
1865 for(std::shared_ptr<signal_t> sig: signals)
1867 sig->set_parent(cmd);
1871 std::vector<std::shared_ptr<diagnostic_message_t>> diagnostic_messages = cms->get_diagnostic_messages();
1872 for(std::shared_ptr<diagnostic_message_t> dm : diagnostic_messages)
1874 dm->set_parent(cms);
1879 const std::string application_t::get_diagnostic_bus() const