From d8fabd11d04861890c792db320f66960ed9fbe75 Mon Sep 17 00:00:00 2001 From: Eric Katzfey <53063038+katzfey@users.noreply.github.com> Date: Tue, 9 Apr 2024 12:35:42 -0700 Subject: [PATCH] Send mavlink manual control buttons field in manual control input topic (#22988) Pass along button states from manual control mavlink message in new buttons field in manual control input topic --- boards/modalai/voxl2-slpi/src/drivers/elrs_led/elrs_led.cpp | 2 +- msg/ManualControlSetpoint.msg | 2 ++ src/modules/mavlink/mavlink_receiver.cpp | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/boards/modalai/voxl2-slpi/src/drivers/elrs_led/elrs_led.cpp b/boards/modalai/voxl2-slpi/src/drivers/elrs_led/elrs_led.cpp index a40bd8eda2..cf7e928342 100644 --- a/boards/modalai/voxl2-slpi/src/drivers/elrs_led/elrs_led.cpp +++ b/boards/modalai/voxl2-slpi/src/drivers/elrs_led/elrs_led.cpp @@ -125,7 +125,7 @@ void elrs_led_task() orb_copy(ORB_ID(manual_control_input), manual_control_input_fd, &setpoint_req); - _cmd = (ControllerInput)setpoint_req.aux1; + _cmd = (ControllerInput)setpoint_req.buttons; // skip duplicate cmds if (_cmd == _prev_cmd) { diff --git a/msg/ManualControlSetpoint.msg b/msg/ManualControlSetpoint.msg index 4e4e305fd0..95fa622283 100644 --- a/msg/ManualControlSetpoint.msg +++ b/msg/ManualControlSetpoint.msg @@ -37,6 +37,8 @@ float32 aux6 bool sticks_moving +uint16 buttons # From uint16 buttons field of Mavlink manual_control message + # TOPICS manual_control_setpoint manual_control_input # DEPRECATED: float32 x # DEPRECATED: float32 y diff --git a/src/modules/mavlink/mavlink_receiver.cpp b/src/modules/mavlink/mavlink_receiver.cpp index 6030d9b651..928d744b47 100644 --- a/src/modules/mavlink/mavlink_receiver.cpp +++ b/src/modules/mavlink/mavlink_receiver.cpp @@ -2089,6 +2089,8 @@ MavlinkReceiver::handle_message_manual_control(mavlink_message_t *msg) // For backwards compatibility at the moment interpret throttle in range [0,1000] manual_control_setpoint.throttle = ((mavlink_manual_control.z / 1000.f) * 2.f) - 1.f; manual_control_setpoint.yaw = mavlink_manual_control.r / 1000.f; + // Pass along the button states + manual_control_setpoint.buttons = mavlink_manual_control.buttons; manual_control_setpoint.data_source = manual_control_setpoint_s::SOURCE_MAVLINK_0 + _mavlink->get_instance_id(); manual_control_setpoint.timestamp = manual_control_setpoint.timestamp_sample = hrt_absolute_time(); manual_control_setpoint.valid = true;