diff --git a/src/modules/mavlink/mavlink_main.cpp b/src/modules/mavlink/mavlink_main.cpp index 3da9015e57..86ea3247eb 100644 --- a/src/modules/mavlink/mavlink_main.cpp +++ b/src/modules/mavlink/mavlink_main.cpp @@ -2236,7 +2236,11 @@ Mavlink::task_main(int argc, char *argv[]) msg.target_component = command_ack.target_component; current_command_ack = command_ack.command; + // always transmit the acknowledge + bool _transmitting_enabled_temp = _transmitting_enabled; + _transmitting_enabled = true; mavlink_msg_command_ack_send_struct(get_channel(), &msg); + _transmitting_enabled = _transmitting_enabled_temp; } } diff --git a/src/modules/mavlink/mavlink_mission.cpp b/src/modules/mavlink/mavlink_mission.cpp index 7e201cf9c5..6cb7a275eb 100644 --- a/src/modules/mavlink/mavlink_mission.cpp +++ b/src/modules/mavlink/mavlink_mission.cpp @@ -479,6 +479,11 @@ MavlinkMissionManager::send_mission_item_reached(uint16_t seq) void MavlinkMissionManager::send(const hrt_abstime now) { + // do not send anything over high latency communication + if (_mavlink->get_mode() == Mavlink::MAVLINK_MODE_IRIDIUM) { + return; + } + bool updated = false; orb_check(_mission_result_sub, &updated);