diff --git a/src/main/common/logic_condition.c b/src/main/common/logic_condition.c index a4bf5483c0..7ba9dd2f1b 100644 --- a/src/main/common/logic_condition.c +++ b/src/main/common/logic_condition.c @@ -40,6 +40,7 @@ #include "sensors/battery.h" #include "sensors/pitotmeter.h" #include "flight/imu.h" +#include "flight/pid.h" #include "navigation/navigation.h" #include "navigation/navigation_private.h" @@ -330,7 +331,19 @@ static int logicConditionGetFlightOperandValue(int operand) { case LOGIC_CONDITION_OPERAND_FLIGHT_IS_FAILSAFE: // 0/1 return (failsafePhase() == FAILSAFE_RX_LOSS_MONITORING) ? 1 : 0; - break; + break; + + case LOGIC_CONDITION_OPERAND_FLIGHT_STABILIZED_YAW: // + return axisPID[YAW]; + break; + + case LOGIC_CONDITION_OPERAND_FLIGHT_STABILIZED_ROLL: // + return axisPID[ROLL]; + break; + + case LOGIC_CONDITION_OPERAND_FLIGHT_STABILIZED_PITCH: // + return axisPID[PITCH]; + break; default: return 0; diff --git a/src/main/common/logic_condition.h b/src/main/common/logic_condition.h index a158875437..f48383870a 100644 --- a/src/main/common/logic_condition.h +++ b/src/main/common/logic_condition.h @@ -90,6 +90,9 @@ typedef enum { LOGIC_CONDITION_OPERAND_FLIGHT_IS_WP, // 0/1 // 23 LOGIC_CONDITION_OPERAND_FLIGHT_IS_LANDING, // 0/1 // 24 LOGIC_CONDITION_OPERAND_FLIGHT_IS_FAILSAFE, // 0/1 // 25 + LOGIC_CONDITION_OPERAND_FLIGHT_STABILIZED_ROLL, // 26 + LOGIC_CONDITION_OPERAND_FLIGHT_STABILIZED_PITCH, // 27 + LOGIC_CONDITION_OPERAND_FLIGHT_STABILIZED_YAW, // 28 } logicFlightOperands_e; typedef enum { @@ -135,4 +138,4 @@ int logicConditionGetOperandValue(logicOperandType_e type, int operand); int logicConditionGetValue(int8_t conditionId); void logicConditionUpdateTask(timeUs_t currentTimeUs); -void logicConditionReset(void); \ No newline at end of file +void logicConditionReset(void);