From d4b588f84a2fccfe9d253373fe8ea1386c839c2f Mon Sep 17 00:00:00 2001 From: Lorenz Meier <lm@inf.ethz.ch> Date: Sun, 28 Aug 2016 10:40:00 +0200 Subject: [PATCH] Fix proto version selection --- src/modules/mavlink/mavlink_main.cpp | 5 +++-- src/modules/mavlink/mavlink_receiver.cpp | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/modules/mavlink/mavlink_main.cpp b/src/modules/mavlink/mavlink_main.cpp index a7ccd4d255..3d82101bff 100644 --- a/src/modules/mavlink/mavlink_main.cpp +++ b/src/modules/mavlink/mavlink_main.cpp @@ -216,7 +216,7 @@ Mavlink::Mavlink() : _last_write_success_time(0), _last_write_try_time(0), _mavlink_start_time(0), - _protocol_version_switch(0), + _protocol_version_switch(-1), _protocol_version(0), _bytes_tx(0), _bytes_txerr(0), @@ -336,7 +336,8 @@ Mavlink::~Mavlink() void Mavlink::set_proto_version(unsigned version) { - if (version == 1 || ((version == 0) && !_received_messages)) { + if ((version == 1 || version == 0) && + ((_protocol_version_switch == 0) || (_protocol_version_switch == 1))) { get_status()->flags |= MAVLINK_STATUS_FLAG_OUT_MAVLINK1; _protocol_version = 1; diff --git a/src/modules/mavlink/mavlink_receiver.cpp b/src/modules/mavlink/mavlink_receiver.cpp index 8824b8c2d2..bed54c56da 100644 --- a/src/modules/mavlink/mavlink_receiver.cpp +++ b/src/modules/mavlink/mavlink_receiver.cpp @@ -2090,7 +2090,7 @@ MavlinkReceiver::receive_thread(void *arg) #endif mavlink_message_t msg; - struct pollfd fds[1]; + struct pollfd fds[1] = {}; if (_mavlink->get_protocol() == SERIAL) { fds[0].fd = _mavlink->get_uart_fd(); -- GitLab