From 8eb46b0eb8c9bda9e5840c7d2200a15aba3ebe57 Mon Sep 17 00:00:00 2001 From: Oleg Evseev Date: Wed, 26 Aug 2020 15:27:57 +0300 Subject: [PATCH] mavlink: check type on instance getting by device or network port otherwise serial mavlink running in first will occupy default net port 14556 and could be wrongly used for stream configuring instead or udp mavlink running in first will occupy default serial "/dev/ttyS1"and could be wrongly used for stream configuring instead issue #15558 --- src/modules/mavlink/mavlink_main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/mavlink/mavlink_main.cpp b/src/modules/mavlink/mavlink_main.cpp index d0ad366fc9..bc6d9d877b 100644 --- a/src/modules/mavlink/mavlink_main.cpp +++ b/src/modules/mavlink/mavlink_main.cpp @@ -331,7 +331,7 @@ Mavlink::get_instance_for_device(const char *device_name) Mavlink *inst; LL_FOREACH(::_mavlink_instances, inst) { - if (strcmp(inst->_device_name, device_name) == 0) { + if ((inst->_protocol == Protocol::SERIAL) && (strcmp(inst->_device_name, device_name) == 0)) { return inst; } } @@ -346,7 +346,7 @@ Mavlink::get_instance_for_network_port(unsigned long port) Mavlink *inst; LL_FOREACH(::_mavlink_instances, inst) { - if (inst->_network_port == port) { + if ((inst->_protocol == Protocol::UDP) && (inst->_network_port == port)) { return inst; } }