From 3ed8b735c22a787761d2b92dfd212e8881f52e72 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Wed, 13 Jul 2016 09:55:58 +0200 Subject: [PATCH] mavlink: only warn once if broadcast fails This fixes the issue where the console was spammed if a broadcast failed after a connection had previously been established. --- src/modules/mavlink/mavlink_main.cpp | 8 +++++++- src/modules/mavlink/mavlink_main.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/modules/mavlink/mavlink_main.cpp b/src/modules/mavlink/mavlink_main.cpp index 3282af4f10..ed0713421b 100644 --- a/src/modules/mavlink/mavlink_main.cpp +++ b/src/modules/mavlink/mavlink_main.cpp @@ -224,6 +224,7 @@ Mavlink::Mavlink() : _src_addr_initialized(false), _broadcast_address_found(false), _broadcast_address_not_found_warned(false), + _broadcast_failed_warned(false), _network_buf{}, _network_buf_len(0), #endif @@ -920,7 +921,12 @@ Mavlink::send_packet() (struct sockaddr *)&_bcast_addr, sizeof(_bcast_addr)); if (bret <= 0) { - PX4_ERR("sending broadcast failed, errno: %d: %s", errno, strerror(errno)); + if (!_broadcast_failed_warned) { + PX4_ERR("sending broadcast failed, errno: %d: %s", errno, strerror(errno)); + _broadcast_failed_warned = true; + } + } else { + _broadcast_failed_warned = false; } } } diff --git a/src/modules/mavlink/mavlink_main.h b/src/modules/mavlink/mavlink_main.h index a07385c77d..b2f616a98a 100644 --- a/src/modules/mavlink/mavlink_main.h +++ b/src/modules/mavlink/mavlink_main.h @@ -508,6 +508,7 @@ private: bool _src_addr_initialized; bool _broadcast_address_found; bool _broadcast_address_not_found_warned; + bool _broadcast_failed_warned; uint8_t _network_buf[MAVLINK_MAX_PACKET_LEN]; unsigned _network_buf_len; #endif