diff --git a/src/main/fc/rc_controls.c b/src/main/fc/rc_controls.c index 9ee7774a14..74952a5329 100644 --- a/src/main/fc/rc_controls.c +++ b/src/main/fc/rc_controls.c @@ -103,6 +103,11 @@ bool areSticksDeflected(void) return (ABS(rcCommand[ROLL]) > rcControlsConfig()->control_deadband) || (ABS(rcCommand[PITCH]) > rcControlsConfig()->control_deadband) || (ABS(rcCommand[YAW]) > rcControlsConfig()->control_deadband); } +bool isRollPitchStickDeflected(void) +{ + return (ABS(rcCommand[ROLL]) > rcControlsConfig()->control_deadband) || (ABS(rcCommand[PITCH]) > rcControlsConfig()->control_deadband); +} + throttleStatus_e FAST_CODE NOINLINE calculateThrottleStatus(throttleStatusType_e type) { int value; diff --git a/src/main/fc/rc_controls.h b/src/main/fc/rc_controls.h index e683c987fe..dd617f29e7 100644 --- a/src/main/fc/rc_controls.h +++ b/src/main/fc/rc_controls.h @@ -108,6 +108,7 @@ bool checkStickPosition(stickPositions_e stickPos); bool areSticksInApModePosition(uint16_t ap_mode); bool areSticksDeflected(void); +bool isRollPitchStickDeflected(void); throttleStatus_e calculateThrottleStatus(throttleStatusType_e type); rollPitchStatus_e calculateRollPitchCenterStatus(void); void processRcStickPositions(throttleStatus_e throttleStatus); diff --git a/src/main/navigation/navigation.c b/src/main/navigation/navigation.c index ef1d9d41e5..f4de112384 100644 --- a/src/main/navigation/navigation.c +++ b/src/main/navigation/navigation.c @@ -1728,7 +1728,7 @@ static navigationFSMEvent_t navOnEnteringState_NAV_STATE_LAUNCH_WAIT(navigationF //allow to leave NAV_LAUNCH_MODE if it has being enabled as feature by moving sticks with low throttle. if (feature(FEATURE_FW_LAUNCH)) { throttleStatus_e throttleStatus = calculateThrottleStatus(THROTTLE_STATUS_TYPE_RC); - if ((throttleStatus == THROTTLE_LOW) && (areSticksDeflected())) { + if ((throttleStatus == THROTTLE_LOW) && (isRollPitchStickDeflected())) { abortFixedWingLaunch(); return NAV_FSM_EVENT_SWITCH_TO_IDLE; } diff --git a/src/main/navigation/navigation_fw_launch.c b/src/main/navigation/navigation_fw_launch.c index 42a8efc526..ea71f2a7b9 100755 --- a/src/main/navigation/navigation_fw_launch.c +++ b/src/main/navigation/navigation_fw_launch.c @@ -251,7 +251,7 @@ static inline bool isLaunchMaxAltitudeReached(void) static inline bool areSticksMoved(timeMs_t initialTime, timeUs_t currentTimeUs) { - return (initialTime + currentStateElapsedMs(currentTimeUs)) > navConfig()->fw.launch_min_time && areSticksDeflected(); + return (initialTime + currentStateElapsedMs(currentTimeUs)) > navConfig()->fw.launch_min_time && isRollPitchStickDeflected(); } static void resetPidsIfNeeded(void) { @@ -435,7 +435,7 @@ static fixedWingLaunchEvent_t fwLaunchState_FW_LAUNCH_STATE_FINISH(timeUs_t curr const timeMs_t elapsedTimeMs = currentStateElapsedMs(currentTimeUs); const timeMs_t endTimeMs = navConfig()->fw.launch_end_time; - if (areSticksDeflected()) { + if (isRollPitchStickDeflected()) { return FW_LAUNCH_EVENT_ABORT; // cancel the launch and do the FW_LAUNCH_STATE_IDLE state } if (elapsedTimeMs > endTimeMs) {