Skip to content

Commit

Permalink
grc: mavlink: Fix mavlink camera compoenent never answering QGC
Browse files Browse the repository at this point in the history
The problem is that the added delay was causing the subscription to be always late.
  • Loading branch information
joaoantoniocardoso authored and patrickelectric committed Mar 12, 2024
1 parent f951339 commit b547dda
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions src/mavlink/mavlink_camera.rs
Expand Up @@ -173,12 +173,18 @@ impl MavlinkCameraInner {
use crate::mavlink::mavlink_camera::Message::Received;

loop {
tokio::time::sleep(tokio::time::Duration::from_millis(100)).await;
match receiver.recv().await {
Ok(Received((header, message))) => {
trace!("Message received: {header:?}, {message:?}");

if let Ok(Received((header, message))) = receiver.recv().await {
trace!("Message received: {header:?}, {message:?}");
Self::handle_message(camera.clone(), sender.clone(), header, message).await;
}
Ok(Message::ToBeSent(_)) => (),
Err(error) => {
error!("Failed receiving from broadcast channel: {error:#?}. Resubscribing to the channel...");

Self::handle_message(camera.clone(), sender.clone(), header, message).await;
receiver = receiver.resubscribe();
}
}
}
}
Expand Down

0 comments on commit b547dda

Please sign in to comment.