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,
313 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
315 "engine.coolant.temperature",
320 decoder_t::decode_obd2_response,
324 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
331 decoder_t::decode_obd2_response,
335 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
337 "intake.manifold.pressure",
342 decoder_t::decode_obd2_response,
346 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
353 decoder_t::decode_obd2_response,
357 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
364 decoder_t::decode_obd2_response,
368 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
370 "intake.air.temperature",
375 decoder_t::decode_obd2_response,
379 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
386 decoder_t::decode_obd2_response,
390 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
397 decoder_t::decode_obd2_response,
401 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
408 decoder_t::decode_obd2_response,
412 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
419 decoder_t::decode_obd2_response,
423 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
430 decoder_t::decode_obd2_response,
434 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
436 "barometric.pressure",
441 decoder_t::decode_obd2_response,
445 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
447 "ambient.air.temperature",
452 decoder_t::decode_obd2_response,
456 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
458 "commanded.throttle.position",
463 decoder_t::decode_obd2_response,
467 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
469 "ethanol.fuel.percentage",
474 decoder_t::decode_obd2_response,
478 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
480 "accelerator.pedal.position",
485 decoder_t::decode_obd2_response,
489 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
491 "hybrid.battery-pack.remaining.life",
496 decoder_t::decode_obd2_response,
500 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
502 "engine.oil.temperature",
507 decoder_t::decode_obd2_response,
511 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
518 decoder_t::decode_obd2_response,
522 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
529 decoder_t::decode_obd2_response,
534 } // end diagnostic_messages_ vector
535 })} // end can_message_set entry
536 } // end can_message_set vector
538 for(auto& cms: can_message_set_)
540 std::vector<std::shared_ptr<can_message_definition_t> >& can_messages_definition = cms->get_can_message_definition();
541 for(auto& cmd : can_messages_definition)
543 cmd->set_parent(cms.get());
544 std::vector<std::shared_ptr<can_signal_t> >& can_signals = cmd->get_can_signals();
545 for(auto& sig: can_signals)
547 sig->set_parent(cmd.get());
551 std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages = cms->get_diagnostic_messages();
552 for(auto& dm : diagnostic_messages)
554 dm->set_parent(cms.get());
559 const std::string application_t::get_diagnostic_bus() const