From 22bd06e5d51f449136851aed287ded390f21abd8 Mon Sep 17 00:00:00 2001 From: Julian Oes <julian@oes.ch> Date: Tue, 13 Nov 2018 15:09:17 +0100 Subject: [PATCH] mc_pos_control: don't do orb_check on polled topic When we poll on vehicle_local_position we shouldn't do yet another orb_check but copy it first up. --- src/modules/mc_pos_control/mc_pos_control_main.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/modules/mc_pos_control/mc_pos_control_main.cpp b/src/modules/mc_pos_control/mc_pos_control_main.cpp index 9d1393ed97..63101b7bf9 100644 --- a/src/modules/mc_pos_control/mc_pos_control_main.cpp +++ b/src/modules/mc_pos_control/mc_pos_control_main.cpp @@ -412,6 +412,9 @@ MulticopterPositionControl::parameters_update(bool force) void MulticopterPositionControl::poll_subscriptions() { + // This is polled for, so all we need to do is a copy now. + orb_copy(ORB_ID(vehicle_local_position), _local_pos_sub, &_local_pos); + bool updated; orb_check(_vehicle_status_sub, &updated); @@ -447,12 +450,6 @@ MulticopterPositionControl::poll_subscriptions() orb_copy(ORB_ID(vehicle_control_mode), _control_mode_sub, &_control_mode); } - orb_check(_local_pos_sub, &updated); - - if (updated) { - orb_copy(ORB_ID(vehicle_local_position), _local_pos_sub, &_local_pos); - } - orb_check(_att_sub, &updated); if (updated) { -- GitLab