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<can_message_set_t>(can_message_set_t{0,"AGL Virtual Car",
9 { // beginning can_message_definition_ vector
10 {std::make_shared<can_message_definition_t>(can_message_definition_t{
14 can_message_format_t::EXTENDED,
15 frequency_clock_t(5.00000f),
17 { // beginning can_signals vector
18 {std::make_shared<can_signal_t> (can_signal_t{
26 frequency_clock_t(0.00000f),
36 {std::make_shared<can_signal_t> (can_signal_t{
37 "hvac.temperature.left",
44 frequency_clock_t(0.00000f),
54 {std::make_shared<can_signal_t> (can_signal_t{
55 "hvac.temperature.right",
62 frequency_clock_t(0.00000f),
72 {std::make_shared<can_signal_t> (can_signal_t{
73 "hvac.temperature.average",
80 frequency_clock_t(0.00000f),
90 } // end can_signals vector
91 })} // end can_message_definition entry
92 , {std::make_shared<can_message_definition_t>(can_message_definition_t{
96 can_message_format_t::STANDARD,
97 frequency_clock_t(5.00000f),
99 { // beginning can_signals vector
100 {std::make_shared<can_signal_t> (can_signal_t{
108 frequency_clock_t(0.00000f),
118 {std::make_shared<can_signal_t> (can_signal_t{
126 frequency_clock_t(0.00000f),
132 decoder_t::decode_boolean,
136 {std::make_shared<can_signal_t> (can_signal_t{
144 frequency_clock_t(0.00000f),
154 } // end can_signals vector
155 })} // end can_message_definition entry
156 , {std::make_shared<can_message_definition_t>(can_message_definition_t{
160 can_message_format_t::EXTENDED,
161 frequency_clock_t(5.00000f),
163 { // beginning can_signals vector
164 {std::make_shared<can_signal_t> (can_signal_t{
165 "vehicle.average.speed",
172 frequency_clock_t(0.00000f),
182 } // end can_signals vector
183 })} // end can_message_definition entry
184 , {std::make_shared<can_message_definition_t>(can_message_definition_t{
188 can_message_format_t::STANDARD,
189 frequency_clock_t(5.00000f),
191 { // beginning can_signals vector
192 {std::make_shared<can_signal_t> (can_signal_t{
200 frequency_clock_t(0.00000f),
210 {std::make_shared<can_signal_t> (can_signal_t{
211 "engine.oil.temp.high",
218 frequency_clock_t(0.00000f),
224 decoder_t::decode_boolean,
228 } // end can_signals vector
229 })} // end can_message_definition entry
230 , {std::make_shared<can_message_definition_t>(can_message_definition_t{
234 can_message_format_t::STANDARD,
235 frequency_clock_t(5.00000f),
237 { // beginning can_signals vector
238 {std::make_shared<can_signal_t> (can_signal_t{
246 frequency_clock_t(0.00000f),
252 decoder_t::decode_boolean,
256 {std::make_shared<can_signal_t> (can_signal_t{
257 "doors.front_left.open",
264 frequency_clock_t(0.00000f),
270 decoder_t::decode_boolean,
274 {std::make_shared<can_signal_t> (can_signal_t{
275 "doors.front_right.open",
282 frequency_clock_t(0.00000f),
288 decoder_t::decode_boolean,
292 {std::make_shared<can_signal_t> (can_signal_t{
293 "doors.rear_left.open",
300 frequency_clock_t(0.00000f),
306 decoder_t::decode_boolean,
310 {std::make_shared<can_signal_t> (can_signal_t{
311 "doors.rear_right.open",
318 frequency_clock_t(0.00000f),
324 decoder_t::decode_boolean,
328 } // end can_signals vector
329 })} // end can_message_definition entry
330 , {std::make_shared<can_message_definition_t>(can_message_definition_t{
334 can_message_format_t::STANDARD,
335 frequency_clock_t(5.00000f),
337 { // beginning can_signals vector
338 {std::make_shared<can_signal_t> (can_signal_t{
339 "windows.front_left.open",
346 frequency_clock_t(0.00000f),
352 decoder_t::decode_boolean,
356 {std::make_shared<can_signal_t> (can_signal_t{
357 "windows.front_right.open",
364 frequency_clock_t(0.00000f),
370 decoder_t::decode_boolean,
374 {std::make_shared<can_signal_t> (can_signal_t{
375 "windows.rear_left.open",
382 frequency_clock_t(0.00000f),
388 decoder_t::decode_boolean,
392 {std::make_shared<can_signal_t> (can_signal_t{
393 "windows.rear_right.open",
400 frequency_clock_t(0.00000f),
406 decoder_t::decode_boolean,
410 } // end can_signals vector
411 })} // end can_message_definition entry
413 }, // end can_message_definition vector
414 { // beginning diagnostic_messages_ vector
415 {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
422 decoder_t::decode_obd2_response,
427 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
429 "engine.coolant.temperature",
434 decoder_t::decode_obd2_response,
439 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
446 decoder_t::decode_obd2_response,
451 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
453 "intake.manifold.pressure",
458 decoder_t::decode_obd2_response,
463 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
470 decoder_t::decode_obd2_response,
475 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
482 decoder_t::decode_obd2_response,
487 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
489 "intake.air.temperature",
494 decoder_t::decode_obd2_response,
499 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
506 decoder_t::decode_obd2_response,
511 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
518 decoder_t::decode_obd2_response,
523 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
530 decoder_t::decode_obd2_response,
535 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
542 decoder_t::decode_obd2_response,
547 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
554 decoder_t::decode_obd2_response,
559 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
561 "barometric.pressure",
566 decoder_t::decode_obd2_response,
571 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
573 "ambient.air.temperature",
578 decoder_t::decode_obd2_response,
583 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
585 "commanded.throttle.position",
590 decoder_t::decode_obd2_response,
595 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
597 "ethanol.fuel.percentage",
602 decoder_t::decode_obd2_response,
607 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
609 "accelerator.pedal.position",
614 decoder_t::decode_obd2_response,
619 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
621 "hybrid.battery-pack.remaining.life",
626 decoder_t::decode_obd2_response,
631 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
633 "engine.oil.temperature",
638 decoder_t::decode_obd2_response,
643 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
650 decoder_t::decode_obd2_response,
655 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
662 decoder_t::decode_obd2_response,
668 } // end diagnostic_messages_ vector
669 })} // end can_message_set entry
670 } // end can_message_set vector
672 for(auto& cms: can_message_set_)
674 std::vector<std::shared_ptr<can_message_definition_t> >& can_messages_definition = cms->get_can_message_definition();
675 for(auto& cmd : can_messages_definition)
677 cmd->set_parent(cms.get());
678 std::vector<std::shared_ptr<can_signal_t> >& can_signals = cmd->get_can_signals();
679 for(auto& sig: can_signals)
681 sig->set_parent(cmd.get());
685 std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages = cms->get_diagnostic_messages();
686 for(auto& dm : diagnostic_messages)
688 dm->set_parent(cms.get());
693 const std::string application_t::get_diagnostic_bus() const