mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-23 16:25:26 +03:00
RTH on failsafe can now be set via CLI. Disabled RC input when executing failsafe RTH.
This commit is contained in:
parent
ed0f85c41b
commit
6850fe324f
2 changed files with 13 additions and 7 deletions
|
@ -1504,23 +1504,23 @@ void resetNavigation(void)
|
|||
*-----------------------------------------------------------*/
|
||||
static void processNavigationRCAdjustments(void)
|
||||
{
|
||||
/* Process pilot's RC input */
|
||||
/* Process pilot's RC input. Disable all pilot's input when in FAILSAFE_MODE */
|
||||
navigationFSMStateFlags_t navStateFlags = navGetStateFlags(posControl.navState);
|
||||
if (navStateFlags & NAV_RC_ALT) {
|
||||
if ((navStateFlags & NAV_RC_ALT) && (!FLIGHT_MODE(FAILSAFE_MODE))) {
|
||||
posControl.flags.isAdjustingAltitude = adjustAltitudeFromRCInput();
|
||||
}
|
||||
else {
|
||||
posControl.flags.isAdjustingAltitude = false;
|
||||
}
|
||||
|
||||
if (navStateFlags & NAV_RC_POS) {
|
||||
if ((navStateFlags & NAV_RC_POS) && (!FLIGHT_MODE(FAILSAFE_MODE))) {
|
||||
posControl.flags.isAdjustingPosition = adjustPositionFromRCInput();
|
||||
}
|
||||
else {
|
||||
posControl.flags.isAdjustingPosition = false;
|
||||
}
|
||||
|
||||
if (navStateFlags & NAV_RC_YAW) {
|
||||
if ((navStateFlags & NAV_RC_YAW) && (!FLIGHT_MODE(FAILSAFE_MODE))) {
|
||||
posControl.flags.isAdjustingHeading = adjustHeadingFromRCInput();
|
||||
}
|
||||
else {
|
||||
|
@ -1547,6 +1547,8 @@ void applyWaypointNavigationAndAltitudeHold(void)
|
|||
|
||||
// No navigation when disarmed
|
||||
if (!ARMING_FLAG(ARMED)) {
|
||||
// If we are disarmed, abort forced RTH
|
||||
posControl.flags.forcedRTHActivated = false;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1849,7 +1851,6 @@ void abortForcedRTH(void)
|
|||
rthState_e getStateOfForcedRTH(void)
|
||||
{
|
||||
if (navGetStateFlags(posControl.navState) & NAV_AUTO_RTH) {
|
||||
|
||||
if (posControl.navState == NAV_STATE_RTH_2D_FINISHED || posControl.navState == NAV_STATE_RTH_3D_FINISHED) {
|
||||
return RTH_HAS_LANDED;
|
||||
}
|
||||
|
|
|
@ -357,6 +357,9 @@ static const char * const lookupTableSerialRX[] = {
|
|||
"XB-B-RJ01"
|
||||
};
|
||||
|
||||
static const char * const lookupTableFailsafeProcedure[] = {
|
||||
"SET-THR", "RTH"
|
||||
};
|
||||
|
||||
typedef struct lookupTableEntry_s {
|
||||
const char * const *values;
|
||||
|
@ -378,6 +381,7 @@ typedef enum {
|
|||
TABLE_GIMBAL_MODE,
|
||||
TABLE_PID_CONTROLLER,
|
||||
TABLE_SERIAL_RX,
|
||||
TABLE_FAILSAFE_PROCEDURE,
|
||||
} lookupTableIndex_e;
|
||||
|
||||
static const lookupTableEntry_t lookupTables[] = {
|
||||
|
@ -394,7 +398,8 @@ static const lookupTableEntry_t lookupTables[] = {
|
|||
{ lookupTableCurrentSensor, sizeof(lookupTableCurrentSensor) / sizeof(char *) },
|
||||
{ lookupTableGimbalMode, sizeof(lookupTableGimbalMode) / sizeof(char *) },
|
||||
{ lookupTablePidController, sizeof(lookupTablePidController) / sizeof(char *) },
|
||||
{ lookupTableSerialRX, sizeof(lookupTableSerialRX) / sizeof(char *) }
|
||||
{ lookupTableSerialRX, sizeof(lookupTableSerialRX) / sizeof(char *) },
|
||||
{ lookupTableFailsafeProcedure, sizeof(lookupTableFailsafeProcedure) / sizeof(char *) },
|
||||
};
|
||||
|
||||
#define VALUE_TYPE_OFFSET 0
|
||||
|
@ -627,7 +632,7 @@ const clivalue_t valueTable[] = {
|
|||
{ "failsafe_throttle", VAR_UINT16 | MASTER_VALUE, &masterConfig.failsafeConfig.failsafe_throttle, .config.minmax = { PWM_RANGE_MIN, PWM_RANGE_MAX }, 0 },
|
||||
{ "failsafe_kill_switch", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, &masterConfig.failsafeConfig.failsafe_kill_switch, .config.lookup = { TABLE_OFF_ON }, 0 },
|
||||
{ "failsafe_throttle_low_delay",VAR_UINT16 | MASTER_VALUE, &masterConfig.failsafeConfig.failsafe_throttle_low_delay, .config.minmax = { 0, 300 }, 0 },
|
||||
{ "failsafe_procedure", VAR_UINT8 | MASTER_VALUE, &masterConfig.failsafeConfig.failsafe_procedure, .config.minmax = { 0, 1 }, 0 },
|
||||
{ "failsafe_procedure", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, &masterConfig.failsafeConfig.failsafe_procedure, .config.lookup = { TABLE_FAILSAFE_PROCEDURE }, 0 },
|
||||
|
||||
{ "rx_min_usec", VAR_UINT16 | MASTER_VALUE, &masterConfig.rxConfig.rx_min_usec, .config.minmax = { PWM_PULSE_MIN, PWM_PULSE_MAX }, 0 },
|
||||
{ "rx_max_usec", VAR_UINT16 | MASTER_VALUE, &masterConfig.rxConfig.rx_max_usec, .config.minmax = { PWM_PULSE_MIN, PWM_PULSE_MAX }, 0 },
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue