1
0
Fork 0
mirror of https://github.com/iNavFlight/inav.git synced 2025-07-23 00:05:28 +03:00

7.0 Use safehome loc

This commit is contained in:
Scavanger 2024-01-18 13:19:15 -03:00
parent b8dcf95a75
commit 1b3bf3caab

View file

@ -1698,7 +1698,6 @@ static navigationFSMEvent_t navOnEnteringState_NAV_STATE_RTH_LANDING(navigationF
} }
if (STATE(FIXED_WING_LEGACY)) { if (STATE(FIXED_WING_LEGACY)) {
// FW Autoland configured?
int8_t missionIdx = -1, shIdx = -1, missionFwLandConfigStartIdx = 8; int8_t missionIdx = -1, shIdx = -1, missionFwLandConfigStartIdx = 8;
#ifdef USE_MULTI_MISSION #ifdef USE_MULTI_MISSION
missionIdx = posControl.loadedMultiMissionIndex - 1; missionIdx = posControl.loadedMultiMissionIndex - 1;
@ -1715,7 +1714,7 @@ static navigationFSMEvent_t navOnEnteringState_NAV_STATE_RTH_LANDING(navigationF
posControl.fwLandState.approachSettingIdx = missionFwLandConfigStartIdx + missionIdx; posControl.fwLandState.approachSettingIdx = missionFwLandConfigStartIdx + missionIdx;
posControl.fwLandState.landWp = true; posControl.fwLandState.landWp = true;
} else { } else {
posControl.fwLandState.landPos = posControl.rthState.homePosition.pos; posControl.fwLandState.landPos = posControl.safehomeState.nearestSafeHome;
posControl.fwLandState.approachSettingIdx = shIdx; posControl.fwLandState.approachSettingIdx = shIdx;
posControl.fwLandState.landWp = false; posControl.fwLandState.landWp = false;
} }
@ -2394,7 +2393,6 @@ static navigationFSMEvent_t navOnEnteringState_NAV_STATE_FW_LANDING_GLIDE(naviga
altitude = rangefinderGetLatestAltitude(); altitude = rangefinderGetLatestAltitude();
} }
#endif #endif
// Surface sensor present?
if (altitude >= 0) { if (altitude >= 0) {
if (altitude <= posControl.fwLandState.landAltAgl + navFwAutolandConfig()->flareAltitude) { if (altitude <= posControl.fwLandState.landAltAgl + navFwAutolandConfig()->flareAltitude) {
posControl.cruise.course = posControl.fwLandState.landingDirection; posControl.cruise.course = posControl.fwLandState.landingDirection;
@ -5079,8 +5077,7 @@ static void setLandWaypoint(const fpVector3_t *pos, const fpVector3_t *nextWpPos
void resetFwAutolandApproach(int8_t idx) void resetFwAutolandApproach(int8_t idx)
{ {
if (idx >= 0 && idx < MAX_FW_LAND_APPOACH_SETTINGS) if (idx >= 0 && idx < MAX_FW_LAND_APPOACH_SETTINGS) {
{
memset(fwAutolandApproachConfigMutable(idx), 0, sizeof(navFwAutolandApproach_t)); memset(fwAutolandApproachConfigMutable(idx), 0, sizeof(navFwAutolandApproach_t));
} else { } else {
memset(fwAutolandApproachConfigMutable(0), 0, sizeof(navFwAutolandApproach_t) * MAX_FW_LAND_APPOACH_SETTINGS); memset(fwAutolandApproachConfigMutable(0), 0, sizeof(navFwAutolandApproach_t) * MAX_FW_LAND_APPOACH_SETTINGS);