1 #include "application.hpp"
2 #include "../can/can-decoder.hpp"
4 application_t::application_t()
5 : can_bus_manager_{utils::config_parser_t{"/etc/dev-mapping.conf"}}
7 {std::make_shared<can_message_set_t>(can_message_set_t{0,"example",
8 { // beginning can_message_definition_ vector
9 {std::make_shared<can_message_definition_t>(can_message_definition_t{"hs",0x3D9,can_message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
10 { // beginning can_signals vector
11 {std::make_shared<can_signal_t> (can_signal_t{
19 frequency_clock_t(0.00000f),
29 {std::make_shared<can_signal_t> (can_signal_t{
37 frequency_clock_t(0.00000f),
43 decoder_t::booleanDecoder,
47 {std::make_shared<can_signal_t> (can_signal_t{
55 frequency_clock_t(0.00000f),
65 } // end can_signals vector
66 })} // end can_message_definition entry
67 , {std::make_shared<can_message_definition_t>(can_message_definition_t{"hs",0x3E9,can_message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
68 { // beginning can_signals vector
69 {std::make_shared<can_signal_t> (can_signal_t{
70 "vehicle.average.speed",
77 frequency_clock_t(0.00000f),
87 } // end can_signals vector
88 })} // end can_message_definition entry
89 , {std::make_shared<can_message_definition_t>(can_message_definition_t{"hs",0x4D1,can_message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
90 { // beginning can_signals vector
91 {std::make_shared<can_signal_t> (can_signal_t{
99 frequency_clock_t(0.00000f),
109 {std::make_shared<can_signal_t> (can_signal_t{
110 "engine.oil.temp.high",
117 frequency_clock_t(0.00000f),
123 decoder_t::booleanDecoder,
127 } // end can_signals vector
128 })} // end can_message_definition entry
129 , {std::make_shared<can_message_definition_t>(can_message_definition_t{"hs",0x620,can_message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
130 { // beginning can_signals vector
131 {std::make_shared<can_signal_t> (can_signal_t{
139 frequency_clock_t(0.00000f),
145 decoder_t::booleanDecoder,
149 {std::make_shared<can_signal_t> (can_signal_t{
150 "doors.front_left.open",
157 frequency_clock_t(0.00000f),
163 decoder_t::booleanDecoder,
167 {std::make_shared<can_signal_t> (can_signal_t{
168 "doors.front_right.open",
175 frequency_clock_t(0.00000f),
181 decoder_t::booleanDecoder,
185 {std::make_shared<can_signal_t> (can_signal_t{
186 "doors.rear_left.open",
193 frequency_clock_t(0.00000f),
199 decoder_t::booleanDecoder,
203 {std::make_shared<can_signal_t> (can_signal_t{
204 "doors.rear_right.open",
211 frequency_clock_t(0.00000f),
217 decoder_t::booleanDecoder,
221 } // end can_signals vector
222 })} // end can_message_definition entry
223 , {std::make_shared<can_message_definition_t>(can_message_definition_t{"hs",0x799,can_message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
224 { // beginning can_signals vector
225 {std::make_shared<can_signal_t> (can_signal_t{
226 "windows.front_left.open",
233 frequency_clock_t(0.00000f),
239 decoder_t::booleanDecoder,
243 {std::make_shared<can_signal_t> (can_signal_t{
244 "windows.front_right.open",
251 frequency_clock_t(0.00000f),
257 decoder_t::booleanDecoder,
261 {std::make_shared<can_signal_t> (can_signal_t{
262 "windows.rear_left.open",
269 frequency_clock_t(0.00000f),
275 decoder_t::booleanDecoder,
279 {std::make_shared<can_signal_t> (can_signal_t{
280 "windows.rear_right.open",
287 frequency_clock_t(0.00000f),
293 decoder_t::booleanDecoder,
297 } // end can_signals vector
298 })} // end can_message_definition entry
300 }, // end can_message_definition vector
301 { // beginning diagnostic_messages_ vector
302 {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
309 decoder_t::decode_obd2_response,
314 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
316 "engine.coolant.temperature",
321 decoder_t::decode_obd2_response,
326 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
333 decoder_t::decode_obd2_response,
338 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
340 "intake.manifold.pressure",
345 decoder_t::decode_obd2_response,
350 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
357 decoder_t::decode_obd2_response,
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 "intake.air.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{
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{
441 decoder_t::decode_obd2_response,
446 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
448 "barometric.pressure",
453 decoder_t::decode_obd2_response,
458 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
460 "ambient.air.temperature",
465 decoder_t::decode_obd2_response,
470 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
472 "commanded.throttle.position",
477 decoder_t::decode_obd2_response,
482 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
484 "ethanol.fuel.percentage",
489 decoder_t::decode_obd2_response,
494 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
496 "accelerator.pedal.position",
501 decoder_t::decode_obd2_response,
506 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
508 "hybrid.battery-pack.remaining.life",
513 decoder_t::decode_obd2_response,
518 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
520 "engine.oil.temperature",
525 decoder_t::decode_obd2_response,
530 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
537 decoder_t::decode_obd2_response,
542 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
549 decoder_t::decode_obd2_response,
555 } // end diagnostic_messages_ vector
556 })} // end can_message_set entry
557 } // end can_message_set vector
559 for(auto& cms: can_message_set_)
561 std::vector<std::shared_ptr<can_message_definition_t> >& can_messages_definition = cms->get_can_message_definition();
562 for(auto& cmd : can_messages_definition)
564 cmd->set_parent(cms.get());
565 std::vector<std::shared_ptr<can_signal_t> >& can_signals = cmd->get_can_signals();
566 for(auto& sig: can_signals)
568 sig->set_parent(cmd.get());
572 std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages = cms->get_diagnostic_messages();
573 for(auto& dm : diagnostic_messages)
575 dm->set_parent(cms.get());
580 const std::string application_t::get_diagnostic_bus() const