diff --git a/src/modules/mavlink/mavlink_events.cpp b/src/modules/mavlink/mavlink_events.cpp index c1596530d4..135cf154d2 100644 --- a/src/modules/mavlink/mavlink_events.cpp +++ b/src/modules/mavlink/mavlink_events.cpp @@ -208,17 +208,18 @@ void SendProtocol::handle_request_event(const mavlink_message_t &msg) const void SendProtocol::send_event(const Event &event) const { - mavlink_event_t event_msg{}; - event_msg.event_time_boot_ms = event.timestamp_ms; - event_msg.destination_component = MAV_COMP_ID_ALL; - event_msg.destination_system = 0; - event_msg.id = event.id; - event_msg.sequence = event.sequence; - event_msg.log_levels = event.log_levels; - static_assert(sizeof(event_msg.arguments) >= sizeof(event.arguments), "MAVLink message arguments buffer too small"); - memcpy(&event_msg.arguments, event.arguments, sizeof(event.arguments)); - mavlink_msg_event_send_struct(_mavlink.get_channel(), &event_msg); - + if (_mavlink.get_mode() != Mavlink::MAVLINK_MODE_IRIDIUM) { + mavlink_event_t event_msg{}; + event_msg.event_time_boot_ms = event.timestamp_ms; + event_msg.destination_component = MAV_COMP_ID_ALL; + event_msg.destination_system = 0; + event_msg.id = event.id; + event_msg.sequence = event.sequence; + event_msg.log_levels = event.log_levels; + static_assert(sizeof(event_msg.arguments) >= sizeof(event.arguments), "MAVLink message arguments buffer too small"); + memcpy(&event_msg.arguments, event.arguments, sizeof(event.arguments)); + mavlink_msg_event_send_struct(_mavlink.get_channel(), &event_msg); + } } void SendProtocol::on_gcs_connected() @@ -228,8 +229,9 @@ void SendProtocol::on_gcs_connected() void SendProtocol::send_current_sequence(const hrt_abstime &now, bool force_reset) { - // only send if enough tx buffer space available - if (_mavlink.get_free_tx_buf() < MAVLINK_MSG_ID_CURRENT_EVENT_SEQUENCE_LEN + MAVLINK_NUM_NON_PAYLOAD_BYTES) { + // only send if enough tx buffer space available or not MAVLINK_MODE_IRIDIUM + if (_mavlink.get_free_tx_buf() < MAVLINK_MSG_ID_CURRENT_EVENT_SEQUENCE_LEN + MAVLINK_NUM_NON_PAYLOAD_BYTES || + _mavlink.get_mode() == Mavlink::MAVLINK_MODE_IRIDIUM) { return; }