1
0
Fork 0
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:
Pawel Spychalski (DzikuVx) 2020-11-08 15:51:52 +01:00
parent ce9e508120
commit 29d56bab36
3 changed files with 43 additions and 9 deletions

View file

@ -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

View file

@ -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;

View file

@ -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 {