mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-25 01:05:21 +03:00
Add ability to check actions on next WP
This commit is contained in:
parent
fe2e151583
commit
812308a482
2 changed files with 37 additions and 7 deletions
|
@ -457,6 +457,16 @@ static int logicConditionGetWaypointOperandValue(int operand) {
|
||||||
return NAV_Status.activeWpAction;
|
return NAV_Status.activeWpAction;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case LOGIC_CONDITION_OPERAND_WAYPOINTS_NEXT_WAYPOINT_ACTION:
|
||||||
|
{
|
||||||
|
uint8_t wpIndex = posControl.activeWaypointIndex + 1;
|
||||||
|
if ((wpIndex > 0) && (wpIndex < NAV_MAX_WAYPOINTS)) {
|
||||||
|
return posControl.waypointList[wpIndex].action;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case LOGIC_CONDITION_OPERAND_WAYPOINTS_WAYPOINT_DISTANCE:
|
case LOGIC_CONDITION_OPERAND_WAYPOINTS_WAYPOINT_DISTANCE:
|
||||||
{
|
{
|
||||||
uint32_t distance = 0;
|
uint32_t distance = 0;
|
||||||
|
@ -509,6 +519,22 @@ static int logicConditionGetWaypointOperandValue(int operand) {
|
||||||
return (NAV_Status.activeWpIndex > 0) ? ((posControl.waypointList[NAV_Status.activeWpIndex-1].p3 & NAV_WP_USER4) == NAV_WP_USER4) : 0;
|
return (NAV_Status.activeWpIndex > 0) ? ((posControl.waypointList[NAV_Status.activeWpIndex-1].p3 & NAV_WP_USER4) == NAV_WP_USER4) : 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case LOGIC_CONDITION_OPERAND_WAYPOINTS_USER1_ACTION_NEXT_WP:
|
||||||
|
return (NAV_Status.activeWpIndex > 0) ? ((posControl.waypointList[NAV_Status.activeWpIndex].p3 & NAV_WP_USER1) == NAV_WP_USER1) : 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case LOGIC_CONDITION_OPERAND_WAYPOINTS_USER2_ACTION_NEXT_WP:
|
||||||
|
return (NAV_Status.activeWpIndex > 0) ? ((posControl.waypointList[NAV_Status.activeWpIndex].p3 & NAV_WP_USER2) == NAV_WP_USER2) : 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case LOGIC_CONDITION_OPERAND_WAYPOINTS_USER3_ACTION_NEXT_WP:
|
||||||
|
return (NAV_Status.activeWpIndex > 0) ? ((posControl.waypointList[NAV_Status.activeWpIndex].p3 & NAV_WP_USER3) == NAV_WP_USER3) : 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case LOGIC_CONDITION_OPERAND_WAYPOINTS_USER4_ACTION_NEXT_WP:
|
||||||
|
return (NAV_Status.activeWpIndex > 0) ? ((posControl.waypointList[NAV_Status.activeWpIndex].p3 & NAV_WP_USER4) == NAV_WP_USER4) : 0;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -153,13 +153,17 @@ typedef enum {
|
||||||
LOGIC_CONDITION_OPERAND_WAYPOINTS_IS_WP, // 0/1 // 0
|
LOGIC_CONDITION_OPERAND_WAYPOINTS_IS_WP, // 0/1 // 0
|
||||||
LOGIC_CONDITION_OPERAND_WAYPOINTS_WAYPOINT_INDEX, // 1
|
LOGIC_CONDITION_OPERAND_WAYPOINTS_WAYPOINT_INDEX, // 1
|
||||||
LOGIC_CONDITION_OPERAND_WAYPOINTS_WAYPOINT_ACTION, // 2
|
LOGIC_CONDITION_OPERAND_WAYPOINTS_WAYPOINT_ACTION, // 2
|
||||||
LOGIC_CONDITION_OPERAND_WAYPOINTS_WAYPOINT_DISTANCE, // 3
|
LOGIC_CONDITION_OPERAND_WAYPOINTS_NEXT_WAYPOINT_ACTION, // 3
|
||||||
LOGIC_CONDTIION_OPERAND_WAYPOINTS_DISTANCE_FROM_WAYPOINT, // 4
|
LOGIC_CONDITION_OPERAND_WAYPOINTS_WAYPOINT_DISTANCE, // 4
|
||||||
LOGIC_CONDITION_OPERAND_WAYPOINTS_USER1_ACTION, // 5
|
LOGIC_CONDTIION_OPERAND_WAYPOINTS_DISTANCE_FROM_WAYPOINT, // 5
|
||||||
LOGIC_CONDITION_OPERAND_WAYPOINTS_USER2_ACTION, // 6
|
LOGIC_CONDITION_OPERAND_WAYPOINTS_USER1_ACTION, // 6
|
||||||
LOGIC_CONDITION_OPERAND_WAYPOINTS_USER3_ACTION, // 7
|
LOGIC_CONDITION_OPERAND_WAYPOINTS_USER2_ACTION, // 7
|
||||||
LOGIC_CONDITION_OPERAND_WAYPOINTS_USER4_ACTION, // 8
|
LOGIC_CONDITION_OPERAND_WAYPOINTS_USER3_ACTION, // 8
|
||||||
|
LOGIC_CONDITION_OPERAND_WAYPOINTS_USER4_ACTION, // 9
|
||||||
|
LOGIC_CONDITION_OPERAND_WAYPOINTS_USER1_ACTION_NEXT_WP, // 10
|
||||||
|
LOGIC_CONDITION_OPERAND_WAYPOINTS_USER2_ACTION_NEXT_WP, // 11
|
||||||
|
LOGIC_CONDITION_OPERAND_WAYPOINTS_USER3_ACTION_NEXT_WP, // 12
|
||||||
|
LOGIC_CONDITION_OPERAND_WAYPOINTS_USER4_ACTION_NEXT_WP, // 13
|
||||||
} logicWaypointOperands_e;
|
} logicWaypointOperands_e;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue