1 #include <binding/application.hpp>
2 #include <can/can-decoder.hpp>
3 #include <can/can-encoder.hpp>
6 CTLP_CAPI_REGISTER("agl-virtual-car");
8 std::shared_ptr<message_set_t> cms = 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",0x21,"",8,0,frequency_clock_t(5.00000f),true,
11 { // beginning signals vector
12 {std::make_shared<signal_t> (signal_t{
13 "steering_wheel.cruise.cancel",// generic_name
20 frequency_clock_t(0.00000f),// frequency
22 false,// force_send_changed
26 decoder_t::decode_boolean,// decoder
29 std::make_pair<bool, int>(false, 0),// multiplex
30 static_cast<sign_t>(0),// signed
31 -1,// bit_sign_position
34 {std::make_shared<signal_t> (signal_t{
35 "steering_wheel.cruise.distance",// generic_name
42 frequency_clock_t(0.00000f),// frequency
44 false,// force_send_changed
48 decoder_t::decode_boolean,// decoder
51 std::make_pair<bool, int>(false, 0),// multiplex
52 static_cast<sign_t>(0),// signed
53 -1,// bit_sign_position
56 {std::make_shared<signal_t> (signal_t{
57 "steering_wheel.cruise.enable",// generic_name
64 frequency_clock_t(0.00000f),// frequency
66 false,// force_send_changed
70 decoder_t::decode_boolean,// decoder
73 std::make_pair<bool, int>(false, 0),// multiplex
74 static_cast<sign_t>(0),// signed
75 -1,// bit_sign_position
78 {std::make_shared<signal_t> (signal_t{
79 "steering_wheel.cruise.limit",// generic_name
86 frequency_clock_t(0.00000f),// frequency
88 false,// force_send_changed
92 decoder_t::decode_boolean,// decoder
95 std::make_pair<bool, int>(false, 0),// multiplex
96 static_cast<sign_t>(0),// signed
97 -1,// bit_sign_position
100 {std::make_shared<signal_t> (signal_t{
101 "steering_wheel.cruise.resume",// generic_name
108 frequency_clock_t(0.00000f),// frequency
110 false,// force_send_changed
114 decoder_t::decode_boolean,// decoder
117 std::make_pair<bool, int>(false, 0),// multiplex
118 static_cast<sign_t>(0),// signed
119 -1,// bit_sign_position
122 {std::make_shared<signal_t> (signal_t{
123 "steering_wheel.cruise.set",// generic_name
130 frequency_clock_t(0.00000f),// frequency
132 false,// force_send_changed
136 decoder_t::decode_boolean,// decoder
139 std::make_pair<bool, int>(false, 0),// multiplex
140 static_cast<sign_t>(0),// signed
141 -1,// bit_sign_position
144 {std::make_shared<signal_t> (signal_t{
145 "steering_wheel.horn",// generic_name
152 frequency_clock_t(0.00000f),// frequency
154 false,// force_send_changed
158 decoder_t::decode_boolean,// decoder
161 std::make_pair<bool, int>(false, 0),// multiplex
162 static_cast<sign_t>(0),// signed
163 -1,// bit_sign_position
166 {std::make_shared<signal_t> (signal_t{
167 "steering_wheel.info",// generic_name
174 frequency_clock_t(0.00000f),// frequency
176 false,// force_send_changed
180 decoder_t::decode_boolean,// decoder
183 std::make_pair<bool, int>(false, 0),// multiplex
184 static_cast<sign_t>(0),// signed
185 -1,// bit_sign_position
188 {std::make_shared<signal_t> (signal_t{
189 "steering_wheel.lane_departure_warning",// generic_name
196 frequency_clock_t(0.00000f),// frequency
198 false,// force_send_changed
202 decoder_t::decode_boolean,// decoder
205 std::make_pair<bool, int>(false, 0),// multiplex
206 static_cast<sign_t>(0),// signed
207 -1,// bit_sign_position
210 {std::make_shared<signal_t> (signal_t{
211 "steering_wheel.mode",// generic_name
218 frequency_clock_t(0.00000f),// frequency
220 false,// force_send_changed
224 decoder_t::decode_boolean,// decoder
227 std::make_pair<bool, int>(false, 0),// multiplex
228 static_cast<sign_t>(0),// signed
229 -1,// bit_sign_position
232 {std::make_shared<signal_t> (signal_t{
233 "steering_wheel.next",// generic_name
240 frequency_clock_t(0.00000f),// frequency
242 false,// force_send_changed
246 decoder_t::decode_boolean,// decoder
249 std::make_pair<bool, int>(false, 0),// multiplex
250 static_cast<sign_t>(0),// signed
251 -1,// bit_sign_position
254 {std::make_shared<signal_t> (signal_t{
255 "steering_wheel.phone.call",// generic_name
262 frequency_clock_t(0.00000f),// frequency
264 false,// force_send_changed
268 decoder_t::decode_boolean,// decoder
271 std::make_pair<bool, int>(false, 0),// multiplex
272 static_cast<sign_t>(0),// signed
273 -1,// bit_sign_position
276 {std::make_shared<signal_t> (signal_t{
277 "steering_wheel.phone.hangup",// generic_name
284 frequency_clock_t(0.00000f),// frequency
286 false,// force_send_changed
290 decoder_t::decode_boolean,// decoder
293 std::make_pair<bool, int>(false, 0),// multiplex
294 static_cast<sign_t>(0),// signed
295 -1,// bit_sign_position
298 {std::make_shared<signal_t> (signal_t{
299 "steering_wheel.previous",// generic_name
306 frequency_clock_t(0.00000f),// frequency
308 false,// force_send_changed
312 decoder_t::decode_boolean,// decoder
315 std::make_pair<bool, int>(false, 0),// multiplex
316 static_cast<sign_t>(0),// signed
317 -1,// bit_sign_position
320 {std::make_shared<signal_t> (signal_t{
321 "steering_wheel.voice",// generic_name
328 frequency_clock_t(0.00000f),// frequency
330 false,// force_send_changed
334 decoder_t::decode_boolean,// decoder
337 std::make_pair<bool, int>(false, 0),// multiplex
338 static_cast<sign_t>(0),// signed
339 -1,// bit_sign_position
342 {std::make_shared<signal_t> (signal_t{
343 "steering_wheel.volume.down",// generic_name
350 frequency_clock_t(0.00000f),// frequency
352 false,// force_send_changed
356 decoder_t::decode_boolean,// decoder
359 std::make_pair<bool, int>(false, 0),// multiplex
360 static_cast<sign_t>(0),// signed
361 -1,// bit_sign_position
364 {std::make_shared<signal_t> (signal_t{
365 "steering_wheel.volume.mute",// generic_name
372 frequency_clock_t(0.00000f),// frequency
374 false,// force_send_changed
378 decoder_t::decode_boolean,// decoder
381 std::make_pair<bool, int>(false, 0),// multiplex
382 static_cast<sign_t>(0),// signed
383 -1,// bit_sign_position
386 {std::make_shared<signal_t> (signal_t{
387 "steering_wheel.volume.up",// generic_name
394 frequency_clock_t(0.00000f),// frequency
396 false,// force_send_changed
400 decoder_t::decode_boolean,// decoder
403 std::make_pair<bool, int>(false, 0),// multiplex
404 static_cast<sign_t>(0),// signed
405 -1,// bit_sign_position
408 } // end signals vector
409 })} // end message_definition entry
410 , {std::make_shared<message_definition_t>(message_definition_t{"ls",0x30,"",8,0,frequency_clock_t(5.00000f),true,
411 { // beginning signals vector
412 {std::make_shared<signal_t> (signal_t{
413 "hvac.fan.speed",// generic_name
420 frequency_clock_t(0.00000f),// frequency
422 false,// force_send_changed
429 std::make_pair<bool, int>(false, 0),// multiplex
430 static_cast<sign_t>(0),// signed
431 -1,// bit_sign_position
434 {std::make_shared<signal_t> (signal_t{
435 "hvac.temperature.left",// generic_name
442 frequency_clock_t(0.00000f),// frequency
444 false,// force_send_changed
451 std::make_pair<bool, int>(false, 0),// multiplex
452 static_cast<sign_t>(0),// signed
453 -1,// bit_sign_position
456 {std::make_shared<signal_t> (signal_t{
457 "hvac.temperature.right",// generic_name
464 frequency_clock_t(0.00000f),// frequency
466 false,// force_send_changed
473 std::make_pair<bool, int>(false, 0),// multiplex
474 static_cast<sign_t>(0),// signed
475 -1,// bit_sign_position
478 {std::make_shared<signal_t> (signal_t{
479 "hvac.temperature.average",// generic_name
486 frequency_clock_t(0.00000f),// frequency
488 false,// force_send_changed
495 std::make_pair<bool, int>(false, 0),// multiplex
496 static_cast<sign_t>(0),// signed
497 -1,// bit_sign_position
500 } // end signals vector
501 })} // end message_definition entry
502 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3D9,"",8,0,frequency_clock_t(5.00000f),true,
503 { // beginning signals vector
504 {std::make_shared<signal_t> (signal_t{
505 "engine.speed",// generic_name
512 frequency_clock_t(0.00000f),// frequency
514 false,// force_send_changed
521 std::make_pair<bool, int>(false, 0),// multiplex
522 static_cast<sign_t>(0),// signed
523 -1,// bit_sign_position
526 {std::make_shared<signal_t> (signal_t{
527 "fuel.level.low",// generic_name
534 frequency_clock_t(0.00000f),// frequency
536 false,// force_send_changed
540 decoder_t::decode_boolean,// decoder
543 std::make_pair<bool, int>(false, 0),// multiplex
544 static_cast<sign_t>(0),// signed
545 -1,// bit_sign_position
548 {std::make_shared<signal_t> (signal_t{
549 "fuel.level",// generic_name
556 frequency_clock_t(0.00000f),// frequency
558 false,// force_send_changed
565 std::make_pair<bool, int>(false, 0),// multiplex
566 static_cast<sign_t>(0),// signed
567 -1,// bit_sign_position
570 } // end signals vector
571 })} // end message_definition entry
572 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3DA,"",8,2,frequency_clock_t(5.00000f),true,
573 { // beginning signals vector
574 {std::make_shared<signal_t> (signal_t{
575 "fd.engine.speed",// generic_name
582 frequency_clock_t(0.00000f),// frequency
584 false,// force_send_changed
591 std::make_pair<bool, int>(false, 0),// multiplex
592 static_cast<sign_t>(0),// signed
593 -1,// bit_sign_position
596 {std::make_shared<signal_t> (signal_t{
597 "fd.fuel.level.low",// generic_name
604 frequency_clock_t(0.00000f),// frequency
606 false,// force_send_changed
610 decoder_t::decode_boolean,// decoder
613 std::make_pair<bool, int>(false, 0),// multiplex
614 static_cast<sign_t>(0),// signed
615 -1,// bit_sign_position
618 {std::make_shared<signal_t> (signal_t{
619 "fd.fuel.level",// generic_name
626 frequency_clock_t(0.00000f),// frequency
628 false,// force_send_changed
635 std::make_pair<bool, int>(false, 0),// multiplex
636 static_cast<sign_t>(0),// signed
637 -1,// bit_sign_position
640 } // end signals vector
641 })} // end message_definition entry
642 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3E9,"",8,0,frequency_clock_t(5.00000f),true,
643 { // beginning signals vector
644 {std::make_shared<signal_t> (signal_t{
645 "vehicle.average.speed",// generic_name
652 frequency_clock_t(0.00000f),// frequency
654 false,// force_send_changed
661 std::make_pair<bool, int>(false, 0),// multiplex
662 static_cast<sign_t>(0),// signed
663 -1,// bit_sign_position
666 } // end signals vector
667 })} // end message_definition entry
668 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x4D1,"",8,0,frequency_clock_t(5.00000f),true,
669 { // beginning signals vector
670 {std::make_shared<signal_t> (signal_t{
671 "engine.oil.temp",// generic_name
678 frequency_clock_t(0.00000f),// frequency
680 false,// force_send_changed
687 std::make_pair<bool, int>(false, 0),// multiplex
688 static_cast<sign_t>(0),// signed
689 -1,// bit_sign_position
692 {std::make_shared<signal_t> (signal_t{
693 "engine.oil.temp.high",// generic_name
700 frequency_clock_t(0.00000f),// frequency
702 false,// force_send_changed
706 decoder_t::decode_boolean,// decoder
709 std::make_pair<bool, int>(false, 0),// multiplex
710 static_cast<sign_t>(0),// signed
711 -1,// bit_sign_position
714 } // end signals vector
715 })} // end message_definition entry
716 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x620,"",8,0,frequency_clock_t(5.00000f),true,
717 { // beginning signals vector
718 {std::make_shared<signal_t> (signal_t{
719 "doors.boot.open",// generic_name
726 frequency_clock_t(0.00000f),// frequency
728 false,// force_send_changed
732 decoder_t::decode_boolean,// decoder
735 std::make_pair<bool, int>(false, 0),// multiplex
736 static_cast<sign_t>(0),// signed
737 -1,// bit_sign_position
740 {std::make_shared<signal_t> (signal_t{
741 "doors.front_left.open",// generic_name
748 frequency_clock_t(0.00000f),// frequency
750 false,// force_send_changed
754 decoder_t::decode_boolean,// decoder
757 std::make_pair<bool, int>(false, 0),// multiplex
758 static_cast<sign_t>(0),// signed
759 -1,// bit_sign_position
762 {std::make_shared<signal_t> (signal_t{
763 "doors.front_right.open",// generic_name
770 frequency_clock_t(0.00000f),// frequency
772 false,// force_send_changed
776 decoder_t::decode_boolean,// decoder
779 std::make_pair<bool, int>(false, 0),// multiplex
780 static_cast<sign_t>(0),// signed
781 -1,// bit_sign_position
784 {std::make_shared<signal_t> (signal_t{
785 "doors.rear_left.open",// generic_name
792 frequency_clock_t(0.00000f),// frequency
794 false,// force_send_changed
798 decoder_t::decode_boolean,// decoder
801 std::make_pair<bool, int>(false, 0),// multiplex
802 static_cast<sign_t>(0),// signed
803 -1,// bit_sign_position
806 {std::make_shared<signal_t> (signal_t{
807 "doors.rear_right.open",// generic_name
814 frequency_clock_t(0.00000f),// frequency
816 false,// force_send_changed
820 decoder_t::decode_boolean,// decoder
823 std::make_pair<bool, int>(false, 0),// multiplex
824 static_cast<sign_t>(0),// signed
825 -1,// bit_sign_position
828 } // end signals vector
829 })} // end message_definition entry
830 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x799,"",8,0,frequency_clock_t(5.00000f),true,
831 { // beginning signals vector
832 {std::make_shared<signal_t> (signal_t{
833 "windows.front_left.open",// generic_name
840 frequency_clock_t(0.00000f),// frequency
842 false,// force_send_changed
846 decoder_t::decode_boolean,// decoder
849 std::make_pair<bool, int>(false, 0),// multiplex
850 static_cast<sign_t>(0),// signed
851 -1,// bit_sign_position
854 {std::make_shared<signal_t> (signal_t{
855 "windows.front_right.open",// generic_name
862 frequency_clock_t(0.00000f),// frequency
864 false,// force_send_changed
868 decoder_t::decode_boolean,// decoder
871 std::make_pair<bool, int>(false, 0),// multiplex
872 static_cast<sign_t>(0),// signed
873 -1,// bit_sign_position
876 {std::make_shared<signal_t> (signal_t{
877 "windows.rear_left.open",// generic_name
884 frequency_clock_t(0.00000f),// frequency
886 false,// force_send_changed
890 decoder_t::decode_boolean,// decoder
893 std::make_pair<bool, int>(false, 0),// multiplex
894 static_cast<sign_t>(0),// signed
895 -1,// bit_sign_position
898 {std::make_shared<signal_t> (signal_t{
899 "windows.rear_right.open",// generic_name
906 frequency_clock_t(0.00000f),// frequency
908 false,// force_send_changed
912 decoder_t::decode_boolean,// decoder
915 std::make_pair<bool, int>(false, 0),// multiplex
916 static_cast<sign_t>(0),// signed
917 -1,// bit_sign_position
920 } // end signals vector
921 })} // end message_definition entry
922 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",130306,"Wind.Data",8,8,frequency_clock_t(5.00000f),true,
923 { // beginning signals vector
924 {std::make_shared<signal_t> (signal_t{
925 "Wind.Data.Reference",// generic_name
932 frequency_clock_t(0.00000f),// frequency
934 false,// force_send_changed
937 {1,"Magnetic (ground referenced to Magnetic North)"},
938 {3,"True (boat referenced)"},
939 {0,"True (ground referenced to North)"},
940 {4,"True (water referenced)"}
943 decoder_t::decode_state,// decoder
946 std::make_pair<bool, int>(false, 0),// multiplex
947 static_cast<sign_t>(0),// signed
948 -1,// bit_sign_position
951 {std::make_shared<signal_t> (signal_t{
952 "Wind.Data.Reserved",// generic_name
959 frequency_clock_t(0.00000f),// frequency
961 false,// force_send_changed
965 decoder_t::decode_bytes,// decoder
968 std::make_pair<bool, int>(false, 0),// multiplex
969 static_cast<sign_t>(0),// signed
970 -1,// bit_sign_position
973 {std::make_shared<signal_t> (signal_t{
974 "Wind.Data.Sid",// generic_name
981 frequency_clock_t(0.00000f),// frequency
983 false,// force_send_changed
990 std::make_pair<bool, int>(false, 0),// multiplex
991 static_cast<sign_t>(0),// signed
992 -1,// bit_sign_position
995 {std::make_shared<signal_t> (signal_t{
996 "Wind.Data.Wind.Angle",// generic_name
999 0.000100000f,// factor
1003 frequency_clock_t(0.00000f),// frequency
1005 false,// force_send_changed
1012 std::make_pair<bool, int>(false, 0),// multiplex
1013 static_cast<sign_t>(0),// signed
1014 -1,// bit_sign_position
1017 {std::make_shared<signal_t> (signal_t{
1018 "Wind.Data.Wind.Speed",// generic_name
1021 0.0100000f,// factor
1025 frequency_clock_t(0.00000f),// frequency
1027 false,// force_send_changed
1034 std::make_pair<bool, int>(false, 0),// multiplex
1035 static_cast<sign_t>(0),// signed
1036 -1,// bit_sign_position
1039 } // end signals vector
1040 })} // end message_definition entry
1041 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",61442,"ETC1",8,8,frequency_clock_t(5.00000f),true,
1042 { // beginning signals vector
1043 {std::make_shared<signal_t> (signal_t{
1044 "Eng.Momentary.Overspeed.Enable",// generic_name
1051 frequency_clock_t(0.00000f),// frequency
1053 false,// force_send_changed
1055 {0,"MomentaryEngOverspeedIsDisabled"},
1056 {1,"MomentaryEngOverspeedIsEnabled"},
1061 decoder_t::decode_state,// decoder
1064 std::make_pair<bool, int>(false, 0),// multiplex
1065 static_cast<sign_t>(0),// signed
1066 -1,// bit_sign_position
1069 {std::make_shared<signal_t> (signal_t{
1070 "Momentary.Eng.Max.Power.Enable",// generic_name
1077 frequency_clock_t(0.00000f),// frequency
1079 false,// force_send_changed
1082 {1,"mmntarilyRqingMaxPowerAvailable"},
1084 {0,"notRqingMaxPowerAvailable"}
1087 decoder_t::decode_state,// decoder
1090 std::make_pair<bool, int>(false, 0),// multiplex
1091 static_cast<sign_t>(0),// signed
1092 -1,// bit_sign_position
1095 {std::make_shared<signal_t> (signal_t{
1096 "Percent.Clutch.Slip",// generic_name
1103 frequency_clock_t(0.00000f),// frequency
1105 false,// force_send_changed
1112 std::make_pair<bool, int>(false, 0),// multiplex
1113 static_cast<sign_t>(0),// signed
1114 -1,// bit_sign_position
1117 {std::make_shared<signal_t> (signal_t{
1118 "Progressive.Shift.Disable",// generic_name
1125 frequency_clock_t(0.00000f),// frequency
1127 false,// force_send_changed
1129 {1,"ProgressiveShiftIsDisabled"},
1130 {0,"ProgressiveShiftIsNotDisabled"},
1135 decoder_t::decode_state,// decoder
1138 std::make_pair<bool, int>(false, 0),// multiplex
1139 static_cast<sign_t>(0),// signed
1140 -1,// bit_sign_position
1143 {std::make_shared<signal_t> (signal_t{
1144 "Src.Addrss.Of.Ctrllng.Dvc.Fr.Trns.Cntrl",// generic_name
1151 frequency_clock_t(0.00000f),// frequency
1153 false,// force_send_changed
1160 std::make_pair<bool, int>(false, 0),// multiplex
1161 static_cast<sign_t>(0),// signed
1162 -1,// bit_sign_position
1165 {std::make_shared<signal_t> (signal_t{
1166 "Trans.Driveline.Engaged",// generic_name
1173 frequency_clock_t(0.00000f),// frequency
1175 false,// force_send_changed
1177 {0,"DrivelineDisengaged"},
1178 {1,"DrivelineEngaged"},
1183 decoder_t::decode_state,// decoder
1186 std::make_pair<bool, int>(false, 0),// multiplex
1187 static_cast<sign_t>(0),// signed
1188 -1,// bit_sign_position
1191 {std::make_shared<signal_t> (signal_t{
1192 "Trans.Input.Shaft.Speed",// generic_name
1199 frequency_clock_t(0.00000f),// frequency
1201 false,// force_send_changed
1208 std::make_pair<bool, int>(false, 0),// multiplex
1209 static_cast<sign_t>(0),// signed
1210 -1,// bit_sign_position
1213 {std::make_shared<signal_t> (signal_t{
1214 "Trans.Output.Shaft.Speed",// generic_name
1221 frequency_clock_t(0.00000f),// frequency
1223 false,// force_send_changed
1230 std::make_pair<bool, int>(false, 0),// multiplex
1231 static_cast<sign_t>(0),// signed
1232 -1,// bit_sign_position
1235 {std::make_shared<signal_t> (signal_t{
1236 "Trans.Shift.In.Process",// generic_name
1243 frequency_clock_t(0.00000f),// frequency
1245 false,// force_send_changed
1249 {1,"ShiftInProcess"},
1250 {0,"ShiftIsNotInProcess"}
1253 decoder_t::decode_state,// decoder
1256 std::make_pair<bool, int>(false, 0),// multiplex
1257 static_cast<sign_t>(0),// signed
1258 -1,// bit_sign_position
1261 {std::make_shared<signal_t> (signal_t{
1262 "Trns.Trq.Cnvrtr.Lckp.Trnstn.In.Prcess",// generic_name
1269 frequency_clock_t(0.00000f),// frequency
1271 false,// force_send_changed
1275 {1,"TransitionIsInProcess"},
1276 {0,"TransitionIsNotInProcess"}
1279 decoder_t::decode_state,// decoder
1282 std::make_pair<bool, int>(false, 0),// multiplex
1283 static_cast<sign_t>(0),// signed
1284 -1,// bit_sign_position
1287 {std::make_shared<signal_t> (signal_t{
1288 "Trns.Trque.Converter.Lockup.Engaged",// generic_name
1295 frequency_clock_t(0.00000f),// frequency
1297 false,// force_send_changed
1301 {0,"TorqueConverterLockupDisengaged"},
1302 {1,"TorqueConverterLockupEngaged"}
1305 decoder_t::decode_state,// decoder
1308 std::make_pair<bool, int>(false, 0),// multiplex
1309 static_cast<sign_t>(0),// signed
1310 -1,// bit_sign_position
1313 } // end signals vector
1314 })} // end message_definition entry
1315 , {std::make_shared<message_definition_t>(message_definition_t{"j1939",61444,"EEC1",8,8,frequency_clock_t(5.00000f),true,
1316 { // beginning signals vector
1317 {std::make_shared<signal_t> (signal_t{
1318 "Actl.Eng.Prcnt.Trque.High.Resolution",// generic_name
1325 frequency_clock_t(0.00000f),// frequency
1327 false,// force_send_changed
1332 {8,"1111NotAvailable"}
1335 decoder_t::decode_state,// decoder
1338 std::make_pair<bool, int>(false, 0),// multiplex
1339 static_cast<sign_t>(0),// signed
1340 -1,// bit_sign_position
1343 {std::make_shared<signal_t> (signal_t{
1344 "Actual.Eng.Percent.Torque",// generic_name
1351 frequency_clock_t(0.00000f),// frequency
1353 false,// force_send_changed
1360 std::make_pair<bool, int>(false, 0),// multiplex
1361 static_cast<sign_t>(0),// signed
1362 -1,// bit_sign_position
1365 {std::make_shared<signal_t> (signal_t{
1366 "Drivers.Demand.Eng.Percent.Torque",// generic_name
1373 frequency_clock_t(0.00000f),// frequency
1375 false,// force_send_changed
1382 std::make_pair<bool, int>(false, 0),// multiplex
1383 static_cast<sign_t>(0),// signed
1384 -1,// bit_sign_position
1387 {std::make_shared<signal_t> (signal_t{
1388 "Eng.Demand.Percent.Torque",// generic_name
1395 frequency_clock_t(0.00000f),// frequency
1397 false,// force_send_changed
1404 std::make_pair<bool, int>(false, 0),// multiplex
1405 static_cast<sign_t>(0),// signed
1406 -1,// bit_sign_position
1409 {std::make_shared<signal_t> (signal_t{
1410 "Eng.Speed",// generic_name
1417 frequency_clock_t(0.00000f),// frequency
1419 false,// force_send_changed
1426 std::make_pair<bool, int>(false, 0),// multiplex
1427 static_cast<sign_t>(0),// signed
1428 -1,// bit_sign_position
1431 {std::make_shared<signal_t> (signal_t{
1432 "Eng.Starter.Mode",// generic_name
1439 frequency_clock_t(0.00000f),// frequency
1441 false,// force_send_changed
1445 {15,"notAvailable"},
1447 {2,"starterActiveGearEngaged"},
1448 {1,"starterActiveGearNotEngaged"},
1449 {12,"starterInhibitedReasonUnknown"},
1450 {3,"strtFnshdStrtrNtActvAftrHvngBnA"},
1451 {6,"strtrInhbtdDTDrvlnEnggdOthrTrns"},
1452 {5,"strtrInhbtdDTEngNtReadyForStart"},
1453 {7,"strtrInhbtdDToActiveImmobilizer"},
1454 {4,"strtrInhbtdDToEngAlreadyRunning"},
1455 {8,"strtrInhbtdDueToStarterOvertemp"}
1458 decoder_t::decode_state,// decoder
1461 std::make_pair<bool, int>(false, 0),// multiplex
1462 static_cast<sign_t>(0),// signed
1463 -1,// bit_sign_position
1466 {std::make_shared<signal_t> (signal_t{
1467 "Eng.Torque.Mode",// generic_name
1474 frequency_clock_t(0.00000f),// frequency
1476 false,// force_send_changed
1480 {1,"Accelerator pedal/operator selec"},
1481 {10,"Braking system"},
1482 {2,"Cruise control"},
1483 {9,"High speed governor"},
1484 {0,"Low idle governor/no request (de"},
1485 {15,"Not available"},
1487 {11,"Remote accelerator"},
1488 {4,"Road speed governor"},
1489 {8,"Torque limiting"},
1490 {6,"Transmission control"}
1493 decoder_t::decode_state,// decoder
1496 std::make_pair<bool, int>(false, 0),// multiplex
1497 static_cast<sign_t>(0),// signed
1498 -1,// bit_sign_position
1501 {std::make_shared<signal_t> (signal_t{
1502 "Src.AddrssOf.Ctrllng.Dvc.Fr.Eng.Cntrl",// generic_name
1509 frequency_clock_t(0.00000f),// frequency
1511 false,// force_send_changed
1518 std::make_pair<bool, int>(false, 0),// multiplex
1519 static_cast<sign_t>(0),// signed
1520 -1,// bit_sign_position
1523 } // end signals vector
1524 })} // end message_definition entry
1525 }, // end message_definition vector
1526 { // beginning diagnostic_messages_ vector
1527 {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1534 decoder_t::decode_obd2_response,
1539 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1541 "engine.coolant.temperature",
1546 decoder_t::decode_obd2_response,
1551 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1558 decoder_t::decode_obd2_response,
1563 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1565 "intake.manifold.pressure",
1570 decoder_t::decode_obd2_response,
1575 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1582 decoder_t::decode_obd2_response,
1587 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1594 decoder_t::decode_obd2_response,
1599 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1601 "intake.air.temperature",
1606 decoder_t::decode_obd2_response,
1611 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1618 decoder_t::decode_obd2_response,
1623 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1625 "throttle.position",
1630 decoder_t::decode_obd2_response,
1635 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1642 decoder_t::decode_obd2_response,
1647 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1654 decoder_t::decode_obd2_response,
1659 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1666 decoder_t::decode_obd2_response,
1671 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1673 "barometric.pressure",
1678 decoder_t::decode_obd2_response,
1683 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1685 "ambient.air.temperature",
1690 decoder_t::decode_obd2_response,
1695 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1697 "commanded.throttle.position",
1702 decoder_t::decode_obd2_response,
1707 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1709 "ethanol.fuel.percentage",
1714 decoder_t::decode_obd2_response,
1719 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1721 "accelerator.pedal.position",
1726 decoder_t::decode_obd2_response,
1731 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1733 "hybrid.battery-pack.remaining.life",
1738 decoder_t::decode_obd2_response,
1743 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1745 "engine.oil.temperature",
1750 decoder_t::decode_obd2_response,
1755 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1762 decoder_t::decode_obd2_response,
1767 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
1774 decoder_t::decode_obd2_response,
1780 } // end diagnostic_messages_ vector
1781 }); // end message_set entry
1783 CTLP_ONLOAD(plugin, handle) {
1784 afb_api_t api = (afb_api_t) plugin->api;
1785 CtlConfigT* CtlConfig = (CtlConfigT*) afb_api_get_userdata(api);
1786 application_t* app = (application_t*) getExternalData(CtlConfig);
1788 return app->add_message_set(cms);