- if(manager.get_can_bus_dev() == entry->get_can_bus_dev() && entry->get_in_flight())
- {
- DiagnosticResponse response = diagnostic_receive_can_frame(
- // TODO: openXC todo task: eek, is bus address and array index this tightly coupled?
- &manager.get_shims(),
- entry->get_handle(), can_message.get_id(), can_message.get_data(), can_message.get_length());
- if(response.completed && entry->get_handle()->completed)
- {
- if(entry->get_handle()->success)
- {
- vehicle_message = manager.relay_diagnostic_response(entry, response);
- std::lock_guard<std::mutex> decoded_can_message_lock(decoded_can_message_mutex_);
- push_new_vehicle_message(vehicle_message);
- new_decoded_can_message_.notify_one();
- processed_signals++;
- }
- else
- DEBUG(binder_interface, "Fatal error sending or receiving diagnostic request");
- }
- else if(!response.completed && response.multi_frame)
- // Reset the timeout clock while completing the multi-frame receive
- entry->get_timeout_clock().tick();
- }
+ std::lock_guard<std::mutex> decoded_can_message_lock(decoded_can_message_mutex_);
+ push_new_vehicle_message(vehicle_message);
+ new_decoded_can_message_.notify_one();
+ processed_signals++;