Browse Source

mavlink: don't try broadcast 0, and less printfs

This removes a bunch of unneeded printfs and prevents broadcasting
packets of size 0 which just trigger a warning.
sbg
Julian Oes 9 years ago committed by Lorenz Meier
parent
commit
ec5b2adfc0
  1. 38
      src/modules/mavlink/mavlink_main.cpp
  2. 20
      src/modules/mavlink/mavlink_main.h

38
src/modules/mavlink/mavlink_main.cpp

@ -224,7 +224,6 @@ Mavlink::Mavlink() : @@ -224,7 +224,6 @@ Mavlink::Mavlink() :
_src_addr_initialized(false),
_broadcast_address_found(false),
_broadcast_address_not_found_warned(false),
_sendto_result(1),
_network_buf{},
_network_buf_len(0),
#endif
@ -890,8 +889,16 @@ Mavlink::send_packet() @@ -890,8 +889,16 @@ Mavlink::send_packet()
#ifdef __PX4_POSIX
/* Only send packets if there is something in the buffer. */
if (_network_buf_len == 0) {
return 0;
}
if (get_protocol() == UDP) {
ret = sendto(_socket_fd, _network_buf, _network_buf_len, 0, (struct sockaddr *)&_src_addr, sizeof(_src_addr));
ret = sendto(_socket_fd, _network_buf, _network_buf_len, 0,
(struct sockaddr *)&_src_addr, sizeof(_src_addr));
struct telemetry_status_s &tstatus = get_rx_status();
@ -904,20 +911,20 @@ Mavlink::send_packet() @@ -904,20 +911,20 @@ Mavlink::send_packet()
find_broadcast_address();
}
if (_broadcast_address_found) {
if (_broadcast_address_found && _network_buf_len > 0) {
int bret = sendto(_socket_fd, _network_buf, _network_buf_len, 0, (struct sockaddr *)&_bcast_addr, sizeof(_bcast_addr));
int bret = sendto(_socket_fd, _network_buf, _network_buf_len, 0,
(struct sockaddr *)&_bcast_addr, sizeof(_bcast_addr));
if (bret <= 0 && _sendto_result > 0) {
if (bret <= 0) {
PX4_ERR("sending broadcast failed, errno: %d: %s", errno, strerror(errno));
}
_sendto_result = bret;
}
}
} else if (get_protocol() == TCP) {
/* not implemented, but possible to do so */
warnx("TCP transport pending implementation");
PX4_ERR("TCP transport pending implementation");
}
_network_buf_len = 0;
@ -1179,7 +1186,7 @@ Mavlink::init_udp() @@ -1179,7 +1186,7 @@ Mavlink::init_udp()
{
#if defined (__PX4_LINUX) || defined (__PX4_DARWIN)
PX4_INFO("Setting up UDP w/port %d", _network_port);
PX4_DEBUG("Setting up UDP with port %d", _network_port);
_myaddr.sin_family = AF_INET;
_myaddr.sin_addr.s_addr = htonl(INADDR_ANY);
@ -1792,7 +1799,8 @@ Mavlink::task_main(int argc, char *argv[]) @@ -1792,7 +1799,8 @@ Mavlink::task_main(int argc, char *argv[])
return ERROR;
}
warnx("mode: %u, data rate: %d B/s on %s @ %dB", _mode, _datarate, _device_name, _baudrate);
PX4_INFO("mode: %s, data rate: %d B/s on %s @ %dB",
mavlink_mode_str(_mode), _datarate, _device_name, _baudrate);
/* flush stdout in case MAVLink is about to take it over */
fflush(stdout);
@ -1814,7 +1822,8 @@ Mavlink::task_main(int argc, char *argv[]) @@ -1814,7 +1822,8 @@ Mavlink::task_main(int argc, char *argv[])
return ERROR;
}
warnx("mode: %u, data rate: %d B/s on udp port %hu", _mode, _datarate, _network_port);
PX4_INFO("mode: %s, data rate: %d B/s on udp port %hu",
mavlink_mode_str(_mode), _datarate, _network_port);
}
/* initialize send mutex */
@ -2015,7 +2024,6 @@ Mavlink::task_main(int argc, char *argv[]) @@ -2015,7 +2024,6 @@ Mavlink::task_main(int argc, char *argv[])
/* init socket if necessary */
if (get_protocol() == UDP) {
find_broadcast_address();
init_udp();
}
@ -2111,18 +2119,18 @@ Mavlink::task_main(int argc, char *argv[]) @@ -2111,18 +2119,18 @@ Mavlink::task_main(int argc, char *argv[])
if (OK == configure_stream(_subscribe_to_stream, _subscribe_to_stream_rate)) {
if (_subscribe_to_stream_rate > 0.0f) {
if ( get_protocol() == SERIAL ) {
PX4_INFO("stream %s on device %s enabled with rate %.1f Hz", _subscribe_to_stream, _device_name,
PX4_DEBUG("stream %s on device %s enabled with rate %.1f Hz", _subscribe_to_stream, _device_name,
(double)_subscribe_to_stream_rate);
} else if ( get_protocol() == UDP ) {
PX4_INFO("stream %s on UDP port %d enabled with rate %.1f Hz", _subscribe_to_stream, _network_port,
PX4_DEBUG("stream %s on UDP port %d enabled with rate %.1f Hz", _subscribe_to_stream, _network_port,
(double)_subscribe_to_stream_rate);
}
} else {
if ( get_protocol() == SERIAL ) {
PX4_WARN("stream %s on device %s disabled", _subscribe_to_stream, _device_name);
PX4_INFO("stream %s on device %s disabled", _subscribe_to_stream, _device_name);
} else if ( get_protocol() == UDP ) {
PX4_WARN("stream %s on UDP port %d disabled", _subscribe_to_stream, _network_port);
PX4_INFO("stream %s on UDP port %d disabled", _subscribe_to_stream, _network_port);
}
}

20
src/modules/mavlink/mavlink_main.h

@ -169,6 +169,25 @@ public: @@ -169,6 +169,25 @@ public:
BROADCAST_MODE_ON
};
static const char *mavlink_mode_str(enum MAVLINK_MODE mode) {
switch (mode) {
case MAVLINK_MODE_NORMAL:
return "Normal";
case MAVLINK_MODE_CUSTOM:
return "Custom";
case MAVLINK_MODE_ONBOARD:
return "Onboard";
case MAVLINK_MODE_OSD:
return "OSD";
case MAVLINK_MODE_MAGIC:
return "Magic";
case MAVLINK_MODE_CONFIG:
return "Config";
default:
return "Unknown";
}
}
void set_mode(enum MAVLINK_MODE);
enum MAVLINK_MODE get_mode() { return _mode; }
@ -486,7 +505,6 @@ private: @@ -486,7 +505,6 @@ private:
bool _src_addr_initialized;
bool _broadcast_address_found;
bool _broadcast_address_not_found_warned;
int _sendto_result;
uint8_t _network_buf[MAVLINK_MAX_PACKET_LEN];
unsigned _network_buf_len;
#endif

Loading…
Cancel
Save