From 6b9d95648f36015b050449c391079598383ee9ca Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Tue, 27 Sep 2016 14:03:52 +0200 Subject: [PATCH] MAVLink app: Fix flow control handling flags --- src/modules/mavlink/mavlink_main.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/modules/mavlink/mavlink_main.cpp b/src/modules/mavlink/mavlink_main.cpp index dda8ea9520..e81ba0fe0c 100644 --- a/src/modules/mavlink/mavlink_main.cpp +++ b/src/modules/mavlink/mavlink_main.cpp @@ -806,13 +806,6 @@ int Mavlink::mavlink_open_uart(int baud, const char *uart_name) * Setup hardware flow control. If the port has no RTS pin this call will fail, * which is not an issue, but requires a separate call so we can fail silently. */ - (void)tcgetattr(_uart_fd, &uart_config); -#ifdef CRTS_IFLOW - uart_config.c_cflag |= CRTS_IFLOW; -#else - uart_config.c_cflag |= CRTSCTS; -#endif - (void)tcsetattr(_uart_fd, TCSANOW, &uart_config); /* setup output flow control */ if (enable_flow_control(true)) { @@ -840,10 +833,18 @@ Mavlink::enable_flow_control(bool enabled) int ret = tcgetattr(_uart_fd, &uart_config); if (enabled) { +#ifdef CRTS_IFLOW + uart_config.c_cflag |= CRTS_IFLOW; +#else uart_config.c_cflag |= CRTSCTS; +#endif } else { +#ifdef CRTS_IFLOW + uart_config.c_cflag &= ~CRTS_IFLOW; +#else uart_config.c_cflag &= ~CRTSCTS; +#endif } ret = tcsetattr(_uart_fd, TCSANOW, &uart_config);