Browse Source

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.
sbg
Julian Oes 9 years ago committed by Beat Küng
parent
commit
3ed8b735c2
  1. 6
      src/modules/mavlink/mavlink_main.cpp
  2. 1
      src/modules/mavlink/mavlink_main.h

6
src/modules/mavlink/mavlink_main.cpp

@ -224,6 +224,7 @@ Mavlink::Mavlink() :
_src_addr_initialized(false), _src_addr_initialized(false),
_broadcast_address_found(false), _broadcast_address_found(false),
_broadcast_address_not_found_warned(false), _broadcast_address_not_found_warned(false),
_broadcast_failed_warned(false),
_network_buf{}, _network_buf{},
_network_buf_len(0), _network_buf_len(0),
#endif #endif
@ -920,7 +921,12 @@ Mavlink::send_packet()
(struct sockaddr *)&_bcast_addr, sizeof(_bcast_addr)); (struct sockaddr *)&_bcast_addr, sizeof(_bcast_addr));
if (bret <= 0) { if (bret <= 0) {
if (!_broadcast_failed_warned) {
PX4_ERR("sending broadcast failed, errno: %d: %s", errno, strerror(errno)); PX4_ERR("sending broadcast failed, errno: %d: %s", errno, strerror(errno));
_broadcast_failed_warned = true;
}
} else {
_broadcast_failed_warned = false;
} }
} }
} }

1
src/modules/mavlink/mavlink_main.h

@ -508,6 +508,7 @@ private:
bool _src_addr_initialized; bool _src_addr_initialized;
bool _broadcast_address_found; bool _broadcast_address_found;
bool _broadcast_address_not_found_warned; bool _broadcast_address_not_found_warned;
bool _broadcast_failed_warned;
uint8_t _network_buf[MAVLINK_MAX_PACKET_LEN]; uint8_t _network_buf[MAVLINK_MAX_PACKET_LEN];
unsigned _network_buf_len; unsigned _network_buf_len;
#endif #endif

Loading…
Cancel
Save