diff options
Diffstat (limited to 'examples/engine/engine-signals.cpp')
-rw-r--r-- | examples/engine/engine-signals.cpp | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/examples/engine/engine-signals.cpp b/examples/engine/engine-signals.cpp new file mode 100644 index 00000000..48d266f0 --- /dev/null +++ b/examples/engine/engine-signals.cpp @@ -0,0 +1,169 @@ +#include <binding/application.hpp> +#include <can/can-decoder.hpp> +#include <can/can-encoder.hpp> + +extern "C" { +CTLP_CAPI_REGISTER("example"); + +std::shared_ptr<message_set_t> cms = std::make_shared<message_set_t>(message_set_t{0,"example", + { // beginning message_definition_ vector + {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3D9,"",8,0,frequency_clock_t(5.00000f),true, + { // beginning signals vector + {std::make_shared<signal_t> (signal_t{ + "engine.speed",// generic_name + 16,// bit_position + 16,// bit_size + 0.250000f,// factor + 0.00000f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + static_cast<sign_t>(0),// signed + -1,// bit_sign_position + ""// unit + })}, + {std::make_shared<signal_t> (signal_t{ + "fuel.level.low",// generic_name + 55,// bit_position + 1,// bit_size + 1.00000f,// factor + 0.00000f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + decoder_t::decode_boolean,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + static_cast<sign_t>(0),// signed + -1,// bit_sign_position + ""// unit + })}, + {std::make_shared<signal_t> (signal_t{ + "fuel.level",// generic_name + 8,// bit_position + 8,// bit_size + 0.392157f,// factor + 0.00000f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + static_cast<sign_t>(0),// signed + -1,// bit_sign_position + ""// unit + })} + } // end signals vector + })} // end message_definition entry +, {std::make_shared<message_definition_t>(message_definition_t{"hs",0x3E9,"",8,0,frequency_clock_t(5.00000f),true, + { // beginning signals vector + {std::make_shared<signal_t> (signal_t{ + "vehicle.average.speed",// generic_name + 0,// bit_position + 15,// bit_size + 0.0156250f,// factor + 0.00000f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + static_cast<sign_t>(0),// signed + -1,// bit_sign_position + ""// unit + })} + } // end signals vector + })} // end message_definition entry +, {std::make_shared<message_definition_t>(message_definition_t{"hs",0x4D1,"",8,0,frequency_clock_t(5.00000f),true, + { // beginning signals vector + {std::make_shared<signal_t> (signal_t{ + "engine.oil.temp",// generic_name + 16,// bit_position + 8,// bit_size + 1.00000f,// factor + 0.00000f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + nullptr,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + static_cast<sign_t>(0),// signed + -1,// bit_sign_position + ""// unit + })}, + {std::make_shared<signal_t> (signal_t{ + "engine.oil.temp.high",// generic_name + 7,// bit_position + 1,// bit_size + 1.00000f,// factor + 0.00000f,// offset + 0,// min_value + 0,// max_value + frequency_clock_t(0.00000f),// frequency + true,// send_same + false,// force_send_changed + { + },// states + false,// writable + decoder_t::decode_boolean,// decoder + nullptr,// encoder + false,// received + std::make_pair<bool, int>(false, 0),// multiplex + static_cast<sign_t>(0),// signed + -1,// bit_sign_position + ""// unit + })} + } // end signals vector + })} // end message_definition entry + }, // end message_definition vector + { // beginning diagnostic_messages_ vector + + } // end diagnostic_messages_ vector +}); // end message_set entry + +CTLP_ONLOAD(plugin, handle) { + afb_api_t api = (afb_api_t) plugin->api; + CtlConfigT* CtlConfig = (CtlConfigT*) afb_api_get_userdata(api); + application_t* app = (application_t*) getExternalData(CtlConfig); + + return app->add_message_set(cms); +} + + +} |