From 24116b26726b021e9f11774e280df154a7bf8ce9 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Thu, 7 Jan 2016 23:19:00 +0100 Subject: [PATCH] Only try to disable HW flow control when not being UDP --- src/modules/mavlink/mavlink_main.cpp | 36 ++++++++++++++-------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/modules/mavlink/mavlink_main.cpp b/src/modules/mavlink/mavlink_main.cpp index 51fd0d1062..d58fd0c93e 100644 --- a/src/modules/mavlink/mavlink_main.cpp +++ b/src/modules/mavlink/mavlink_main.cpp @@ -843,27 +843,27 @@ Mavlink::get_free_tx_buf() */ int buf_free = 0; -// No FIONWRITE on Linux -#if !defined(__PX4_LINUX) && !defined(__PX4_DARWIN) - (void) ioctl(_uart_fd, FIONWRITE, (unsigned long)&buf_free); -#endif - - if (get_flow_control_enabled() && buf_free < FLOW_CONTROL_DISABLE_THRESHOLD) { - /* Disable hardware flow control: - * if no successful write since a defined time - * and if the last try was not the last successful write - */ - if (_last_write_try_time != 0 && - hrt_elapsed_time(&_last_write_success_time) > 500 * 1000UL && - _last_write_success_time != _last_write_try_time) { - warnx("Disabling hardware flow control"); - enable_flow_control(false); - } - } - // if we are using network sockets, return max lenght of one packet if (get_protocol() == UDP || get_protocol() == TCP ) { return 1500; + } else { + // No FIONWRITE on Linux +#if !defined(__PX4_LINUX) && !defined(__PX4_DARWIN) + (void) ioctl(_uart_fd, FIONWRITE, (unsigned long)&buf_free); +#endif + + if (get_flow_control_enabled() && buf_free < FLOW_CONTROL_DISABLE_THRESHOLD) { + /* Disable hardware flow control: + * if no successful write since a defined time + * and if the last try was not the last successful write + */ + if (_last_write_try_time != 0 && + hrt_elapsed_time(&_last_write_success_time) > 500 * 1000UL && + _last_write_success_time != _last_write_try_time) { + warnx("Disabling hardware flow control"); + enable_flow_control(false); + } + } } return buf_free;