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",0x30,"",8,4,frequency_clock_t(5.00000f),true,
11 { // beginning signals vector
12 {std::make_shared<signal_t> (signal_t{
13 "hvac.fan.speed",// 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 "hvac.temperature.left",// 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 "hvac.temperature.right",// 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 "hvac.temperature.average",// generic_name
86 frequency_clock_t(0.00000f),// frequency
88 false,// force_send_changed
95 std::make_pair<bool, int>(false, 0),// multiplex
100 } // end signals vector
101 })} // end message_definition entry
102 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3D9,"",8,2050,frequency_clock_t(5.00000f),true,
103 { // beginning signals vector
104 {std::make_shared<signal_t> (signal_t{
105 "engine.speed",// generic_name
112 frequency_clock_t(0.00000f),// frequency
114 false,// force_send_changed
121 std::make_pair<bool, int>(false, 0),// multiplex
126 {std::make_shared<signal_t> (signal_t{
127 "fuel.level.low",// generic_name
134 frequency_clock_t(0.00000f),// frequency
136 false,// force_send_changed
140 decoder_t::decode_boolean,// decoder
143 std::make_pair<bool, int>(false, 0),// multiplex
148 {std::make_shared<signal_t> (signal_t{
149 "fuel.level",// generic_name
156 frequency_clock_t(0.00000f),// frequency
158 false,// force_send_changed
165 std::make_pair<bool, int>(false, 0),// multiplex
170 } // end signals vector
171 })} // end message_definition entry
172 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3E9,"",8,2,frequency_clock_t(5.00000f),true,
173 { // beginning signals vector
174 {std::make_shared<signal_t> (signal_t{
175 "vehicle.average.speed",// generic_name
182 frequency_clock_t(0.00000f),// frequency
184 false,// force_send_changed
191 std::make_pair<bool, int>(false, 0),// multiplex
196 } // end signals vector
197 })} // end message_definition entry
198 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x4D1,"",8,2,frequency_clock_t(5.00000f),true,
199 { // beginning signals vector
200 {std::make_shared<signal_t> (signal_t{
201 "engine.oil.temp",// generic_name
208 frequency_clock_t(0.00000f),// frequency
210 false,// force_send_changed
217 std::make_pair<bool, int>(false, 0),// multiplex
222 {std::make_shared<signal_t> (signal_t{
223 "engine.oil.temp.high",// generic_name
230 frequency_clock_t(0.00000f),// frequency
232 false,// force_send_changed
236 decoder_t::decode_boolean,// decoder
239 std::make_pair<bool, int>(false, 0),// multiplex
244 } // end signals vector
245 })} // end message_definition entry
246 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x620,"",8,2,frequency_clock_t(5.00000f),true,
247 { // beginning signals vector
248 {std::make_shared<signal_t> (signal_t{
249 "doors.boot.open",// generic_name
256 frequency_clock_t(0.00000f),// frequency
258 false,// force_send_changed
262 decoder_t::decode_boolean,// decoder
265 std::make_pair<bool, int>(false, 0),// multiplex
270 {std::make_shared<signal_t> (signal_t{
271 "doors.front_left.open",// generic_name
278 frequency_clock_t(0.00000f),// frequency
280 false,// force_send_changed
284 decoder_t::decode_boolean,// decoder
287 std::make_pair<bool, int>(false, 0),// multiplex
292 {std::make_shared<signal_t> (signal_t{
293 "doors.front_right.open",// generic_name
300 frequency_clock_t(0.00000f),// frequency
302 false,// force_send_changed
306 decoder_t::decode_boolean,// decoder
309 std::make_pair<bool, int>(false, 0),// multiplex
314 {std::make_shared<signal_t> (signal_t{
315 "doors.rear_left.open",// generic_name
322 frequency_clock_t(0.00000f),// frequency
324 false,// force_send_changed
328 decoder_t::decode_boolean,// decoder
331 std::make_pair<bool, int>(false, 0),// multiplex
336 {std::make_shared<signal_t> (signal_t{
337 "doors.rear_right.open",// generic_name
344 frequency_clock_t(0.00000f),// frequency
346 false,// force_send_changed
350 decoder_t::decode_boolean,// decoder
353 std::make_pair<bool, int>(false, 0),// multiplex
358 } // end signals vector
359 })} // end message_definition entry
360 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x799,"",8,2,frequency_clock_t(5.00000f),true,
361 { // beginning signals vector
362 {std::make_shared<signal_t> (signal_t{
363 "windows.front_left.open",// generic_name
370 frequency_clock_t(0.00000f),// frequency
372 false,// force_send_changed
376 decoder_t::decode_boolean,// decoder
379 std::make_pair<bool, int>(false, 0),// multiplex
384 {std::make_shared<signal_t> (signal_t{
385 "windows.front_right.open",// generic_name
392 frequency_clock_t(0.00000f),// frequency
394 false,// force_send_changed
398 decoder_t::decode_boolean,// decoder
401 std::make_pair<bool, int>(false, 0),// multiplex
406 {std::make_shared<signal_t> (signal_t{
407 "windows.rear_left.open",// generic_name
414 frequency_clock_t(0.00000f),// frequency
416 false,// force_send_changed
420 decoder_t::decode_boolean,// decoder
423 std::make_pair<bool, int>(false, 0),// multiplex
428 {std::make_shared<signal_t> (signal_t{
429 "windows.rear_right.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 } // end signals vector
451 })} // end message_definition entry
452 #ifdef USE_FEATURE_ISOTP
453 , {std::make_shared<message_definition_t>(message_definition_t{"ls",0x111,"",16,66,frequency_clock_t(5.00000f),true,
454 { // beginning signals vector
455 {std::make_shared<signal_t> (signal_t{
456 "sig1.1",// generic_name
463 frequency_clock_t(0.00000f),// frequency
465 false,// force_send_changed
472 std::make_pair<bool, int>(false, 0),// multiplex
477 {std::make_shared<signal_t> (signal_t{
478 "sig1.2",// generic_name
485 frequency_clock_t(0.00000f),// frequency
487 false,// force_send_changed
494 std::make_pair<bool, int>(false, 0),// multiplex
499 {std::make_shared<signal_t> (signal_t{
500 "sig2.1",// generic_name
507 frequency_clock_t(0.00000f),// frequency
509 false,// force_send_changed
516 std::make_pair<bool, int>(false, 0),// multiplex
521 {std::make_shared<signal_t> (signal_t{
522 "sig2.2",// generic_name
529 frequency_clock_t(0.00000f),// frequency
531 false,// force_send_changed
538 std::make_pair<bool, int>(false, 0),// multiplex
543 {std::make_shared<signal_t> (signal_t{
544 "sig3.1",// generic_name
551 frequency_clock_t(0.00000f),// frequency
553 false,// force_send_changed
560 std::make_pair<bool, int>(false, 0),// multiplex
565 {std::make_shared<signal_t> (signal_t{
566 "sig3.2",// generic_name
573 frequency_clock_t(0.00000f),// frequency
575 false,// force_send_changed
582 std::make_pair<bool, int>(false, 0),// multiplex
587 {std::make_shared<signal_t> (signal_t{
588 "sig4.1",// generic_name
595 frequency_clock_t(0.00000f),// frequency
597 false,// force_send_changed
604 std::make_pair<bool, int>(false, 0),// multiplex
609 {std::make_shared<signal_t> (signal_t{
610 "sig4.2",// generic_name
617 frequency_clock_t(0.00000f),// frequency
619 false,// force_send_changed
626 std::make_pair<bool, int>(false, 0),// multiplex
631 } // end signals vector
632 })} // end message_definition entry
634 #ifdef USE_FEATURE_J1939
635 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",61442,"ETC1",8,18,frequency_clock_t(5.00000f),true,
636 { // beginning signals vector
637 {std::make_shared<signal_t> (signal_t{
638 "Eng.Momentary.Overspeed.Enable",// generic_name
645 frequency_clock_t(0.00000f),// frequency
647 false,// force_send_changed
649 {0,"MomentaryEngOverspeedIsDisabled"},
650 {1,"MomentaryEngOverspeedIsEnabled"},
655 decoder_t::decode_state,// decoder
658 std::make_pair<bool, int>(false, 0),// multiplex
663 {std::make_shared<signal_t> (signal_t{
664 "Momentary.Eng.Max.Power.Enable",// generic_name
671 frequency_clock_t(0.00000f),// frequency
673 false,// force_send_changed
676 {1,"mmntarilyRqingMaxPowerAvailable"},
678 {0,"notRqingMaxPowerAvailable"}
681 decoder_t::decode_state,// decoder
684 std::make_pair<bool, int>(false, 0),// multiplex
689 {std::make_shared<signal_t> (signal_t{
690 "Percent.Clutch.Slip",// generic_name
697 frequency_clock_t(0.00000f),// frequency
699 false,// force_send_changed
706 std::make_pair<bool, int>(false, 0),// multiplex
711 {std::make_shared<signal_t> (signal_t{
712 "Progressive.Shift.Disable",// generic_name
719 frequency_clock_t(0.00000f),// frequency
721 false,// force_send_changed
723 {1,"ProgressiveShiftIsDisabled"},
724 {0,"ProgressiveShiftIsNotDisabled"},
729 decoder_t::decode_state,// decoder
732 std::make_pair<bool, int>(false, 0),// multiplex
737 {std::make_shared<signal_t> (signal_t{
738 "Src.Addrss.Of.Ctrllng.Dvc.Fr.Trns.Cntrl",// generic_name
745 frequency_clock_t(0.00000f),// frequency
747 false,// force_send_changed
754 std::make_pair<bool, int>(false, 0),// multiplex
759 {std::make_shared<signal_t> (signal_t{
760 "Trans.Driveline.Engaged",// generic_name
767 frequency_clock_t(0.00000f),// frequency
769 false,// force_send_changed
771 {0,"DrivelineDisengaged"},
772 {1,"DrivelineEngaged"},
777 decoder_t::decode_state,// decoder
780 std::make_pair<bool, int>(false, 0),// multiplex
785 {std::make_shared<signal_t> (signal_t{
786 "Trans.Input.Shaft.Speed",// generic_name
793 frequency_clock_t(0.00000f),// frequency
795 false,// force_send_changed
802 std::make_pair<bool, int>(false, 0),// multiplex
807 {std::make_shared<signal_t> (signal_t{
808 "Trans.Output.Shaft.Speed",// generic_name
815 frequency_clock_t(0.00000f),// frequency
817 false,// force_send_changed
824 std::make_pair<bool, int>(false, 0),// multiplex
829 {std::make_shared<signal_t> (signal_t{
830 "Trans.Shift.In.Process",// generic_name
837 frequency_clock_t(0.00000f),// frequency
839 false,// force_send_changed
843 {1,"ShiftInProcess"},
844 {0,"ShiftIsNotInProcess"}
847 decoder_t::decode_state,// decoder
850 std::make_pair<bool, int>(false, 0),// multiplex
855 {std::make_shared<signal_t> (signal_t{
856 "Trns.Trq.Cnvrtr.Lckp.Trnstn.In.Prcess",// generic_name
863 frequency_clock_t(0.00000f),// frequency
865 false,// force_send_changed
869 {1,"TransitionIsInProcess"},
870 {0,"TransitionIsNotInProcess"}
873 decoder_t::decode_state,// decoder
876 std::make_pair<bool, int>(false, 0),// multiplex
881 {std::make_shared<signal_t> (signal_t{
882 "Trns.Trque.Converter.Lockup.Engaged",// generic_name
889 frequency_clock_t(0.00000f),// frequency
891 false,// force_send_changed
895 {0,"TorqueConverterLockupDisengaged"},
896 {1,"TorqueConverterLockupEngaged"}
899 decoder_t::decode_state,// decoder
902 std::make_pair<bool, int>(false, 0),// multiplex
907 } // end signals vector
908 })} // end message_definition entry
909 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",61444,"EEC1",8,18,frequency_clock_t(5.00000f),true,
910 { // beginning signals vector
911 {std::make_shared<signal_t> (signal_t{
912 "Actl.Eng.Prcnt.Trque.High.Resolution",// generic_name
919 frequency_clock_t(0.00000f),// frequency
921 false,// force_send_changed
926 {8,"1111NotAvailable"}
929 decoder_t::decode_state,// decoder
932 std::make_pair<bool, int>(false, 0),// multiplex
937 {std::make_shared<signal_t> (signal_t{
938 "Actual.Eng.Percent.Torque",// generic_name
945 frequency_clock_t(0.00000f),// frequency
947 false,// force_send_changed
954 std::make_pair<bool, int>(false, 0),// multiplex
959 {std::make_shared<signal_t> (signal_t{
960 "Drivers.Demand.Eng.Percent.Torque",// generic_name
967 frequency_clock_t(0.00000f),// frequency
969 false,// force_send_changed
976 std::make_pair<bool, int>(false, 0),// multiplex
981 {std::make_shared<signal_t> (signal_t{
982 "Eng.Demand.Percent.Torque",// generic_name
989 frequency_clock_t(0.00000f),// frequency
991 false,// force_send_changed
998 std::make_pair<bool, int>(false, 0),// multiplex
1003 {std::make_shared<signal_t> (signal_t{
1004 "Eng.Speed",// generic_name
1011 frequency_clock_t(0.00000f),// frequency
1013 false,// force_send_changed
1020 std::make_pair<bool, int>(false, 0),// multiplex
1025 {std::make_shared<signal_t> (signal_t{
1026 "Eng.Starter.Mode",// generic_name
1033 frequency_clock_t(0.00000f),// frequency
1035 false,// force_send_changed
1039 {15,"notAvailable"},
1041 {2,"starterActiveGearEngaged"},
1042 {1,"starterActiveGearNotEngaged"},
1043 {12,"starterInhibitedReasonUnknown"},
1044 {3,"strtFnshdStrtrNtActvAftrHvngBnA"},
1045 {6,"strtrInhbtdDTDrvlnEnggdOthrTrns"},
1046 {5,"strtrInhbtdDTEngNtReadyForStart"},
1047 {7,"strtrInhbtdDToActiveImmobilizer"},
1048 {4,"strtrInhbtdDToEngAlreadyRunning"},
1049 {8,"strtrInhbtdDueToStarterOvertemp"}
1052 decoder_t::decode_state,// decoder
1055 std::make_pair<bool, int>(false, 0),// multiplex
1060 {std::make_shared<signal_t> (signal_t{
1061 "Eng.Torque.Mode",// generic_name
1068 frequency_clock_t(0.00000f),// frequency
1070 false,// force_send_changed
1074 {1,"Accelerator pedal/operator selec"},
1075 {10,"Braking system"},
1076 {2,"Cruise control"},
1077 {9,"High speed governor"},
1078 {0,"Low idle governor/no request (de"},
1079 {15,"Not available"},
1081 {11,"Remote accelerator"},
1082 {4,"Road speed governor"},
1083 {8,"Torque limiting"},
1084 {6,"Transmission control"}
1087 decoder_t::decode_state,// decoder
1090 std::make_pair<bool, int>(false, 0),// multiplex
1095 {std::make_shared<signal_t> (signal_t{
1096 "Src.AddrssOf.Ctrllng.Dvc.Fr.Eng.Cntrl",// generic_name
1103 frequency_clock_t(0.00000f),// frequency
1105 false,// force_send_changed
1112 std::make_pair<bool, int>(false, 0),// multiplex
1117 } // end signals vector
1118 })} // end message_definition entry
1119 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",61449,"VDC2",8,18,frequency_clock_t(5.00000f),true,
1120 { // beginning signals vector
1121 {std::make_shared<signal_t> (signal_t{
1122 "Lateral.Acceleration",// generic_name
1125 0.000488281f,// factor
1129 frequency_clock_t(0.00000f),// frequency
1131 false,// force_send_changed
1138 std::make_pair<bool, int>(false, 0),// multiplex
1143 {std::make_shared<signal_t> (signal_t{
1144 "Longitudinal.Acceleration",// generic_name
1151 frequency_clock_t(0.00000f),// frequency
1153 false,// force_send_changed
1160 std::make_pair<bool, int>(false, 0),// multiplex
1165 {std::make_shared<signal_t> (signal_t{
1166 "Steer.Wheel.Angle",// generic_name
1169 0.000976562f,// factor
1173 frequency_clock_t(0.00000f),// frequency
1175 false,// force_send_changed
1182 std::make_pair<bool, int>(false, 0),// multiplex
1187 {std::make_shared<signal_t> (signal_t{
1188 "Steer.Wheel.Angle.Sensor.Type",// generic_name
1195 frequency_clock_t(0.00000f),// frequency
1197 false,// force_send_changed
1199 {1,"AbsMeasuringPrinciple"},
1201 {0,"RelativeMeasuringPrinciple"},
1205 decoder_t::decode_state,// decoder
1208 std::make_pair<bool, int>(false, 0),// multiplex
1213 {std::make_shared<signal_t> (signal_t{
1214 "Steer.Wheel.Turn.Counter",// generic_name
1221 frequency_clock_t(0.00000f),// frequency
1223 false,// force_send_changed
1230 std::make_pair<bool, int>(false, 0),// multiplex
1235 {std::make_shared<signal_t> (signal_t{
1236 "Yaw.Rate",// generic_name
1239 0.000122070f,// factor
1243 frequency_clock_t(0.00000f),// frequency
1245 false,// force_send_changed
1252 std::make_pair<bool, int>(false, 0),// multiplex
1257 } // end signals vector
1258 })} // end message_definition entry
1259 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",65215,"EBC2",8,18,frequency_clock_t(5.00000f),true,
1260 { // beginning signals vector
1261 {std::make_shared<signal_t> (signal_t{
1262 "Front.Axle.Speed",// generic_name
1265 0.00390625f,// factor
1269 frequency_clock_t(0.00000f),// frequency
1271 false,// force_send_changed
1278 std::make_pair<bool, int>(false, 0),// multiplex
1283 {std::make_shared<signal_t> (signal_t{
1284 "Relative.Speed.Front.Axle.Left.Wheel",// generic_name
1287 0.0625000f,// factor
1291 frequency_clock_t(0.00000f),// frequency
1293 false,// force_send_changed
1300 std::make_pair<bool, int>(false, 0),// multiplex
1305 {std::make_shared<signal_t> (signal_t{
1306 "Relative.Speed.Rear.Axle1.Left.Wheel",// generic_name
1309 0.0625000f,// factor
1313 frequency_clock_t(0.00000f),// frequency
1315 false,// force_send_changed
1322 std::make_pair<bool, int>(false, 0),// multiplex
1327 {std::make_shared<signal_t> (signal_t{
1328 "Relative.Speed.Rear.Axle2.Left.Wheel",// generic_name
1331 0.0625000f,// factor
1335 frequency_clock_t(0.00000f),// frequency
1337 false,// force_send_changed
1344 std::make_pair<bool, int>(false, 0),// multiplex
1349 {std::make_shared<signal_t> (signal_t{
1350 "Rlative.Speed.Front.Axle.Right.Wheel",// generic_name
1353 0.0625000f,// factor
1357 frequency_clock_t(0.00000f),// frequency
1359 false,// force_send_changed
1366 std::make_pair<bool, int>(false, 0),// multiplex
1371 {std::make_shared<signal_t> (signal_t{
1372 "Rlative.Speed.Rear.Axle1.Right.Wheel",// generic_name
1375 0.0625000f,// factor
1379 frequency_clock_t(0.00000f),// frequency
1381 false,// force_send_changed
1388 std::make_pair<bool, int>(false, 0),// multiplex
1393 {std::make_shared<signal_t> (signal_t{
1394 "Rlative.Speed.Rear.Axle2.Right.Wheel",// generic_name
1397 0.0625000f,// factor
1401 frequency_clock_t(0.00000f),// frequency
1403 false,// force_send_changed
1410 std::make_pair<bool, int>(false, 0),// multiplex
1415 } // end signals vector
1416 })} // end message_definition entry
1417 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",65253,"HOURS",8,18,frequency_clock_t(5.00000f),true,
1418 { // beginning signals vector
1419 {std::make_shared<signal_t> (signal_t{
1420 "Eng.Total.Hours.Of.Operation",// generic_name
1423 0.0500000f,// factor
1427 frequency_clock_t(0.00000f),// frequency
1429 false,// force_send_changed
1436 std::make_pair<bool, int>(false, 0),// multiplex
1441 {std::make_shared<signal_t> (signal_t{
1442 "Eng.Total.Revolutions",// generic_name
1449 frequency_clock_t(0.00000f),// frequency
1451 false,// force_send_changed
1458 std::make_pair<bool, int>(false, 0),// multiplex
1463 } // end signals vector
1464 })} // end message_definition entry
1465 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",65262,"ET1",8,18,frequency_clock_t(5.00000f),true,
1466 { // beginning signals vector
1467 {std::make_shared<signal_t> (signal_t{
1468 "Eng.Coolant.Temp",// generic_name
1471 0.0312500f,// factor
1475 frequency_clock_t(0.00000f),// frequency
1477 false,// force_send_changed
1484 std::make_pair<bool, int>(false, 0),// multiplex
1489 {std::make_shared<signal_t> (signal_t{
1490 "Eng.Fuel.Temp1",// generic_name
1497 frequency_clock_t(0.00000f),// frequency
1499 false,// force_send_changed
1506 std::make_pair<bool, int>(false, 0),// multiplex
1511 {std::make_shared<signal_t> (signal_t{
1512 "Eng.Intercooler.Temp",// generic_name
1519 frequency_clock_t(0.00000f),// frequency
1521 false,// force_send_changed
1528 std::make_pair<bool, int>(false, 0),// multiplex
1533 {std::make_shared<signal_t> (signal_t{
1534 "Eng.Intercooler.Thermostat.Opening",// generic_name
1541 frequency_clock_t(0.00000f),// frequency
1543 false,// force_send_changed
1550 std::make_pair<bool, int>(false, 0),// multiplex
1555 {std::make_shared<signal_t> (signal_t{
1556 "Eng.Oil.Temp1",// generic_name
1559 0.0312500f,// factor
1563 frequency_clock_t(0.00000f),// frequency
1565 false,// force_send_changed
1572 std::make_pair<bool, int>(false, 0),// multiplex
1577 {std::make_shared<signal_t> (signal_t{
1578 "Eng.Turbo.Oil.Temp",// generic_name
1581 0.0312500f,// factor
1585 frequency_clock_t(0.00000f),// frequency
1587 false,// force_send_changed
1594 std::make_pair<bool, int>(false, 0),// multiplex
1599 } // end signals vector
1600 })} // end message_definition entry
1602 }, // end message_definition vector
1603 { // beginning diagnostic_messages_ vector
1604 {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1611 decoder_t::decode_obd2_response,
1616 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1618 "engine.coolant.temperature",
1623 decoder_t::decode_obd2_response,
1628 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1635 decoder_t::decode_obd2_response,
1640 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1642 "intake.manifold.pressure",
1647 decoder_t::decode_obd2_response,
1652 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1659 decoder_t::decode_obd2_response,
1664 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1671 decoder_t::decode_obd2_response,
1676 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1678 "intake.air.temperature",
1683 decoder_t::decode_obd2_response,
1688 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1695 decoder_t::decode_obd2_response,
1700 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1702 "throttle.position",
1707 decoder_t::decode_obd2_response,
1712 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1719 decoder_t::decode_obd2_response,
1724 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1731 decoder_t::decode_obd2_response,
1736 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1743 decoder_t::decode_obd2_response,
1748 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1750 "barometric.pressure",
1755 decoder_t::decode_obd2_response,
1760 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1762 "ambient.air.temperature",
1767 decoder_t::decode_obd2_response,
1772 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1774 "commanded.throttle.position",
1779 decoder_t::decode_obd2_response,
1784 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1786 "ethanol.fuel.percentage",
1791 decoder_t::decode_obd2_response,
1796 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1798 "accelerator.pedal.position",
1803 decoder_t::decode_obd2_response,
1808 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1810 "hybrid.battery-pack.remaining.life",
1815 decoder_t::decode_obd2_response,
1820 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1822 "engine.oil.temperature",
1827 decoder_t::decode_obd2_response,
1832 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1839 decoder_t::decode_obd2_response,
1844 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1851 decoder_t::decode_obd2_response,
1857 } // end diagnostic_messages_ vector
1858 })} // end message_set entry
1859 } // end message_set vector
1861 for(std::shared_ptr<message_set_t> cms: message_set_)
1863 std::vector<std::shared_ptr<message_definition_t>> messages_definition = cms->get_messages_definition();
1864 for(std::shared_ptr<message_definition_t> cmd : messages_definition)
1866 cmd->set_parent(cms);
1867 std::vector<std::shared_ptr<signal_t>> signals = cmd->get_signals();
1868 for(std::shared_ptr<signal_t> sig: signals)
1870 sig->set_parent(cmd);
1874 std::vector<std::shared_ptr<diagnostic_message_t>> diagnostic_messages = cms->get_diagnostic_messages();
1875 for(std::shared_ptr<diagnostic_message_t> dm : diagnostic_messages)
1877 dm->set_parent(cms);
1882 const std::string application_t::get_diagnostic_bus() const