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,"example",
9 { // beginning can_message_definition_ vector
10 {std::make_shared<can_message_definition_t>(can_message_definition_t{"hs",0x3D9,can_message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
11 { // beginning can_signals vector
12 {std::make_shared<can_signal_t> (can_signal_t{
20 frequency_clock_t(0.00000f),
30 {std::make_shared<can_signal_t> (can_signal_t{
38 frequency_clock_t(0.00000f),
44 decoder_t::decode_boolean,
48 {std::make_shared<can_signal_t> (can_signal_t{
56 frequency_clock_t(0.00000f),
66 } // end can_signals vector
67 })} // end can_message_definition entry
68 , {std::make_shared<can_message_definition_t>(can_message_definition_t{"hs",0x3E9,can_message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
69 { // beginning can_signals vector
70 {std::make_shared<can_signal_t> (can_signal_t{
71 "vehicle.average.speed",
78 frequency_clock_t(0.00000f),
88 } // end can_signals vector
89 })} // end can_message_definition entry
90 , {std::make_shared<can_message_definition_t>(can_message_definition_t{"hs",0x4D1,can_message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
91 { // beginning can_signals vector
92 {std::make_shared<can_signal_t> (can_signal_t{
100 frequency_clock_t(0.00000f),
110 {std::make_shared<can_signal_t> (can_signal_t{
111 "engine.oil.temp.high",
118 frequency_clock_t(0.00000f),
124 decoder_t::decode_boolean,
128 } // end can_signals vector
129 })} // end can_message_definition entry
130 , {std::make_shared<can_message_definition_t>(can_message_definition_t{"hs",0x620,can_message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
131 { // beginning can_signals vector
132 {std::make_shared<can_signal_t> (can_signal_t{
140 frequency_clock_t(0.00000f),
146 decoder_t::decode_boolean,
150 {std::make_shared<can_signal_t> (can_signal_t{
151 "doors.front_left.open",
158 frequency_clock_t(0.00000f),
164 decoder_t::decode_boolean,
168 {std::make_shared<can_signal_t> (can_signal_t{
169 "doors.front_right.open",
176 frequency_clock_t(0.00000f),
182 decoder_t::decode_boolean,
186 {std::make_shared<can_signal_t> (can_signal_t{
187 "doors.rear_left.open",
194 frequency_clock_t(0.00000f),
200 decoder_t::decode_boolean,
204 {std::make_shared<can_signal_t> (can_signal_t{
205 "doors.rear_right.open",
212 frequency_clock_t(0.00000f),
218 decoder_t::decode_boolean,
222 } // end can_signals vector
223 })} // end can_message_definition entry
224 , {std::make_shared<can_message_definition_t>(can_message_definition_t{"hs",0x799,can_message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
225 { // beginning can_signals vector
226 {std::make_shared<can_signal_t> (can_signal_t{
227 "windows.front_left.open",
234 frequency_clock_t(0.00000f),
240 decoder_t::decode_boolean,
244 {std::make_shared<can_signal_t> (can_signal_t{
245 "windows.front_right.open",
252 frequency_clock_t(0.00000f),
258 decoder_t::decode_boolean,
262 {std::make_shared<can_signal_t> (can_signal_t{
263 "windows.rear_left.open",
270 frequency_clock_t(0.00000f),
276 decoder_t::decode_boolean,
280 {std::make_shared<can_signal_t> (can_signal_t{
281 "windows.rear_right.open",
288 frequency_clock_t(0.00000f),
294 decoder_t::decode_boolean,
298 } // end can_signals vector
299 })} // end can_message_definition entry
301 }, // end can_message_definition vector
302 { // beginning diagnostic_messages_ vector
303 {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
310 decoder_t::decode_obd2_response,
315 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
317 "engine.coolant.temperature",
322 decoder_t::decode_obd2_response,
327 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
334 decoder_t::decode_obd2_response,
339 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
341 "intake.manifold.pressure",
346 decoder_t::decode_obd2_response,
351 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
358 decoder_t::decode_obd2_response,
363 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
370 decoder_t::decode_obd2_response,
375 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
377 "intake.air.temperature",
382 decoder_t::decode_obd2_response,
387 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
394 decoder_t::decode_obd2_response,
399 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
406 decoder_t::decode_obd2_response,
411 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
418 decoder_t::decode_obd2_response,
423 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
430 decoder_t::decode_obd2_response,
435 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
442 decoder_t::decode_obd2_response,
447 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
449 "barometric.pressure",
454 decoder_t::decode_obd2_response,
459 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
461 "ambient.air.temperature",
466 decoder_t::decode_obd2_response,
471 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
473 "commanded.throttle.position",
478 decoder_t::decode_obd2_response,
483 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
485 "ethanol.fuel.percentage",
490 decoder_t::decode_obd2_response,
495 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
497 "accelerator.pedal.position",
502 decoder_t::decode_obd2_response,
507 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
509 "hybrid.battery-pack.remaining.life",
514 decoder_t::decode_obd2_response,
519 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
521 "engine.oil.temperature",
526 decoder_t::decode_obd2_response,
531 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
538 decoder_t::decode_obd2_response,
543 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
550 decoder_t::decode_obd2_response,
556 } // end diagnostic_messages_ vector
557 })} // end can_message_set entry
558 } // end can_message_set vector
560 for(auto& cms: can_message_set_)
562 std::vector<std::shared_ptr<can_message_definition_t> >& can_messages_definition = cms->get_can_message_definition();
563 for(auto& cmd : can_messages_definition)
565 cmd->set_parent(cms.get());
566 std::vector<std::shared_ptr<can_signal_t> >& can_signals = cmd->get_can_signals();
567 for(auto& sig: can_signals)
569 sig->set_parent(cmd.get());
573 std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages = cms->get_diagnostic_messages();
574 for(auto& dm : diagnostic_messages)
576 dm->set_parent(cms.get());
581 const std::string application_t::get_diagnostic_bus() const