+ int ret;
+ if (active_diagnostic_request_t::is_diagnostic_signal(sig))
+ {
+ std::vector<obd2_signal_t*> found;
+ configuration_t::instance().find_obd2_signals(build_DynamicField(sig), found);
+ int 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, obd2_signal_t::decode_obd2_response, nullptr, (float)frequency);
+ //TODO: Adding callback requesting ignition status: diag_req, sig.c_str(), false, obd2_signal_t::decode_obd2_response, obd2_signal_t::check_ignition_status, frequency);
+ sd_event_add_time(afb_daemon_get_event_loop(binder_interface->daemon), &source, CLOCK_MONOTONIC, frequency*MICRO, 0,
+ configuration_t::instance().get_diagnostic_manager().send_request, diag_req);
+ }