aboutsummaryrefslogtreecommitdiff
path: root/src/modules/mavlink
diff options
context:
space:
mode:
authorAnton Babushkin <anton.babushkin@me.com>2014-03-01 17:12:46 +0400
committerAnton Babushkin <anton.babushkin@me.com>2014-03-01 17:12:46 +0400
commitc10ef787539265bc36fb76c855aa19b30ea24b04 (patch)
tree341e883b08b0bae77824c18fe9d1ddd67b1bf5f8 /src/modules/mavlink
parentc47ef70dd9437b190265934e70641f8674bb3e18 (diff)
downloadpx4-firmware-c10ef787539265bc36fb76c855aa19b30ea24b04.tar.gz
px4-firmware-c10ef787539265bc36fb76c855aa19b30ea24b04.tar.bz2
px4-firmware-c10ef787539265bc36fb76c855aa19b30ea24b04.zip
mavlink: stop fixes
Diffstat (limited to 'src/modules/mavlink')
-rw-r--r--src/modules/mavlink/mavlink_main.cpp11
-rw-r--r--src/modules/mavlink/mavlink_receiver.cpp2
2 files changed, 9 insertions, 4 deletions
diff --git a/src/modules/mavlink/mavlink_main.cpp b/src/modules/mavlink/mavlink_main.cpp
index b996413a8..568666c1e 100644
--- a/src/modules/mavlink/mavlink_main.cpp
+++ b/src/modules/mavlink/mavlink_main.cpp
@@ -308,7 +308,7 @@ Mavlink::destroy_all_instances()
usleep(10000);
iterations++;
- if (iterations > 10000) {
+ if (iterations > 1000) {
warnx("ERROR: Couldn't stop all mavlink instances.");
return ERROR;
}
@@ -1850,18 +1850,23 @@ Mavlink::task_main(int argc, char *argv[])
delete _subscribe_to_stream;
_subscribe_to_stream = nullptr;
+ warnv("waiting for UART receive thread");
+
/* wait for threads to complete */
pthread_join(receive_thread, NULL);
- /* Reset the UART flags to original state */
+ /* reset the UART flags to original state */
tcsetattr(_uart, TCSANOW, &uart_config_original);
+ /* close UART */
+ close(_uart);
+
/* destroy log buffer */
mavlink_logbuffer_destroy(&lb);
thread_running = false;
- warnx("exiting.");
+ warnx("exiting");
_mavlink_task = -1;
_exit(0);
diff --git a/src/modules/mavlink/mavlink_receiver.cpp b/src/modules/mavlink/mavlink_receiver.cpp
index f85773ae0..b6e008cbf 100644
--- a/src/modules/mavlink/mavlink_receiver.cpp
+++ b/src/modules/mavlink/mavlink_receiver.cpp
@@ -795,7 +795,7 @@ MavlinkReceiver::receive_thread(void *arg)
{
int uart_fd = _mavlink->get_uart_fd();
- const int timeout = 1000;
+ const int timeout = 500;
uint8_t buf[32];
mavlink_message_t msg;