From b1c6494ed75b2a71a6161014073d5a7819458cbf Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Thu, 19 Jan 2017 15:06:01 +0100 Subject: [PATCH] MAVLink receiver: Do use correct multi-topic architecture This prevents two inputs publishing to the same topic. Now if both RC and joystick are connected the first to be active gets control. This is not optimal but consistent and safe. --- src/modules/mavlink/mavlink_receiver.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/modules/mavlink/mavlink_receiver.cpp b/src/modules/mavlink/mavlink_receiver.cpp index 04cb851324..8e0861818f 100644 --- a/src/modules/mavlink/mavlink_receiver.cpp +++ b/src/modules/mavlink/mavlink_receiver.cpp @@ -1490,13 +1490,10 @@ MavlinkReceiver::handle_message_manual_control(mavlink_message_t *msg) manual.y = man.y / 1000.0f; manual.r = man.r / 1000.0f; manual.z = man.z / 1000.0f; + manual.data_source = manual_control_setpoint_s::SOURCE_MAVLINK_0 + _mavlink->get_instance_id(); - if (_manual_pub == nullptr) { - _manual_pub = orb_advertise(ORB_ID(manual_control_setpoint), &manual); - - } else { - orb_publish(ORB_ID(manual_control_setpoint), _manual_pub, &manual); - } + int m_inst; + orb_publish_auto(ORB_ID(manual_control_setpoint), &_manual_pub, &manual, &m_inst, ORB_PRIO_LOW); } }