+ int ret;
+ if (active_diagnostic_request_t::is_diagnostic_signal(sig) && subscribe)
+ {
+ std::vector<diagnostic_message_t*> found;
+ configuration_t::instance().find_diagnostic_messages(build_DynamicField(sig), found);
+ float frequency = found.front()->get_frequency();
+ DiagnosticRequest* diag_req = new DiagnosticRequest(found.front()->build_diagnostic_request());
+ configuration_t::instance().get_diagnostic_manager().add_recurring_request(
+ diag_req, sig.c_str(), false, found.front()->get_decoder(), found.front()->get_callback(), (float)frequency);
+ //TODO: Adding callback requesting ignition status: diag_req, sig.c_str(), false, diagnostic_message_t::decode_obd2_response, diagnostic_message_t::check_ignition_status, frequency);
+ }
+
+ ret = subscribe_unsubscribe_signal(request, subscribe, sig);