mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-21 15:25:29 +03:00
Update navigation.c
RTH Alt Override
This commit is contained in:
parent
5b2c02b428
commit
e09724bd3a
1 changed files with 21 additions and 0 deletions
|
@ -221,6 +221,10 @@ static navigationFSMEvent_t nextForNonGeoStates(void);
|
||||||
void initializeRTHSanityChecker(const fpVector3_t * pos);
|
void initializeRTHSanityChecker(const fpVector3_t * pos);
|
||||||
bool validateRTHSanityChecker(void);
|
bool validateRTHSanityChecker(void);
|
||||||
|
|
||||||
|
//AWH xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
bool RTHAltHoldOverRideFlag = false;
|
||||||
|
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
|
||||||
/*************************************************************************************************/
|
/*************************************************************************************************/
|
||||||
static navigationFSMEvent_t navOnEnteringState_NAV_STATE_IDLE(navigationFSMState_t previousState);
|
static navigationFSMEvent_t navOnEnteringState_NAV_STATE_IDLE(navigationFSMState_t previousState);
|
||||||
static navigationFSMEvent_t navOnEnteringState_NAV_STATE_ALTHOLD_INITIALIZE(navigationFSMState_t previousState);
|
static navigationFSMEvent_t navOnEnteringState_NAV_STATE_ALTHOLD_INITIALIZE(navigationFSMState_t previousState);
|
||||||
|
@ -1081,6 +1085,10 @@ static navigationFSMEvent_t navOnEnteringState_NAV_STATE_CRUISE_3D_ADJUSTING(nav
|
||||||
|
|
||||||
static navigationFSMEvent_t navOnEnteringState_NAV_STATE_RTH_INITIALIZE(navigationFSMState_t previousState)
|
static navigationFSMEvent_t navOnEnteringState_NAV_STATE_RTH_INITIALIZE(navigationFSMState_t previousState)
|
||||||
{
|
{
|
||||||
|
//AWH xxxxxxxxxxxxxxxxxxxxx
|
||||||
|
RTHAltHoldOverRideFlag = false;
|
||||||
|
//xxxxxxxxxxxxxxxxxxxxx
|
||||||
|
|
||||||
navigationFSMStateFlags_t prevFlags = navGetStateFlags(previousState);
|
navigationFSMStateFlags_t prevFlags = navGetStateFlags(previousState);
|
||||||
|
|
||||||
if ((posControl.flags.estHeadingStatus == EST_NONE) || (posControl.flags.estAltStatus == EST_NONE) || (posControl.flags.estPosStatus != EST_TRUSTED) || !STATE(GPS_FIX_HOME)) {
|
if ((posControl.flags.estHeadingStatus == EST_NONE) || (posControl.flags.estAltStatus == EST_NONE) || (posControl.flags.estPosStatus != EST_TRUSTED) || !STATE(GPS_FIX_HOME)) {
|
||||||
|
@ -1147,6 +1155,19 @@ static navigationFSMEvent_t navOnEnteringState_NAV_STATE_RTH_INITIALIZE(navigati
|
||||||
|
|
||||||
static navigationFSMEvent_t navOnEnteringState_NAV_STATE_RTH_CLIMB_TO_SAFE_ALT(navigationFSMState_t previousState)
|
static navigationFSMEvent_t navOnEnteringState_NAV_STATE_RTH_CLIMB_TO_SAFE_ALT(navigationFSMState_t previousState)
|
||||||
{
|
{
|
||||||
|
//AWH xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
if (!IS_RC_MODE_ACTIVE(BOXNAVALTHOLD)) {
|
||||||
|
RTHAltHoldOverRideFlag = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (RTHAltHoldOverRideFlag && !posControl.flags.forcedRTHActivated) {
|
||||||
|
posControl.rthState.rthInitialAltitude = posControl.actualState.abs.pos.z;
|
||||||
|
posControl.rthState.rthFinalAltitude = posControl.rthState.rthInitialAltitude;
|
||||||
|
RTHAltHoldOverRideFlag = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
|
||||||
UNUSED(previousState);
|
UNUSED(previousState);
|
||||||
|
|
||||||
if ((posControl.flags.estHeadingStatus == EST_NONE)) {
|
if ((posControl.flags.estHeadingStatus == EST_NONE)) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue