From e43cc9a9c12ea87e8175486d76867c2c649893b0 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Tue, 23 Jan 2018 18:22:32 +0100 Subject: [PATCH] mavlink_mission: send request again if unsupported When we receive a MAV_MISSION_UNSUPPORTED, we should try to send a mission request again with or without int mode. --- src/modules/mavlink/mavlink_mission.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/modules/mavlink/mavlink_mission.cpp b/src/modules/mavlink/mavlink_mission.cpp index 07d9be73b2..aa57b417fd 100644 --- a/src/modules/mavlink/mavlink_mission.cpp +++ b/src/modules/mavlink/mavlink_mission.cpp @@ -606,12 +606,20 @@ MavlinkMissionManager::handle_mission_ack(const mavlink_message_t *msg) } else if (_state == MAVLINK_WPM_STATE_GETLIST) { - // INT mode is not supported - if (_int_mode && wpa.type != MAV_MISSION_ACCEPTED) { - _int_mode = false; + // INT or float mode is not supported + if (wpa.type == MAV_MISSION_UNSUPPORTED) { + + if (_int_mode) { + _int_mode = false; + send_mission_request(_transfer_partner_sysid, _transfer_partner_compid, _transfer_seq); + + } else { + _int_mode = true; + send_mission_request(_transfer_partner_sysid, _transfer_partner_compid, _transfer_seq); + } } else if (wpa.type != MAV_MISSION_ACCEPTED) { - _int_mode = true; + PX4_WARN("Mission ack result was %d", wpa.type); } }