From 9fbbcc9c7343eaefe5312782b47abace8ea3669b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Tue, 11 May 2021 14:39:12 +0200 Subject: [PATCH] mavlink ATTITUDE_TARGET: send also if vehicle_attitude_setpoint is not updated This is the case in MC acro --- src/modules/mavlink/streams/ATTITUDE_TARGET.hpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/modules/mavlink/streams/ATTITUDE_TARGET.hpp b/src/modules/mavlink/streams/ATTITUDE_TARGET.hpp index 55c262862b..dd93fc8dfe 100644 --- a/src/modules/mavlink/streams/ATTITUDE_TARGET.hpp +++ b/src/modules/mavlink/streams/ATTITUDE_TARGET.hpp @@ -58,12 +58,27 @@ private: uORB::Subscription _att_sp_sub{ORB_ID(vehicle_attitude_setpoint)}; uORB::Subscription _att_rates_sp_sub{ORB_ID(vehicle_rates_setpoint)}; + hrt_abstime _last_att_sp_update{0}; bool send() override { vehicle_attitude_setpoint_s att_sp; + bool updated = false; + if (_att_sp_sub.update(&att_sp)) { + _last_att_sp_update = att_sp.timestamp; + updated = true; + + } else if (hrt_elapsed_time(&_last_att_sp_update) > 500_ms) { + if (!_att_sp_sub.copy(&att_sp)) { + att_sp = {}; + } + + updated = _att_rates_sp_sub.updated(); + } + + if (updated) { mavlink_attitude_target_t msg{}; msg.time_boot_ms = att_sp.timestamp / 1000;