#include #include #include extern "C" { CTLP_CAPI_REGISTER("example"); std::shared_ptr cms = std::make_shared(message_set_t{0,"example", { // beginning message_definition_ vector {std::make_shared(message_definition_t{"hs",0x3D9,"",8,0,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (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(false, 0),// multiplex static_cast(0),// signed -1,// bit_sign_position ""// unit })}, {std::make_shared (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(false, 0),// multiplex static_cast(0),// signed -1,// bit_sign_position ""// unit })}, {std::make_shared (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(false, 0),// multiplex static_cast(0),// signed -1,// bit_sign_position ""// unit })} } // end signals vector })} // end message_definition entry , {std::make_shared(message_definition_t{"hs",0x3E9,"",8,0,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (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(false, 0),// multiplex static_cast(0),// signed -1,// bit_sign_position ""// unit })} } // end signals vector })} // end message_definition entry , {std::make_shared(message_definition_t{"hs",0x4D1,"",8,0,frequency_clock_t(5.00000f),true, { // beginning signals vector {std::make_shared (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(false, 0),// multiplex static_cast(0),// signed -1,// bit_sign_position ""// unit })}, {std::make_shared (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(false, 0),// multiplex static_cast(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); } }