Browse Source

mavlink mission: send an ack on duplicated last uploaded mission item

sbg
Beat Küng 7 years ago committed by Lorenz Meier
parent
commit
3f00e2e6c2
  1. 14
      src/modules/mavlink/mavlink_mission.cpp

14
src/modules/mavlink/mavlink_mission.cpp

@ -1021,10 +1021,18 @@ MavlinkMissionManager::handle_mission_item_both(const mavlink_message_t *msg)
} }
} else if (_state == MAVLINK_WPM_STATE_IDLE) { } else if (_state == MAVLINK_WPM_STATE_IDLE) {
PX4_DEBUG("WPM: MISSION_ITEM ERROR: no transfer"); if (_transfer_seq == wp.seq + 1) {
// Assume this is a duplicate, where we already successfully got all mission items,
// but the GCS did not receive the last ack and sent the same item again
send_mission_ack(_transfer_partner_sysid, _transfer_partner_compid, MAV_MISSION_ACCEPTED);
} else {
PX4_DEBUG("WPM: MISSION_ITEM ERROR: no transfer");
_mavlink->send_statustext_critical("IGN MISSION_ITEM: No transfer");
send_mission_ack(_transfer_partner_sysid, _transfer_partner_compid, MAV_MISSION_ERROR);
}
_mavlink->send_statustext_critical("IGN MISSION_ITEM: No transfer");
send_mission_ack(_transfer_partner_sysid, _transfer_partner_compid, MAV_MISSION_ERROR);
return; return;
} else { } else {

Loading…
Cancel
Save