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(1.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
299 }, // end can_message_definition vector
300 { // beginning diagnostic_messages_ vector
301 {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
308 decoder_t::decode_obd2_response,
312 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
314 "engine.coolant.temperature",
319 decoder_t::decode_obd2_response,
323 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
330 decoder_t::decode_obd2_response,
334 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
336 "intake.manifold.pressure",
341 decoder_t::decode_obd2_response,
345 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
352 decoder_t::decode_obd2_response,
356 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
363 decoder_t::decode_obd2_response,
367 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
369 "intake.air.temperature",
374 decoder_t::decode_obd2_response,
378 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
385 decoder_t::decode_obd2_response,
389 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
396 decoder_t::decode_obd2_response,
400 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
407 decoder_t::decode_obd2_response,
411 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
418 decoder_t::decode_obd2_response,
422 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
429 decoder_t::decode_obd2_response,
433 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
435 "barometric.pressure",
440 decoder_t::decode_obd2_response,
444 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
446 "ambient.air.temperature",
451 decoder_t::decode_obd2_response,
455 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
457 "commanded.throttle.position",
462 decoder_t::decode_obd2_response,
466 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
468 "ethanol.fuel.percentage",
473 decoder_t::decode_obd2_response,
477 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
479 "accelerator.pedal.position",
484 decoder_t::decode_obd2_response,
488 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
490 "hybrid.battery-pack.remaining.life",
495 decoder_t::decode_obd2_response,
499 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
501 "engine.oil.temperature",
506 decoder_t::decode_obd2_response,
510 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
517 decoder_t::decode_obd2_response,
521 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
528 decoder_t::decode_obd2_response,
532 } // end diagnostic_messages_ vector
533 })} // end can_message_set entry
534 } // end can_message_set vector
536 for(auto& cms: can_message_set_)
538 std::vector<std::shared_ptr<can_message_definition_t> >& can_messages_definition = cms->get_can_message_definition();
539 for(auto& cmd : can_messages_definition)
541 cmd->set_parent(cms.get());
542 std::vector<std::shared_ptr<can_signal_t> >& can_signals = cmd->get_can_signals();
543 for(auto& sig: can_signals)
545 sig->set_parent(cmd.get());
549 std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages = cms->get_diagnostic_messages();
550 for(auto& dm : diagnostic_messages)
552 dm->set_parent(cms.get());
557 const std::string application_t::get_diagnostic_bus() const