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<message_set_t>(message_set_t{0,"example",
9 { // beginning message_definition_ vector
10 {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3D9,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
11 { // beginning signals vector
12 {std::make_shared<signal_t> (signal_t{
13 "engine.speed",// generic_name
20 frequency_clock_t(0.00000f),// frequency
22 false,// force_send_changed
29 std::make_pair<bool, int>(false, 0),// multiplex
34 {std::make_shared<signal_t> (signal_t{
35 "fuel.level.low",// generic_name
42 frequency_clock_t(0.00000f),// frequency
44 false,// force_send_changed
48 decoder_t::decode_boolean,// decoder
51 std::make_pair<bool, int>(false, 0),// multiplex
56 {std::make_shared<signal_t> (signal_t{
57 "fuel.level",// generic_name
64 frequency_clock_t(0.00000f),// frequency
66 false,// force_send_changed
73 std::make_pair<bool, int>(false, 0),// multiplex
78 } // end signals vector
79 })} // end message_definition entry
80 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3E9,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
81 { // beginning signals vector
82 {std::make_shared<signal_t> (signal_t{
83 "vehicle.average.speed",// generic_name
90 frequency_clock_t(0.00000f),// frequency
92 false,// force_send_changed
99 std::make_pair<bool, int>(false, 0),// multiplex
104 } // end signals vector
105 })} // end message_definition entry
106 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x4D1,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
107 { // beginning signals vector
108 {std::make_shared<signal_t> (signal_t{
109 "engine.oil.temp",// generic_name
116 frequency_clock_t(0.00000f),// frequency
118 false,// force_send_changed
125 std::make_pair<bool, int>(false, 0),// multiplex
130 {std::make_shared<signal_t> (signal_t{
131 "engine.oil.temp.high",// generic_name
138 frequency_clock_t(0.00000f),// frequency
140 false,// force_send_changed
144 decoder_t::decode_boolean,// decoder
147 std::make_pair<bool, int>(false, 0),// multiplex
152 } // end signals vector
153 })} // end message_definition entry
154 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x620,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
155 { // beginning signals vector
156 {std::make_shared<signal_t> (signal_t{
157 "doors.boot.open",// generic_name
164 frequency_clock_t(0.00000f),// frequency
166 false,// force_send_changed
170 decoder_t::decode_boolean,// decoder
173 std::make_pair<bool, int>(false, 0),// multiplex
178 {std::make_shared<signal_t> (signal_t{
179 "doors.front_left.open",// generic_name
186 frequency_clock_t(0.00000f),// frequency
188 false,// force_send_changed
192 decoder_t::decode_boolean,// decoder
195 std::make_pair<bool, int>(false, 0),// multiplex
200 {std::make_shared<signal_t> (signal_t{
201 "doors.front_right.open",// generic_name
208 frequency_clock_t(0.00000f),// frequency
210 false,// force_send_changed
214 decoder_t::decode_boolean,// decoder
217 std::make_pair<bool, int>(false, 0),// multiplex
222 {std::make_shared<signal_t> (signal_t{
223 "doors.rear_left.open",// generic_name
230 frequency_clock_t(0.00000f),// frequency
232 false,// force_send_changed
236 decoder_t::decode_boolean,// decoder
239 std::make_pair<bool, int>(false, 0),// multiplex
244 {std::make_shared<signal_t> (signal_t{
245 "doors.rear_right.open",// generic_name
252 frequency_clock_t(0.00000f),// frequency
254 false,// force_send_changed
258 decoder_t::decode_boolean,// decoder
261 std::make_pair<bool, int>(false, 0),// multiplex
266 } // end signals vector
267 })} // end message_definition entry
268 , {std::make_shared<message_definition_t>(message_definition_t{"hs",0x799,"",0,false,message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
269 { // beginning signals vector
270 {std::make_shared<signal_t> (signal_t{
271 "windows.front_left.open",// generic_name
278 frequency_clock_t(0.00000f),// frequency
280 false,// force_send_changed
284 decoder_t::decode_boolean,// decoder
287 std::make_pair<bool, int>(false, 0),// multiplex
292 {std::make_shared<signal_t> (signal_t{
293 "windows.front_right.open",// generic_name
300 frequency_clock_t(0.00000f),// frequency
302 false,// force_send_changed
306 decoder_t::decode_boolean,// decoder
309 std::make_pair<bool, int>(false, 0),// multiplex
314 {std::make_shared<signal_t> (signal_t{
315 "windows.rear_left.open",// generic_name
322 frequency_clock_t(0.00000f),// frequency
324 false,// force_send_changed
328 decoder_t::decode_boolean,// decoder
331 std::make_pair<bool, int>(false, 0),// multiplex
336 {std::make_shared<signal_t> (signal_t{
337 "windows.rear_right.open",// generic_name
344 frequency_clock_t(0.00000f),// frequency
346 false,// force_send_changed
350 decoder_t::decode_boolean,// decoder
353 std::make_pair<bool, int>(false, 0),// multiplex
358 } // end signals vector
359 })} // end message_definition entry
361 }, // end message_definition vector
362 { // beginning diagnostic_messages_ vector
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 "engine.coolant.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{
401 "intake.manifold.pressure",
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{
437 "intake.air.temperature",
442 decoder_t::decode_obd2_response,
447 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
454 decoder_t::decode_obd2_response,
459 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
466 decoder_t::decode_obd2_response,
471 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
478 decoder_t::decode_obd2_response,
483 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
490 decoder_t::decode_obd2_response,
495 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
502 decoder_t::decode_obd2_response,
507 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
509 "barometric.pressure",
514 decoder_t::decode_obd2_response,
519 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
521 "ambient.air.temperature",
526 decoder_t::decode_obd2_response,
531 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
533 "commanded.throttle.position",
538 decoder_t::decode_obd2_response,
543 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
545 "ethanol.fuel.percentage",
550 decoder_t::decode_obd2_response,
555 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
557 "accelerator.pedal.position",
562 decoder_t::decode_obd2_response,
567 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
569 "hybrid.battery-pack.remaining.life",
574 decoder_t::decode_obd2_response,
579 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
581 "engine.oil.temperature",
586 decoder_t::decode_obd2_response,
591 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
598 decoder_t::decode_obd2_response,
603 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
610 decoder_t::decode_obd2_response,
616 } // end diagnostic_messages_ vector
617 })} // end message_set entry
618 } // end message_set vector
620 for(std::shared_ptr<message_set_t> cms: message_set_)
622 std::vector<std::shared_ptr<message_definition_t>> messages_definition = cms->get_messages_definition();
623 for(std::shared_ptr<message_definition_t> cmd : messages_definition)
625 cmd->set_parent(cms);
626 std::vector<std::shared_ptr<signal_t>> signals = cmd->get_signals();
627 for(std::shared_ptr<signal_t> sig: signals)
629 sig->set_parent(cmd);
633 std::vector<std::shared_ptr<diagnostic_message_t>> diagnostic_messages = cms->get_diagnostic_messages();
634 for(std::shared_ptr<diagnostic_message_t> dm : diagnostic_messages)
641 const std::string application_t::get_diagnostic_bus() const