1 #include <binding/application.hpp>
2 #include <can/can-decoder.hpp>
3 #include <can/can-encoder.hpp>
6 CTLP_CAPI_REGISTER("example");
8 std::shared_ptr<message_set_t> cms = 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{"can0",0x128,"ECM_z_5D2",8,0,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(15.0000f),// frequency
22 false,// force_send_changed
29 std::make_pair<bool, int>(false, 0),// multiplex
30 static_cast<sign_t>(0),// signed
31 -1,// bit_sign_position
34 {std::make_shared<signal_t> (signal_t{
35 "GearshiftPosition",// generic_name
42 frequency_clock_t(0.00000f),// frequency
44 false,// force_send_changed
54 decoder_t::decode_state,// decoder
57 std::make_pair<bool, int>(false, 0),// multiplex
58 static_cast<sign_t>(0),// signed
59 -1,// bit_sign_position
62 {std::make_shared<signal_t> (signal_t{
63 "SteeringWheelAngle",// generic_name
70 frequency_clock_t(0.00000f),// frequency
72 false,// force_send_changed
79 std::make_pair<bool, int>(false, 0),// multiplex
80 static_cast<sign_t>(0),// signed
81 -1,// bit_sign_position
84 {std::make_shared<signal_t> (signal_t{
85 "steering_wheel_angle_error",// generic_name
92 frequency_clock_t(0.00000f),// frequency
94 false,// force_send_changed
101 std::make_pair<bool, int>(false, 0),// multiplex
102 static_cast<sign_t>(0),// signed
103 -1,// bit_sign_position
106 {std::make_shared<signal_t> (signal_t{
107 "steering_angle_sign",// generic_name
114 frequency_clock_t(0.00000f),// frequency
116 false,// force_send_changed
123 std::make_pair<bool, int>(false, 0),// multiplex
124 static_cast<sign_t>(0),// signed
125 -1,// bit_sign_position
128 } // end signals vector
129 })} // end message_definition entry
130 , {std::make_shared<message_definition_t>(message_definition_t{"can0",0x813,"ECM_z_5D2",8,0,frequency_clock_t(5.00000f),true,
131 { // beginning signals vector
132 {std::make_shared<signal_t> (signal_t{
133 "abc",// generic_name
140 frequency_clock_t(0.00000f),// frequency
142 false,// force_send_changed
149 std::make_pair<bool, int>(false, 0),// multiplex
150 static_cast<sign_t>(0),// signed
151 -1,// bit_sign_position
154 {std::make_shared<signal_t> (signal_t{
155 "def",// generic_name
162 frequency_clock_t(0.00000f),// frequency
164 false,// force_send_changed
168 decoder_t::ignoreDecoder,// decoder
171 std::make_pair<bool, int>(false, 0),// multiplex
172 static_cast<sign_t>(0),// signed
173 -1,// bit_sign_position
176 } // end signals vector
177 })} // end message_definition entry
178 }, // end message_definition vector
179 { // beginning diagnostic_messages_ vector
180 {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
187 decoder_t::decode_obd2_response,
192 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
204 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
211 decoder_t::decode_obd2_response,
217 } // end diagnostic_messages_ vector
218 }); // end message_set entry
220 CTLP_ONLOAD(plugin, handle) {
221 afb_api_t api = (afb_api_t) plugin->api;
222 CtlConfigT* CtlConfig = (CtlConfigT*) afb_api_get_userdata(api);
223 application_t* app = (application_t*) getExternalData(CtlConfig);
225 return app->add_message_set(cms);