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,16,true,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
30 false,// is_big_endian
31 static_cast<sign_t>(0),// signed
32 -1,// bit_sign_position
35 {std::make_shared<signal_t> (signal_t{
36 "sig1.2",// generic_name
43 frequency_clock_t(0.00000f),// frequency
45 false,// force_send_changed
52 std::make_pair<bool, int>(false, 0),// multiplex
53 false,// is_big_endian
54 static_cast<sign_t>(0),// signed
55 -1,// bit_sign_position
58 {std::make_shared<signal_t> (signal_t{
59 "sig2.1",// generic_name
66 frequency_clock_t(0.00000f),// frequency
68 false,// force_send_changed
75 std::make_pair<bool, int>(false, 0),// multiplex
76 false,// is_big_endian
77 static_cast<sign_t>(0),// signed
78 -1,// bit_sign_position
81 {std::make_shared<signal_t> (signal_t{
82 "sig2.2",// generic_name
89 frequency_clock_t(0.00000f),// frequency
91 false,// force_send_changed
98 std::make_pair<bool, int>(false, 0),// multiplex
99 false,// is_big_endian
100 static_cast<sign_t>(0),// signed
101 -1,// bit_sign_position
104 {std::make_shared<signal_t> (signal_t{
105 "sig3.1",// generic_name
112 frequency_clock_t(0.00000f),// frequency
114 false,// force_send_changed
121 std::make_pair<bool, int>(false, 0),// multiplex
122 false,// is_big_endian
123 static_cast<sign_t>(0),// signed
124 -1,// bit_sign_position
127 {std::make_shared<signal_t> (signal_t{
128 "sig3.2",// generic_name
135 frequency_clock_t(0.00000f),// frequency
137 false,// force_send_changed
144 std::make_pair<bool, int>(false, 0),// multiplex
145 false,// is_big_endian
146 static_cast<sign_t>(0),// signed
147 -1,// bit_sign_position
150 {std::make_shared<signal_t> (signal_t{
151 "sig4.1",// generic_name
158 frequency_clock_t(0.00000f),// frequency
160 false,// force_send_changed
167 std::make_pair<bool, int>(false, 0),// multiplex
168 false,// is_big_endian
169 static_cast<sign_t>(0),// signed
170 -1,// bit_sign_position
173 {std::make_shared<signal_t> (signal_t{
174 "sig4.2",// generic_name
181 frequency_clock_t(0.00000f),// frequency
183 false,// force_send_changed
190 std::make_pair<bool, int>(false, 0),// multiplex
191 false,// is_big_endian
192 static_cast<sign_t>(0),// signed
193 -1,// bit_sign_position
196 } // end signals vector
197 })} // end message_definition entry
198 , {std::make_shared<message_definition_t>(message_definition_t{"ls",0x30,"",8,0,true,frequency_clock_t(5.00000f),true,
199 { // beginning signals vector
200 {std::make_shared<signal_t> (signal_t{
201 "hvac.fan.speed",// generic_name
208 frequency_clock_t(0.00000f),// frequency
210 false,// force_send_changed
217 std::make_pair<bool, int>(false, 0),// multiplex
218 false,// is_big_endian
219 static_cast<sign_t>(0),// signed
220 -1,// bit_sign_position
223 {std::make_shared<signal_t> (signal_t{
224 "hvac.temperature.left",// generic_name
231 frequency_clock_t(0.00000f),// frequency
233 false,// force_send_changed
240 std::make_pair<bool, int>(false, 0),// multiplex
241 false,// is_big_endian
242 static_cast<sign_t>(0),// signed
243 -1,// bit_sign_position
246 {std::make_shared<signal_t> (signal_t{
247 "hvac.temperature.right",// generic_name
254 frequency_clock_t(0.00000f),// frequency
256 false,// force_send_changed
263 std::make_pair<bool, int>(false, 0),// multiplex
264 false,// is_big_endian
265 static_cast<sign_t>(0),// signed
266 -1,// bit_sign_position
269 {std::make_shared<signal_t> (signal_t{
270 "hvac.temperature.average",// generic_name
277 frequency_clock_t(0.00000f),// frequency
279 false,// force_send_changed
286 std::make_pair<bool, int>(false, 0),// multiplex
287 false,// is_big_endian
288 static_cast<sign_t>(0),// signed
289 -1,// bit_sign_position
292 } // end signals vector
293 })} // end message_definition entry
294 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3D9,"",8,128,true,frequency_clock_t(5.00000f),true,
295 { // beginning signals vector
296 {std::make_shared<signal_t> (signal_t{
297 "engine.speed",// generic_name
304 frequency_clock_t(0.00000f),// frequency
306 false,// force_send_changed
313 std::make_pair<bool, int>(false, 0),// multiplex
314 false,// is_big_endian
315 static_cast<sign_t>(0),// signed
316 -1,// bit_sign_position
319 {std::make_shared<signal_t> (signal_t{
320 "fuel.level.low",// generic_name
327 frequency_clock_t(0.00000f),// frequency
329 false,// force_send_changed
333 decoder_t::decode_boolean,// decoder
336 std::make_pair<bool, int>(false, 0),// multiplex
337 false,// is_big_endian
338 static_cast<sign_t>(0),// signed
339 -1,// bit_sign_position
342 {std::make_shared<signal_t> (signal_t{
343 "fuel.level",// generic_name
350 frequency_clock_t(0.00000f),// frequency
352 false,// force_send_changed
359 std::make_pair<bool, int>(false, 0),// multiplex
360 false,// is_big_endian
361 static_cast<sign_t>(0),// signed
362 -1,// bit_sign_position
365 } // end signals vector
366 })} // end message_definition entry
367 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3E9,"",8,0,true,frequency_clock_t(5.00000f),true,
368 { // beginning signals vector
369 {std::make_shared<signal_t> (signal_t{
370 "vehicle.average.speed",// generic_name
377 frequency_clock_t(0.00000f),// frequency
379 false,// force_send_changed
386 std::make_pair<bool, int>(false, 0),// multiplex
387 false,// is_big_endian
388 static_cast<sign_t>(0),// signed
389 -1,// bit_sign_position
392 } // end signals vector
393 })} // end message_definition entry
394 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x4D1,"",8,0,true,frequency_clock_t(5.00000f),true,
395 { // beginning signals vector
396 {std::make_shared<signal_t> (signal_t{
397 "engine.oil.temp",// generic_name
404 frequency_clock_t(0.00000f),// frequency
406 false,// force_send_changed
413 std::make_pair<bool, int>(false, 0),// multiplex
414 false,// is_big_endian
415 static_cast<sign_t>(0),// signed
416 -1,// bit_sign_position
419 {std::make_shared<signal_t> (signal_t{
420 "engine.oil.temp.high",// generic_name
427 frequency_clock_t(0.00000f),// frequency
429 false,// force_send_changed
433 decoder_t::decode_boolean,// decoder
436 std::make_pair<bool, int>(false, 0),// multiplex
437 false,// is_big_endian
438 static_cast<sign_t>(0),// signed
439 -1,// bit_sign_position
442 } // end signals vector
443 })} // end message_definition entry
444 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x620,"",8,0,true,frequency_clock_t(5.00000f),true,
445 { // beginning signals vector
446 {std::make_shared<signal_t> (signal_t{
447 "doors.boot.open",// generic_name
454 frequency_clock_t(0.00000f),// frequency
456 false,// force_send_changed
460 decoder_t::decode_boolean,// decoder
463 std::make_pair<bool, int>(false, 0),// multiplex
464 false,// is_big_endian
465 static_cast<sign_t>(0),// signed
466 -1,// bit_sign_position
469 {std::make_shared<signal_t> (signal_t{
470 "doors.front_left.open",// generic_name
477 frequency_clock_t(0.00000f),// frequency
479 false,// force_send_changed
483 decoder_t::decode_boolean,// decoder
486 std::make_pair<bool, int>(false, 0),// multiplex
487 false,// is_big_endian
488 static_cast<sign_t>(0),// signed
489 -1,// bit_sign_position
492 {std::make_shared<signal_t> (signal_t{
493 "doors.front_right.open",// generic_name
500 frequency_clock_t(0.00000f),// frequency
502 false,// force_send_changed
506 decoder_t::decode_boolean,// decoder
509 std::make_pair<bool, int>(false, 0),// multiplex
510 false,// is_big_endian
511 static_cast<sign_t>(0),// signed
512 -1,// bit_sign_position
515 {std::make_shared<signal_t> (signal_t{
516 "doors.rear_left.open",// generic_name
523 frequency_clock_t(0.00000f),// frequency
525 false,// force_send_changed
529 decoder_t::decode_boolean,// decoder
532 std::make_pair<bool, int>(false, 0),// multiplex
533 false,// is_big_endian
534 static_cast<sign_t>(0),// signed
535 -1,// bit_sign_position
538 {std::make_shared<signal_t> (signal_t{
539 "doors.rear_right.open",// generic_name
546 frequency_clock_t(0.00000f),// frequency
548 false,// force_send_changed
552 decoder_t::decode_boolean,// decoder
555 std::make_pair<bool, int>(false, 0),// multiplex
556 false,// is_big_endian
557 static_cast<sign_t>(0),// signed
558 -1,// bit_sign_position
561 } // end signals vector
562 })} // end message_definition entry
563 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x799,"",8,0,true,frequency_clock_t(5.00000f),true,
564 { // beginning signals vector
565 {std::make_shared<signal_t> (signal_t{
566 "windows.front_left.open",// generic_name
573 frequency_clock_t(0.00000f),// frequency
575 false,// force_send_changed
579 decoder_t::decode_boolean,// decoder
582 std::make_pair<bool, int>(false, 0),// multiplex
583 false,// is_big_endian
584 static_cast<sign_t>(0),// signed
585 -1,// bit_sign_position
588 {std::make_shared<signal_t> (signal_t{
589 "windows.front_right.open",// generic_name
596 frequency_clock_t(0.00000f),// frequency
598 false,// force_send_changed
602 decoder_t::decode_boolean,// decoder
605 std::make_pair<bool, int>(false, 0),// multiplex
606 false,// is_big_endian
607 static_cast<sign_t>(0),// signed
608 -1,// bit_sign_position
611 {std::make_shared<signal_t> (signal_t{
612 "windows.rear_left.open",// generic_name
619 frequency_clock_t(0.00000f),// frequency
621 false,// force_send_changed
625 decoder_t::decode_boolean,// decoder
628 std::make_pair<bool, int>(false, 0),// multiplex
629 false,// is_big_endian
630 static_cast<sign_t>(0),// signed
631 -1,// bit_sign_position
634 {std::make_shared<signal_t> (signal_t{
635 "windows.rear_right.open",// generic_name
642 frequency_clock_t(0.00000f),// frequency
644 false,// force_send_changed
648 decoder_t::decode_boolean,// decoder
651 std::make_pair<bool, int>(false, 0),// multiplex
652 false,// is_big_endian
653 static_cast<sign_t>(0),// signed
654 -1,// bit_sign_position
657 } // end signals vector
658 })} // end message_definition entry
659 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",61442,"ETC1",8,4,true,frequency_clock_t(5.00000f),true,
660 { // beginning signals vector
661 {std::make_shared<signal_t> (signal_t{
662 "Eng.Momentary.Overspeed.Enable",// generic_name
669 frequency_clock_t(0.00000f),// frequency
671 false,// force_send_changed
673 {0,"MomentaryEngOverspeedIsDisabled"},
674 {1,"MomentaryEngOverspeedIsEnabled"},
679 decoder_t::decode_state,// decoder
682 std::make_pair<bool, int>(false, 0),// multiplex
683 false,// is_big_endian
684 static_cast<sign_t>(0),// signed
685 -1,// bit_sign_position
688 {std::make_shared<signal_t> (signal_t{
689 "Momentary.Eng.Max.Power.Enable",// generic_name
696 frequency_clock_t(0.00000f),// frequency
698 false,// force_send_changed
701 {1,"mmntarilyRqingMaxPowerAvailable"},
703 {0,"notRqingMaxPowerAvailable"}
706 decoder_t::decode_state,// decoder
709 std::make_pair<bool, int>(false, 0),// multiplex
710 false,// is_big_endian
711 static_cast<sign_t>(0),// signed
712 -1,// bit_sign_position
715 {std::make_shared<signal_t> (signal_t{
716 "Percent.Clutch.Slip",// generic_name
723 frequency_clock_t(0.00000f),// frequency
725 false,// force_send_changed
732 std::make_pair<bool, int>(false, 0),// multiplex
733 false,// is_big_endian
734 static_cast<sign_t>(0),// signed
735 -1,// bit_sign_position
738 {std::make_shared<signal_t> (signal_t{
739 "Progressive.Shift.Disable",// generic_name
746 frequency_clock_t(0.00000f),// frequency
748 false,// force_send_changed
750 {1,"ProgressiveShiftIsDisabled"},
751 {0,"ProgressiveShiftIsNotDisabled"},
756 decoder_t::decode_state,// decoder
759 std::make_pair<bool, int>(false, 0),// multiplex
760 false,// is_big_endian
761 static_cast<sign_t>(0),// signed
762 -1,// bit_sign_position
765 {std::make_shared<signal_t> (signal_t{
766 "Src.Addrss.Of.Ctrllng.Dvc.Fr.Trns.Cntrl",// generic_name
773 frequency_clock_t(0.00000f),// frequency
775 false,// force_send_changed
782 std::make_pair<bool, int>(false, 0),// multiplex
783 false,// is_big_endian
784 static_cast<sign_t>(0),// signed
785 -1,// bit_sign_position
788 {std::make_shared<signal_t> (signal_t{
789 "Trans.Driveline.Engaged",// generic_name
796 frequency_clock_t(0.00000f),// frequency
798 false,// force_send_changed
800 {0,"DrivelineDisengaged"},
801 {1,"DrivelineEngaged"},
806 decoder_t::decode_state,// decoder
809 std::make_pair<bool, int>(false, 0),// multiplex
810 false,// is_big_endian
811 static_cast<sign_t>(0),// signed
812 -1,// bit_sign_position
815 {std::make_shared<signal_t> (signal_t{
816 "Trans.Input.Shaft.Speed",// generic_name
823 frequency_clock_t(0.00000f),// frequency
825 false,// force_send_changed
832 std::make_pair<bool, int>(false, 0),// multiplex
833 false,// is_big_endian
834 static_cast<sign_t>(0),// signed
835 -1,// bit_sign_position
838 {std::make_shared<signal_t> (signal_t{
839 "Trans.Output.Shaft.Speed",// generic_name
846 frequency_clock_t(0.00000f),// frequency
848 false,// force_send_changed
855 std::make_pair<bool, int>(false, 0),// multiplex
856 false,// is_big_endian
857 static_cast<sign_t>(0),// signed
858 -1,// bit_sign_position
861 {std::make_shared<signal_t> (signal_t{
862 "Trans.Shift.In.Process",// generic_name
869 frequency_clock_t(0.00000f),// frequency
871 false,// force_send_changed
875 {1,"ShiftInProcess"},
876 {0,"ShiftIsNotInProcess"}
879 decoder_t::decode_state,// decoder
882 std::make_pair<bool, int>(false, 0),// multiplex
883 false,// is_big_endian
884 static_cast<sign_t>(0),// signed
885 -1,// bit_sign_position
888 {std::make_shared<signal_t> (signal_t{
889 "Trns.Trq.Cnvrtr.Lckp.Trnstn.In.Prcess",// generic_name
896 frequency_clock_t(0.00000f),// frequency
898 false,// force_send_changed
902 {1,"TransitionIsInProcess"},
903 {0,"TransitionIsNotInProcess"}
906 decoder_t::decode_state,// decoder
909 std::make_pair<bool, int>(false, 0),// multiplex
910 false,// is_big_endian
911 static_cast<sign_t>(0),// signed
912 -1,// bit_sign_position
915 {std::make_shared<signal_t> (signal_t{
916 "Trns.Trque.Converter.Lockup.Engaged",// generic_name
923 frequency_clock_t(0.00000f),// frequency
925 false,// force_send_changed
929 {0,"TorqueConverterLockupDisengaged"},
930 {1,"TorqueConverterLockupEngaged"}
933 decoder_t::decode_state,// decoder
936 std::make_pair<bool, int>(false, 0),// multiplex
937 false,// is_big_endian
938 static_cast<sign_t>(0),// signed
939 -1,// bit_sign_position
942 } // end signals vector
943 })} // end message_definition entry
944 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",61444,"EEC1",8,4,true,frequency_clock_t(5.00000f),true,
945 { // beginning signals vector
946 {std::make_shared<signal_t> (signal_t{
947 "Actl.Eng.Prcnt.Trque.High.Resolution",// generic_name
954 frequency_clock_t(0.00000f),// frequency
956 false,// force_send_changed
961 {8,"1111NotAvailable"}
964 decoder_t::decode_state,// decoder
967 std::make_pair<bool, int>(false, 0),// multiplex
968 false,// is_big_endian
969 static_cast<sign_t>(0),// signed
970 -1,// bit_sign_position
973 {std::make_shared<signal_t> (signal_t{
974 "Actual.Eng.Percent.Torque",// generic_name
981 frequency_clock_t(0.00000f),// frequency
983 false,// force_send_changed
990 std::make_pair<bool, int>(false, 0),// multiplex
991 false,// is_big_endian
992 static_cast<sign_t>(0),// signed
993 -1,// bit_sign_position
996 {std::make_shared<signal_t> (signal_t{
997 "Drivers.Demand.Eng.Percent.Torque",// generic_name
1004 frequency_clock_t(0.00000f),// frequency
1006 false,// force_send_changed
1013 std::make_pair<bool, int>(false, 0),// multiplex
1014 false,// is_big_endian
1015 static_cast<sign_t>(0),// signed
1016 -1,// bit_sign_position
1019 {std::make_shared<signal_t> (signal_t{
1020 "Eng.Demand.Percent.Torque",// generic_name
1027 frequency_clock_t(0.00000f),// frequency
1029 false,// force_send_changed
1036 std::make_pair<bool, int>(false, 0),// multiplex
1037 false,// is_big_endian
1038 static_cast<sign_t>(0),// signed
1039 -1,// bit_sign_position
1042 {std::make_shared<signal_t> (signal_t{
1043 "Eng.Speed",// generic_name
1050 frequency_clock_t(0.00000f),// frequency
1052 false,// force_send_changed
1059 std::make_pair<bool, int>(false, 0),// multiplex
1060 false,// is_big_endian
1061 static_cast<sign_t>(0),// signed
1062 -1,// bit_sign_position
1065 {std::make_shared<signal_t> (signal_t{
1066 "Eng.Starter.Mode",// generic_name
1073 frequency_clock_t(0.00000f),// frequency
1075 false,// force_send_changed
1079 {15,"notAvailable"},
1081 {2,"starterActiveGearEngaged"},
1082 {1,"starterActiveGearNotEngaged"},
1083 {12,"starterInhibitedReasonUnknown"},
1084 {3,"strtFnshdStrtrNtActvAftrHvngBnA"},
1085 {6,"strtrInhbtdDTDrvlnEnggdOthrTrns"},
1086 {5,"strtrInhbtdDTEngNtReadyForStart"},
1087 {7,"strtrInhbtdDToActiveImmobilizer"},
1088 {4,"strtrInhbtdDToEngAlreadyRunning"},
1089 {8,"strtrInhbtdDueToStarterOvertemp"}
1092 decoder_t::decode_state,// decoder
1095 std::make_pair<bool, int>(false, 0),// multiplex
1096 false,// is_big_endian
1097 static_cast<sign_t>(0),// signed
1098 -1,// bit_sign_position
1101 {std::make_shared<signal_t> (signal_t{
1102 "Eng.Torque.Mode",// generic_name
1109 frequency_clock_t(0.00000f),// frequency
1111 false,// force_send_changed
1115 {1,"Accelerator pedal/operator selec"},
1116 {10,"Braking system"},
1117 {2,"Cruise control"},
1118 {9,"High speed governor"},
1119 {0,"Low idle governor/no request (de"},
1120 {15,"Not available"},
1122 {11,"Remote accelerator"},
1123 {4,"Road speed governor"},
1124 {8,"Torque limiting"},
1125 {6,"Transmission control"}
1128 decoder_t::decode_state,// decoder
1131 std::make_pair<bool, int>(false, 0),// multiplex
1132 false,// is_big_endian
1133 static_cast<sign_t>(0),// signed
1134 -1,// bit_sign_position
1137 {std::make_shared<signal_t> (signal_t{
1138 "Src.AddrssOf.Ctrllng.Dvc.Fr.Eng.Cntrl",// generic_name
1145 frequency_clock_t(0.00000f),// frequency
1147 false,// force_send_changed
1154 std::make_pair<bool, int>(false, 0),// multiplex
1155 false,// is_big_endian
1156 static_cast<sign_t>(0),// signed
1157 -1,// bit_sign_position
1160 } // end signals vector
1161 })} // end message_definition entry
1162 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",61449,"VDC2",8,4,true,frequency_clock_t(5.00000f),true,
1163 { // beginning signals vector
1164 {std::make_shared<signal_t> (signal_t{
1165 "Lateral.Acceleration",// generic_name
1168 0.000488281f,// factor
1172 frequency_clock_t(0.00000f),// frequency
1174 false,// force_send_changed
1181 std::make_pair<bool, int>(false, 0),// multiplex
1182 false,// is_big_endian
1183 static_cast<sign_t>(0),// signed
1184 -1,// bit_sign_position
1187 {std::make_shared<signal_t> (signal_t{
1188 "Longitudinal.Acceleration",// generic_name
1195 frequency_clock_t(0.00000f),// frequency
1197 false,// force_send_changed
1204 std::make_pair<bool, int>(false, 0),// multiplex
1205 false,// is_big_endian
1206 static_cast<sign_t>(0),// signed
1207 -1,// bit_sign_position
1210 {std::make_shared<signal_t> (signal_t{
1211 "Steer.Wheel.Angle",// generic_name
1214 0.000976562f,// factor
1218 frequency_clock_t(0.00000f),// frequency
1220 false,// force_send_changed
1227 std::make_pair<bool, int>(false, 0),// multiplex
1228 false,// is_big_endian
1229 static_cast<sign_t>(0),// signed
1230 -1,// bit_sign_position
1233 {std::make_shared<signal_t> (signal_t{
1234 "Steer.Wheel.Angle.Sensor.Type",// generic_name
1241 frequency_clock_t(0.00000f),// frequency
1243 false,// force_send_changed
1245 {1,"AbsMeasuringPrinciple"},
1247 {0,"RelativeMeasuringPrinciple"},
1251 decoder_t::decode_state,// decoder
1254 std::make_pair<bool, int>(false, 0),// multiplex
1255 false,// is_big_endian
1256 static_cast<sign_t>(0),// signed
1257 -1,// bit_sign_position
1260 {std::make_shared<signal_t> (signal_t{
1261 "Steer.Wheel.Turn.Counter",// generic_name
1268 frequency_clock_t(0.00000f),// frequency
1270 false,// force_send_changed
1277 std::make_pair<bool, int>(false, 0),// multiplex
1278 false,// is_big_endian
1279 static_cast<sign_t>(0),// signed
1280 -1,// bit_sign_position
1283 {std::make_shared<signal_t> (signal_t{
1284 "Yaw.Rate",// generic_name
1287 0.000122070f,// factor
1291 frequency_clock_t(0.00000f),// frequency
1293 false,// force_send_changed
1300 std::make_pair<bool, int>(false, 0),// multiplex
1301 false,// is_big_endian
1302 static_cast<sign_t>(0),// signed
1303 -1,// bit_sign_position
1306 } // end signals vector
1307 })} // end message_definition entry
1308 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",65215,"EBC2",8,4,true,frequency_clock_t(5.00000f),true,
1309 { // beginning signals vector
1310 {std::make_shared<signal_t> (signal_t{
1311 "Front.Axle.Speed",// generic_name
1314 0.00390625f,// factor
1318 frequency_clock_t(0.00000f),// frequency
1320 false,// force_send_changed
1327 std::make_pair<bool, int>(false, 0),// multiplex
1328 false,// is_big_endian
1329 static_cast<sign_t>(0),// signed
1330 -1,// bit_sign_position
1333 {std::make_shared<signal_t> (signal_t{
1334 "Relative.Speed.Front.Axle.Left.Wheel",// generic_name
1337 0.0625000f,// factor
1341 frequency_clock_t(0.00000f),// frequency
1343 false,// force_send_changed
1350 std::make_pair<bool, int>(false, 0),// multiplex
1351 false,// is_big_endian
1352 static_cast<sign_t>(0),// signed
1353 -1,// bit_sign_position
1356 {std::make_shared<signal_t> (signal_t{
1357 "Relative.Speed.Rear.Axle1.Left.Wheel",// generic_name
1360 0.0625000f,// factor
1364 frequency_clock_t(0.00000f),// frequency
1366 false,// force_send_changed
1373 std::make_pair<bool, int>(false, 0),// multiplex
1374 false,// is_big_endian
1375 static_cast<sign_t>(0),// signed
1376 -1,// bit_sign_position
1379 {std::make_shared<signal_t> (signal_t{
1380 "Relative.Speed.Rear.Axle2.Left.Wheel",// generic_name
1383 0.0625000f,// factor
1387 frequency_clock_t(0.00000f),// frequency
1389 false,// force_send_changed
1396 std::make_pair<bool, int>(false, 0),// multiplex
1397 false,// is_big_endian
1398 static_cast<sign_t>(0),// signed
1399 -1,// bit_sign_position
1402 {std::make_shared<signal_t> (signal_t{
1403 "Rlative.Speed.Front.Axle.Right.Wheel",// generic_name
1406 0.0625000f,// factor
1410 frequency_clock_t(0.00000f),// frequency
1412 false,// force_send_changed
1419 std::make_pair<bool, int>(false, 0),// multiplex
1420 false,// is_big_endian
1421 static_cast<sign_t>(0),// signed
1422 -1,// bit_sign_position
1425 {std::make_shared<signal_t> (signal_t{
1426 "Rlative.Speed.Rear.Axle1.Right.Wheel",// generic_name
1429 0.0625000f,// factor
1433 frequency_clock_t(0.00000f),// frequency
1435 false,// force_send_changed
1442 std::make_pair<bool, int>(false, 0),// multiplex
1443 false,// is_big_endian
1444 static_cast<sign_t>(0),// signed
1445 -1,// bit_sign_position
1448 {std::make_shared<signal_t> (signal_t{
1449 "Rlative.Speed.Rear.Axle2.Right.Wheel",// generic_name
1452 0.0625000f,// factor
1456 frequency_clock_t(0.00000f),// frequency
1458 false,// force_send_changed
1465 std::make_pair<bool, int>(false, 0),// multiplex
1466 false,// is_big_endian
1467 static_cast<sign_t>(0),// signed
1468 -1,// bit_sign_position
1471 } // end signals vector
1472 })} // end message_definition entry
1473 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",65253,"HOURS",8,4,true,frequency_clock_t(5.00000f),true,
1474 { // beginning signals vector
1475 {std::make_shared<signal_t> (signal_t{
1476 "Eng.Total.Hours.Of.Operation",// generic_name
1479 0.0500000f,// factor
1483 frequency_clock_t(0.00000f),// frequency
1485 false,// force_send_changed
1492 std::make_pair<bool, int>(false, 0),// multiplex
1493 false,// is_big_endian
1494 static_cast<sign_t>(0),// signed
1495 -1,// bit_sign_position
1498 {std::make_shared<signal_t> (signal_t{
1499 "Eng.Total.Revolutions",// generic_name
1506 frequency_clock_t(0.00000f),// frequency
1508 false,// force_send_changed
1515 std::make_pair<bool, int>(false, 0),// multiplex
1516 false,// is_big_endian
1517 static_cast<sign_t>(0),// signed
1518 -1,// bit_sign_position
1521 } // end signals vector
1522 })} // end message_definition entry
1523 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",65262,"ET1",8,4,true,frequency_clock_t(5.00000f),true,
1524 { // beginning signals vector
1525 {std::make_shared<signal_t> (signal_t{
1526 "Eng.Coolant.Temp",// generic_name
1529 0.0312500f,// factor
1533 frequency_clock_t(0.00000f),// frequency
1535 false,// force_send_changed
1542 std::make_pair<bool, int>(false, 0),// multiplex
1543 false,// is_big_endian
1544 static_cast<sign_t>(0),// signed
1545 -1,// bit_sign_position
1548 {std::make_shared<signal_t> (signal_t{
1549 "Eng.Fuel.Temp1",// generic_name
1556 frequency_clock_t(0.00000f),// frequency
1558 false,// force_send_changed
1565 std::make_pair<bool, int>(false, 0),// multiplex
1566 false,// is_big_endian
1567 static_cast<sign_t>(0),// signed
1568 -1,// bit_sign_position
1571 {std::make_shared<signal_t> (signal_t{
1572 "Eng.Intercooler.Temp",// generic_name
1579 frequency_clock_t(0.00000f),// frequency
1581 false,// force_send_changed
1588 std::make_pair<bool, int>(false, 0),// multiplex
1589 false,// is_big_endian
1590 static_cast<sign_t>(0),// signed
1591 -1,// bit_sign_position
1594 {std::make_shared<signal_t> (signal_t{
1595 "Eng.Intercooler.Thermostat.Opening",// generic_name
1602 frequency_clock_t(0.00000f),// frequency
1604 false,// force_send_changed
1611 std::make_pair<bool, int>(false, 0),// multiplex
1612 false,// is_big_endian
1613 static_cast<sign_t>(0),// signed
1614 -1,// bit_sign_position
1617 {std::make_shared<signal_t> (signal_t{
1618 "Eng.Oil.Temp1",// generic_name
1621 0.0312500f,// factor
1625 frequency_clock_t(0.00000f),// frequency
1627 false,// force_send_changed
1634 std::make_pair<bool, int>(false, 0),// multiplex
1635 false,// is_big_endian
1636 static_cast<sign_t>(0),// signed
1637 -1,// bit_sign_position
1640 {std::make_shared<signal_t> (signal_t{
1641 "Eng.Turbo.Oil.Temp",// generic_name
1644 0.0312500f,// factor
1648 frequency_clock_t(0.00000f),// frequency
1650 false,// force_send_changed
1657 std::make_pair<bool, int>(false, 0),// multiplex
1658 false,// is_big_endian
1659 static_cast<sign_t>(0),// signed
1660 -1,// bit_sign_position
1663 } // end signals vector
1664 })} // end message_definition entry
1666 }, // end message_definition vector
1667 { // beginning diagnostic_messages_ vector
1668 {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1675 decoder_t::decode_obd2_response,
1680 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1682 "engine.coolant.temperature",
1687 decoder_t::decode_obd2_response,
1692 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1699 decoder_t::decode_obd2_response,
1704 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1706 "intake.manifold.pressure",
1711 decoder_t::decode_obd2_response,
1716 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1723 decoder_t::decode_obd2_response,
1728 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1735 decoder_t::decode_obd2_response,
1740 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1742 "intake.air.temperature",
1747 decoder_t::decode_obd2_response,
1752 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1759 decoder_t::decode_obd2_response,
1764 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1766 "throttle.position",
1771 decoder_t::decode_obd2_response,
1776 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1783 decoder_t::decode_obd2_response,
1788 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1795 decoder_t::decode_obd2_response,
1800 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1807 decoder_t::decode_obd2_response,
1812 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1814 "barometric.pressure",
1819 decoder_t::decode_obd2_response,
1824 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1826 "ambient.air.temperature",
1831 decoder_t::decode_obd2_response,
1836 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1838 "commanded.throttle.position",
1843 decoder_t::decode_obd2_response,
1848 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1850 "ethanol.fuel.percentage",
1855 decoder_t::decode_obd2_response,
1860 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1862 "accelerator.pedal.position",
1867 decoder_t::decode_obd2_response,
1872 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1874 "hybrid.battery-pack.remaining.life",
1879 decoder_t::decode_obd2_response,
1884 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1886 "engine.oil.temperature",
1891 decoder_t::decode_obd2_response,
1896 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1903 decoder_t::decode_obd2_response,
1908 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1915 decoder_t::decode_obd2_response,
1921 } // end diagnostic_messages_ vector
1922 })} // end message_set entry
1923 } // end message_set vector
1925 for(std::shared_ptr<message_set_t> cms: message_set_)
1927 std::vector<std::shared_ptr<message_definition_t>> messages_definition = cms->get_messages_definition();
1928 for(std::shared_ptr<message_definition_t> cmd : messages_definition)
1930 cmd->set_parent(cms);
1931 std::vector<std::shared_ptr<signal_t>> signals = cmd->get_signals();
1932 for(std::shared_ptr<signal_t> sig: signals)
1934 sig->set_parent(cmd);
1938 std::vector<std::shared_ptr<diagnostic_message_t>> diagnostic_messages = cms->get_diagnostic_messages();
1939 for(std::shared_ptr<diagnostic_message_t> dm : diagnostic_messages)
1941 dm->set_parent(cms);
1946 const std::string application_t::get_diagnostic_bus() const