mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-16 04:45:22 +03:00
LC Operands update
This commit is contained in:
parent
ce9e508120
commit
29d56bab36
3 changed files with 43 additions and 9 deletions
|
@ -117,6 +117,8 @@ IPF can be edited using INAV Configurator user interface, of via CLI
|
|||
| 29 | ACTIVE_WAYPOINT_INDEX | Indexed from `1`. To verify WP is in progress, use `IS_WP` |
|
||||
| 30 | ACTIVE_WAYPOINT_ACTION | See ACTIVE_WAYPOINT_ACTION paragraph |
|
||||
| 31 | 3D HOME_DISTANCE | in `meters`, calculated from HOME_DISTANCE and ALTITUDE using Pythagorean theorem |
|
||||
| 32 | CROSSFIRE LQ | Crossfire Link quality as returned by the CRSF protocol |
|
||||
| 33 | CROSSFIRE SNR | Crossfire SNR as returned by the CRSF protocol |
|
||||
|
||||
##### ACTIVE_WAYPOINT_ACTION
|
||||
|
||||
|
@ -144,6 +146,8 @@ IPF can be edited using INAV Configurator user interface, of via CLI
|
|||
| 6 | ANGLE | |
|
||||
| 7 | HORIZON | |
|
||||
| 8 | AIR | |
|
||||
| 9 | USER1 | |
|
||||
| 10 | USER2 | |
|
||||
|
||||
|
||||
### Flags
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include "fc/fc_core.h"
|
||||
#include "fc/rc_controls.h"
|
||||
#include "fc/runtime_config.h"
|
||||
#include "fc/rc_modes.h"
|
||||
#include "navigation/navigation.h"
|
||||
#include "sensors/battery.h"
|
||||
#include "sensors/pitotmeter.h"
|
||||
|
@ -482,6 +483,22 @@ static int logicConditionGetFlightOperandValue(int operand) {
|
|||
return constrain(sqrtf(sq(GPS_distanceToHome) + sq(getEstimatedActualPosition(Z)/100)), 0, INT16_MAX);
|
||||
break;
|
||||
|
||||
case LOGIC_CONDITION_OPERAND_FLIGHT_CRSF_LQ:
|
||||
#ifdef USE_SERIALRX_CRSF
|
||||
return rxLinkStatistics.uplinkLQ;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case LOGIC_CONDITION_OPERAND_FLIGHT_CRSF_SNR:
|
||||
#ifdef USE_SERIALRX_CRSF
|
||||
return rxLinkStatistics.uplinkSNR;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
break;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
break;
|
||||
|
@ -528,6 +545,14 @@ static int logicConditionGetFlightModeOperandValue(int operand) {
|
|||
return (bool) FLIGHT_MODE(AIRMODE_ACTIVE);
|
||||
break;
|
||||
|
||||
case LOGIC_CONDITION_OPERAND_FLIGHT_MODE_USER1:
|
||||
return IS_RC_MODE_ACTIVE(BOXUSER1);
|
||||
break;
|
||||
|
||||
case LOGIC_CONDITION_OPERAND_FLIGHT_MODE_USER2:
|
||||
return IS_RC_MODE_ACTIVE(BOXUSER2);
|
||||
break;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
break;
|
||||
|
|
|
@ -113,18 +113,23 @@ typedef enum {
|
|||
LOGIC_CONDITION_OPERAND_FLIGHT_WAYPOINT_INDEX, // 29
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_WAYPOINT_ACTION, // 30
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_3D_HOME_DISTANCE, // 31
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_CRSF_LQ, // 32
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_CRSF_SNR, // 33
|
||||
|
||||
} logicFlightOperands_e;
|
||||
|
||||
typedef enum {
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_FAILSAFE,
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_MANUAL,
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_RTH,
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_POSHOLD,
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_CRUISE,
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_ALTHOLD,
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_ANGLE,
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_HORIZON,
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_AIR,
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_FAILSAFE, // 0
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_MANUAL, // 1
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_RTH, // 2
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_POSHOLD, // 3
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_CRUISE, // 4
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_ALTHOLD, // 5
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_ANGLE, // 6
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_HORIZON, // 7
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_AIR, // 8
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_USER1, // 9
|
||||
LOGIC_CONDITION_OPERAND_FLIGHT_MODE_USER2, // 10
|
||||
} logicFlightModeOperands_e;
|
||||
|
||||
typedef enum {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue