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

Don't do home reset if in failsafe mode

This commit is contained in:
teckel12 2017-10-27 09:42:53 -04:00
parent 37a0aa6d34
commit cc298d075e
2 changed files with 9 additions and 4 deletions

View file

@ -1732,7 +1732,7 @@ void updateHomePosition(void)
// If pilot so desires he may reset home position to current position // If pilot so desires he may reset home position to current position
if (IS_RC_MODE_ACTIVE(BOXHOMERESET)) { if (IS_RC_MODE_ACTIVE(BOXHOMERESET)) {
if (isHomeResetAllowed && !FLIGHT_MODE(NAV_RTH_MODE) && !FLIGHT_MODE(NAV_WP_MODE) && posControl.flags.hasValidPositionSensor) { if (isHomeResetAllowed && !FLIGHT_MODE(FAILSAFE_MODE) && !FLIGHT_MODE(NAV_RTH_MODE) && !FLIGHT_MODE(NAV_WP_MODE) && posControl.flags.hasValidPositionSensor) {
const navSetWaypointFlags_t homeUpdateFlags = STATE(GPS_FIX_HOME) ? (NAV_POS_UPDATE_XY | NAV_POS_UPDATE_HEADING) : (NAV_POS_UPDATE_XY | NAV_POS_UPDATE_Z | NAV_POS_UPDATE_HEADING); const navSetWaypointFlags_t homeUpdateFlags = STATE(GPS_FIX_HOME) ? (NAV_POS_UPDATE_XY | NAV_POS_UPDATE_HEADING) : (NAV_POS_UPDATE_XY | NAV_POS_UPDATE_Z | NAV_POS_UPDATE_HEADING);
setHomePosition(&posControl.actualState.pos, posControl.actualState.yaw, homeUpdateFlags); setHomePosition(&posControl.actualState.pos, posControl.actualState.yaw, homeUpdateFlags);
isHomeResetAllowed = false; isHomeResetAllowed = false;

View file

@ -648,9 +648,9 @@ void handleSmartPortTelemetry(void)
case FSSP_DATAID_ACCZ : case FSSP_DATAID_ACCZ :
smartPortSendPackage(id, 100 * acc.accADC[Z] / acc.dev.acc_1G); smartPortSendPackage(id, 100 * acc.accADC[Z] / acc.dev.acc_1G);
break; break;
case FSSP_DATAID_T1 : case FSSP_DATAID_T1 :
{ {
uint32_t tmpi = 10000; // start off with at least one digit so the most significant 0 won't be cut off uint32_t tmpi = 0;
// ones column // ones column
if (!isArmingDisabled()) if (!isArmingDisabled())
@ -686,7 +686,9 @@ void handleSmartPortTelemetry(void)
tmpi += 4000; tmpi += 4000;
// ten thousands column // ten thousands column
if (ARMING_FLAG(ARMED) && IS_RC_MODE_ACTIVE(BOXHOMERESET) && !FLIGHT_MODE(NAV_RTH_MODE) && !FLIGHT_MODE(NAV_WP_MODE)) if (FLIGHT_MODE(FLAPERON))
tmpi += 10000;
if (FLIGHT_MODE(AUTO_TUNE))
tmpi += 20000; tmpi += 20000;
if (FLIGHT_MODE(FAILSAFE_MODE)) if (FLIGHT_MODE(FAILSAFE_MODE))
tmpi += 40000; tmpi += 40000;
@ -710,8 +712,11 @@ void handleSmartPortTelemetry(void)
tmpi += 1000; tmpi += 1000;
if (STATE(GPS_FIX_HOME)) if (STATE(GPS_FIX_HOME))
tmpi += 2000; tmpi += 2000;
if (ARMING_FLAG(ARMED) && IS_RC_MODE_ACTIVE(BOXHOMERESET) && !FLIGHT_MODE(FAILSAFE_MODE) && !FLIGHT_MODE(NAV_RTH_MODE) && !FLIGHT_MODE(NAV_WP_MODE))
tmpi += 4000;
smartPortSendPackage(id, tmpi); smartPortSendPackage(id, tmpi);
#endif #endif
} else if (feature(FEATURE_GPS)) } else if (feature(FEATURE_GPS))
smartPortSendPackage(id, 0); smartPortSendPackage(id, 0);