1 #include <binding/application.hpp>
2 #include <can/can-decoder.hpp>
3 #include <can/can-encoder.hpp>
6 CTLP_CAPI_REGISTER("example");
8 std::shared_ptr<message_set_t> cms = std::make_shared<message_set_t>(message_set_t{0,"example",
9 { // beginning message_definition_ vector
10 {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3D9,"",8,0,frequency_clock_t(5.00000f),true,
11 { // beginning signals vector
12 {std::make_shared<signal_t> (signal_t{
13 "engine.speed",// generic_name
20 frequency_clock_t(0.00000f),// frequency
22 false,// force_send_changed
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 "fuel.level.low",// 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 "fuel.level",// generic_name
64 frequency_clock_t(0.00000f),// frequency
66 false,// force_send_changed
73 std::make_pair<bool, int>(false, 0),// multiplex
74 static_cast<sign_t>(0),// signed
75 -1,// bit_sign_position
78 } // end signals vector
79 })} // end message_definition entry
80 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3E9,"",8,0,frequency_clock_t(5.00000f),true,
81 { // beginning signals vector
82 {std::make_shared<signal_t> (signal_t{
83 "vehicle.average.speed",// generic_name
90 frequency_clock_t(0.00000f),// frequency
92 false,// force_send_changed
99 std::make_pair<bool, int>(false, 0),// multiplex
100 static_cast<sign_t>(0),// signed
101 -1,// bit_sign_position
104 } // end signals vector
105 })} // end message_definition entry
106 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x4D1,"",8,0,frequency_clock_t(5.00000f),true,
107 { // beginning signals vector
108 {std::make_shared<signal_t> (signal_t{
109 "engine.oil.temp",// generic_name
116 frequency_clock_t(0.00000f),// frequency
118 false,// force_send_changed
125 std::make_pair<bool, int>(false, 0),// multiplex
126 static_cast<sign_t>(0),// signed
127 -1,// bit_sign_position
130 {std::make_shared<signal_t> (signal_t{
131 "engine.oil.temp.high",// generic_name
138 frequency_clock_t(0.00000f),// frequency
140 false,// force_send_changed
144 decoder_t::decode_boolean,// decoder
147 std::make_pair<bool, int>(false, 0),// multiplex
148 static_cast<sign_t>(0),// signed
149 -1,// bit_sign_position
152 } // end signals vector
153 })} // end message_definition entry
154 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x620,"",8,0,frequency_clock_t(5.00000f),true,
155 { // beginning signals vector
156 {std::make_shared<signal_t> (signal_t{
157 "doors.boot.open",// generic_name
164 frequency_clock_t(0.00000f),// frequency
166 false,// force_send_changed
170 decoder_t::decode_boolean,// decoder
173 std::make_pair<bool, int>(false, 0),// multiplex
174 static_cast<sign_t>(0),// signed
175 -1,// bit_sign_position
178 {std::make_shared<signal_t> (signal_t{
179 "doors.front_left.open",// generic_name
186 frequency_clock_t(0.00000f),// frequency
188 false,// force_send_changed
192 decoder_t::decode_boolean,// decoder
195 std::make_pair<bool, int>(false, 0),// multiplex
196 static_cast<sign_t>(0),// signed
197 -1,// bit_sign_position
200 {std::make_shared<signal_t> (signal_t{
201 "doors.front_right.open",// generic_name
208 frequency_clock_t(0.00000f),// frequency
210 false,// force_send_changed
214 decoder_t::decode_boolean,// decoder
217 std::make_pair<bool, int>(false, 0),// multiplex
218 static_cast<sign_t>(0),// signed
219 -1,// bit_sign_position
222 {std::make_shared<signal_t> (signal_t{
223 "doors.rear_left.open",// 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
240 static_cast<sign_t>(0),// signed
241 -1,// bit_sign_position
244 {std::make_shared<signal_t> (signal_t{
245 "doors.rear_right.open",// generic_name
252 frequency_clock_t(0.00000f),// frequency
254 false,// force_send_changed
258 decoder_t::decode_boolean,// decoder
261 std::make_pair<bool, int>(false, 0),// multiplex
262 static_cast<sign_t>(0),// signed
263 -1,// bit_sign_position
266 } // end signals vector
267 })} // end message_definition entry
268 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x799,"",8,0,frequency_clock_t(5.00000f),true,
269 { // beginning signals vector
270 {std::make_shared<signal_t> (signal_t{
271 "windows.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
288 static_cast<sign_t>(0),// signed
289 -1,// bit_sign_position
292 {std::make_shared<signal_t> (signal_t{
293 "windows.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
310 static_cast<sign_t>(0),// signed
311 -1,// bit_sign_position
314 {std::make_shared<signal_t> (signal_t{
315 "windows.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
332 static_cast<sign_t>(0),// signed
333 -1,// bit_sign_position
336 {std::make_shared<signal_t> (signal_t{
337 "windows.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
354 static_cast<sign_t>(0),// signed
355 -1,// bit_sign_position
358 } // end signals vector
359 })} // end message_definition entry
360 }, // end message_definition vector
361 { // beginning diagnostic_messages_ vector
362 {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
369 decoder_t::decode_obd2_response,
374 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
376 "engine.coolant.temperature",
381 decoder_t::decode_obd2_response,
386 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
393 decoder_t::decode_obd2_response,
398 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
400 "intake.manifold.pressure",
405 decoder_t::decode_obd2_response,
410 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
417 decoder_t::decode_obd2_response,
422 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
429 decoder_t::decode_obd2_response,
434 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
436 "intake.air.temperature",
441 decoder_t::decode_obd2_response,
446 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
453 decoder_t::decode_obd2_response,
458 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
465 decoder_t::decode_obd2_response,
470 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
477 decoder_t::decode_obd2_response,
482 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
489 decoder_t::decode_obd2_response,
494 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
501 decoder_t::decode_obd2_response,
506 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
508 "barometric.pressure",
513 decoder_t::decode_obd2_response,
518 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
520 "ambient.air.temperature",
525 decoder_t::decode_obd2_response,
530 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
532 "commanded.throttle.position",
537 decoder_t::decode_obd2_response,
542 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
544 "ethanol.fuel.percentage",
549 decoder_t::decode_obd2_response,
554 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
556 "accelerator.pedal.position",
561 decoder_t::decode_obd2_response,
566 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
568 "hybrid.battery-pack.remaining.life",
573 decoder_t::decode_obd2_response,
578 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
580 "engine.oil.temperature",
585 decoder_t::decode_obd2_response,
590 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
597 decoder_t::decode_obd2_response,
602 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
609 decoder_t::decode_obd2_response,
615 } // end diagnostic_messages_ vector
616 }); // end message_set entry
618 CTLP_ONLOAD(plugin, handle) {
619 afb_api_t api = (afb_api_t) plugin->api;
620 CtlConfigT* CtlConfig = (CtlConfigT*) afb_api_get_userdata(api);
621 application_t* app = (application_t*) getExternalData(CtlConfig);
623 return app->add_message_set(cms);