From 9ee3d79a9632eb3270809287f6f8380947ceca4c Mon Sep 17 00:00:00 2001 From: Simone Guscetti Date: Tue, 6 Nov 2018 15:48:14 +0100 Subject: [PATCH] FlightTask Manual: Gear react only on switch changes and not states --- src/lib/FlightTasks/tasks/Manual/FlightTaskManual.cpp | 9 +++------ src/lib/FlightTasks/tasks/Manual/FlightTaskManual.hpp | 1 + 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/lib/FlightTasks/tasks/Manual/FlightTaskManual.cpp b/src/lib/FlightTasks/tasks/Manual/FlightTaskManual.cpp index 0246ef56c3..ed26d4ded9 100644 --- a/src/lib/FlightTasks/tasks/Manual/FlightTaskManual.cpp +++ b/src/lib/FlightTasks/tasks/Manual/FlightTaskManual.cpp @@ -91,15 +91,12 @@ bool FlightTaskManual::_evaluateSticks() // until he toggles the switch to avoid retracting the gear immediately on takeoff. int8_t gear_switch = _sub_manual_control_setpoint->get().gear_switch; - if (!_gear.landing_gear) { - if (gear_switch == manual_control_setpoint_s::SWITCH_POS_OFF) { - _applyGearSwitch(gear_switch); - } - - } else { + if (_gear_switch_old != gear_switch) { _applyGearSwitch(gear_switch); } + _gear_switch_old = gear_switch; + // valid stick inputs are required const bool valid_sticks = PX4_ISFINITE(_sticks(0)) && PX4_ISFINITE(_sticks(1)) diff --git a/src/lib/FlightTasks/tasks/Manual/FlightTaskManual.hpp b/src/lib/FlightTasks/tasks/Manual/FlightTaskManual.hpp index fa3df95434..a85b91efa5 100644 --- a/src/lib/FlightTasks/tasks/Manual/FlightTaskManual.hpp +++ b/src/lib/FlightTasks/tasks/Manual/FlightTaskManual.hpp @@ -59,6 +59,7 @@ protected: bool _sticks_data_required = true; /**< let inherited task-class define if it depends on stick data */ matrix::Vector _sticks; /**< unmodified manual stick inputs */ matrix::Vector _sticks_expo; /**< modified manual sticks using expo function*/ + int _gear_switch_old = manual_control_setpoint_s::SWITCH_POS_NONE; /**< old switch state*/ float stickDeadzone() const { return _stick_dz.get(); }