From e23382c6da37528a8282b059f3dddb2b5c16baa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= <beat-kueng@gmx.net> Date: Thu, 4 Oct 2018 10:06:33 +0200 Subject: [PATCH] FlightTaskManualAltitude: call FlightTaskManualStabilized::_updateHeadingSetpoints() directly Instead of calling _updateSetpoints(), that also sets the thrust setpoint, which is then overwritten again. --- .../tasks/ManualAltitude/FlightTaskManualAltitude.cpp | 5 ++--- .../tasks/ManualStabilized/FlightTaskManualStabilized.hpp | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/lib/FlightTasks/tasks/ManualAltitude/FlightTaskManualAltitude.cpp b/src/lib/FlightTasks/tasks/ManualAltitude/FlightTaskManualAltitude.cpp index 939f40d858..78c90de94f 100644 --- a/src/lib/FlightTasks/tasks/ManualAltitude/FlightTaskManualAltitude.cpp +++ b/src/lib/FlightTasks/tasks/ManualAltitude/FlightTaskManualAltitude.cpp @@ -251,9 +251,7 @@ void FlightTaskManualAltitude::_respectMaxAltitude() void FlightTaskManualAltitude::_updateSetpoints() { - FlightTaskManualStabilized::_updateSetpoints(); // get yaw and thrust setpoints - - _thrust_setpoint *= NAN; // Don't need thrust setpoint from Stabilized mode. + FlightTaskManualStabilized::_updateHeadingSetpoints(); // get yaw setpoint // Thrust in xy are extracted directly from stick inputs. A magnitude of // 1 means that maximum thrust along xy is demanded. A magnitude of 0 means no @@ -269,6 +267,7 @@ void FlightTaskManualAltitude::_updateSetpoints() _thrust_setpoint(0) = sp(0); _thrust_setpoint(1) = sp(1); + _thrust_setpoint(2) = NAN; _updateAltitudeLock(); } diff --git a/src/lib/FlightTasks/tasks/ManualStabilized/FlightTaskManualStabilized.hpp b/src/lib/FlightTasks/tasks/ManualStabilized/FlightTaskManualStabilized.hpp index b846a1ba42..41f28c581b 100644 --- a/src/lib/FlightTasks/tasks/ManualStabilized/FlightTaskManualStabilized.hpp +++ b/src/lib/FlightTasks/tasks/ManualStabilized/FlightTaskManualStabilized.hpp @@ -58,12 +58,12 @@ public: void setYawHandler(WeatherVane *ext_yaw_handler) override {_ext_yaw_handler = ext_yaw_handler;} protected: - virtual void _updateSetpoints(); /**< updates all setpoints*/ + virtual void _updateSetpoints(); /**< updates all setpoints */ + void _updateHeadingSetpoints(); /**< sets yaw or yaw speed */ virtual void _scaleSticks(); /**< scales sticks to yaw and thrust */ void _rotateIntoHeadingFrame(matrix::Vector2f &vec); /**< rotates vector into local frame */ private: - void _updateHeadingSetpoints(); /**< sets yaw or yaw speed */ void _updateThrustSetpoints(); /**< sets thrust setpoint */ float _throttleCurve(); /**< piecewise linear mapping from stick to throttle */ -- GitLab