#include "application.hpp"
#include "../can/can-decoder.hpp"
+#include "../can/can-encoder.hpp"
application_t::application_t()
: can_bus_manager_{utils::config_parser_t{"/etc/dev-mapping.conf"}}
- , can_message_set_{
- {std::make_shared<can_message_set_t>(can_message_set_t{0,"example",
+ , message_set_{
+ {std::make_shared<message_set_t>(message_set_t{0,"AGL Virtual Car",
{ // beginning can_message_definition_ vector
- {std::make_shared<can_message_definition_t>(can_message_definition_t{"hs",0x3D9,can_message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
+ {std::make_shared<message_definition_t>(message_definition_t{
+ "ls",
+ 0x30,
+ false,
+ message_format_t::EXTENDED,
+ frequency_clock_t(5.00000f),
+ true,
{ // beginning can_signals vector
- {std::make_shared<can_signal_t> (can_signal_t{
+ {std::make_shared<signal_t> (signal_t{
+ "hvac.fan.speed",
+ 32,
+ 8,
+ 23.5294f,
+ 0.00000,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ },
+ false,
+ nullptr,
+ nullptr,
+ false
+ })},
+ {std::make_shared<signal_t> (signal_t{
+ "hvac.temperature.left",
+ 0,
+ 8,
+ 1.00000f,
+ 0.00000,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ },
+ true,
+ nullptr,
+ nullptr,
+ false
+ })},
+ {std::make_shared<signal_t> (signal_t{
+ "hvac.temperature.right",
+ 8,
+ 8,
+ 1.00000f,
+ 0.00000,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ },
+ true,
+ nullptr,
+ nullptr,
+ false
+ })},
+ {std::make_shared<signal_t> (signal_t{
+ "hvac.temperature.average",
+ 16,
+ 8,
+ 1.00000f,
+ 0.00000,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ },
+ true,
+ nullptr,
+ nullptr,
+ false
+ })}
+ } // end can_signals vector
+ })} // end can_message_definition entry
+, {std::make_shared<message_definition_t>(message_definition_t{
+ "hs",
+ 0x3D9,
+ true,
+ message_format_t::STANDARD,
+ frequency_clock_t(5.00000f),
+ true,
+ { // beginning can_signals vector
+ {std::make_shared<signal_t> (signal_t{
"engine.speed",
16,
16,
nullptr,
false
})},
- {std::make_shared<can_signal_t> (can_signal_t{
+ {std::make_shared<signal_t> (signal_t{
"fuel.level.low",
55,
1,
{
},
false,
- decoder_t::booleanDecoder,
+ decoder_t::decode_boolean,
nullptr,
false
})},
- {std::make_shared<can_signal_t> (can_signal_t{
+ {std::make_shared<signal_t> (signal_t{
"fuel.level",
8,
8,
})}
} // end can_signals vector
})} // end can_message_definition entry
-, {std::make_shared<can_message_definition_t>(can_message_definition_t{"hs",0x3E9,can_message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
+, {std::make_shared<message_definition_t>(message_definition_t{
+ "hs",
+ 0x3E9,
+ false,
+ message_format_t::EXTENDED,
+ frequency_clock_t(5.00000f),
+ true,
{ // beginning can_signals vector
- {std::make_shared<can_signal_t> (can_signal_t{
+ {std::make_shared<signal_t> (signal_t{
"vehicle.average.speed",
0,
15,
})}
} // end can_signals vector
})} // end can_message_definition entry
-, {std::make_shared<can_message_definition_t>(can_message_definition_t{"hs",0x4D1,can_message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
+, {std::make_shared<message_definition_t>(message_definition_t{
+ "hs",
+ 0x4D1,
+ false,
+ message_format_t::STANDARD,
+ frequency_clock_t(5.00000f),
+ true,
{ // beginning can_signals vector
- {std::make_shared<can_signal_t> (can_signal_t{
+ {std::make_shared<signal_t> (signal_t{
"engine.oil.temp",
16,
8,
nullptr,
false
})},
- {std::make_shared<can_signal_t> (can_signal_t{
+ {std::make_shared<signal_t> (signal_t{
"engine.oil.temp.high",
7,
1,
{
},
false,
- decoder_t::booleanDecoder,
+ decoder_t::decode_boolean,
+ nullptr,
+ false
+ })}
+ } // end can_signals vector
+ })} // end can_message_definition entry
+, {std::make_shared<message_definition_t>(message_definition_t{
+ "hs",
+ 0x5D1,
+ false,
+ message_format_t::STANDARD,
+ frequency_clock_t(5.00000f),
+ true,
+ { // beginning can_signals vector
+ {std::make_shared<signal_t> (signal_t{
+ "accelerator.pedal.position",
+ 16,
+ 8,
+ 0.500000f,
+ 0.00000,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ },
+ false,
+ nullptr,
+ nullptr,
+ false
+ })},
+ {std::make_shared<signal_t> (signal_t{
+ "steering.wheel.angle",
+ 4,
+ 12,
+ 1.00000f,
+ 0.00000,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ },
+ false,
+ nullptr,
+ nullptr,
+ false
+ })}
+ } // end can_signals vector
+ })} // end can_message_definition entry
+, {std::make_shared<message_definition_t>(message_definition_t{
+ "hs",
+ 0x5D2,
+ false,
+ message_format_t::STANDARD,
+ frequency_clock_t(5.00000f),
+ true,
+ { // beginning can_signals vector
+ {std::make_shared<signal_t> (signal_t{
+ "transmission.gearinfo",
+ 20,
+ 4,
+ 1.00000f,
+ 0.00000,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ },
+ false,
+ nullptr,
+ nullptr,
+ false
+ })},
+ {std::make_shared<signal_t> (signal_t{
+ "transmission.mode",
+ 16,
+ 4,
+ 1.00000f,
+ 0.00000,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ },
+ false,
+ nullptr,
+ nullptr,
+ false
+ })}
+ } // end can_signals vector
+ })} // end can_message_definition entry
+, {std::make_shared<message_definition_t>(message_definition_t{
+ "hs",
+ 0x5D3,
+ false,
+ message_format_t::STANDARD,
+ frequency_clock_t(5.00000f),
+ true,
+ { // beginning can_signals vector
+ {std::make_shared<signal_t> (signal_t{
+ "turnsignal.status",
+ 26,
+ 3,
+ 1.00000f,
+ 0.00000,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ },
+ false,
+ nullptr,
+ nullptr,
+ false
+ })},
+ {std::make_shared<signal_t> (signal_t{
+ "lightstatus.brake",
+ 7,
+ 1,
+ 1.00000f,
+ 0.00000,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ },
+ false,
+ decoder_t::decode_boolean,
+ nullptr,
+ false
+ })},
+ {std::make_shared<signal_t> (signal_t{
+ "parking.brake.status",
+ 8,
+ 1,
+ 1.00000f,
+ 0.00000,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ },
+ false,
+ decoder_t::decode_boolean,
nullptr,
false
})}
} // end can_signals vector
})} // end can_message_definition entry
-, {std::make_shared<can_message_definition_t>(can_message_definition_t{"hs",0x620,can_message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
+, {std::make_shared<message_definition_t>(message_definition_t{
+ "hs",
+ 0x620,
+ false,
+ message_format_t::STANDARD,
+ frequency_clock_t(5.00000f),
+ true,
{ // beginning can_signals vector
- {std::make_shared<can_signal_t> (can_signal_t{
+ {std::make_shared<signal_t> (signal_t{
"doors.boot.open",
47,
1,
{
},
false,
- decoder_t::booleanDecoder,
+ decoder_t::decode_boolean,
nullptr,
false
})},
- {std::make_shared<can_signal_t> (can_signal_t{
+ {std::make_shared<signal_t> (signal_t{
"doors.front_left.open",
43,
1,
{
},
false,
- decoder_t::booleanDecoder,
+ decoder_t::decode_boolean,
nullptr,
false
})},
- {std::make_shared<can_signal_t> (can_signal_t{
+ {std::make_shared<signal_t> (signal_t{
"doors.front_right.open",
44,
1,
{
},
false,
- decoder_t::booleanDecoder,
+ decoder_t::decode_boolean,
nullptr,
false
})},
- {std::make_shared<can_signal_t> (can_signal_t{
+ {std::make_shared<signal_t> (signal_t{
"doors.rear_left.open",
46,
1,
{
},
false,
- decoder_t::booleanDecoder,
+ decoder_t::decode_boolean,
nullptr,
false
})},
- {std::make_shared<can_signal_t> (can_signal_t{
+ {std::make_shared<signal_t> (signal_t{
"doors.rear_right.open",
45,
4,
{
},
false,
- decoder_t::booleanDecoder,
+ decoder_t::decode_boolean,
nullptr,
false
})}
} // end can_signals vector
})} // end can_message_definition entry
-, {std::make_shared<can_message_definition_t>(can_message_definition_t{"hs",0x799,can_message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
+, {std::make_shared<message_definition_t>(message_definition_t{
+ "hs",
+ 0x799,
+ false,
+ message_format_t::STANDARD,
+ frequency_clock_t(5.00000f),
+ true,
{ // beginning can_signals vector
- {std::make_shared<can_signal_t> (can_signal_t{
+ {std::make_shared<signal_t> (signal_t{
"windows.front_left.open",
43,
1,
{
},
false,
- decoder_t::booleanDecoder,
+ decoder_t::decode_boolean,
nullptr,
false
})},
- {std::make_shared<can_signal_t> (can_signal_t{
+ {std::make_shared<signal_t> (signal_t{
"windows.front_right.open",
44,
1,
{
},
false,
- decoder_t::booleanDecoder,
+ decoder_t::decode_boolean,
nullptr,
false
})},
- {std::make_shared<can_signal_t> (can_signal_t{
+ {std::make_shared<signal_t> (signal_t{
"windows.rear_left.open",
46,
1,
{
},
false,
- decoder_t::booleanDecoder,
+ decoder_t::decode_boolean,
nullptr,
false
})},
- {std::make_shared<can_signal_t> (can_signal_t{
+ {std::make_shared<signal_t> (signal_t{
"windows.rear_right.open",
45,
4,
{
},
false,
- decoder_t::booleanDecoder,
+ decoder_t::decode_boolean,
nullptr,
false
})}
5.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
5,
1.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
10,
1.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
11,
1.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
12,
5.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
13,
5.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
15,
1.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
16,
5.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
17,
5.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
31,
1.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
45,
0.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
47,
1.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
51,
1.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
70,
1.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
76,
1.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
82,
1.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
90,
5.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
91,
5.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
92,
1.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
94,
1.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
, {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
99,
1.00000f,
decoder_t::decode_obd2_response,
nullptr,
- true
+ true,
+ false
})}
} // end diagnostic_messages_ vector
})} // end can_message_set entry
} // end can_message_set vector
{
- for(auto& cms: can_message_set_)
+ for(auto& cms: message_set_)
{
- std::vector<std::shared_ptr<can_message_definition_t> >& can_messages_definition = cms->get_can_message_definition();
+ std::vector<std::shared_ptr<message_definition_t> >& can_messages_definition = cms->get_messages_definition();
for(auto& cmd : can_messages_definition)
{
- cmd->set_parent(cms.get());
- std::vector<std::shared_ptr<can_signal_t> >& can_signals = cmd->get_can_signals();
+ cmd->set_parent(cms);
+ std::vector<std::shared_ptr<signal_t> >& can_signals = cmd->get_signals();
for(auto& sig: can_signals)
{
- sig->set_parent(cmd.get());
+ sig->set_parent(cmd);
}
}
std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages = cms->get_diagnostic_messages();
for(auto& dm : diagnostic_messages)
{
- dm->set_parent(cms.get());
+ dm->set_parent(cms);
}
}
}