1
0
Fork 0
mirror of https://github.com/iNavFlight/inav.git synced 2025-07-24 08:45:31 +03:00

Check the bit correctly

This commit is contained in:
Darren Lines 2022-12-11 21:34:42 +00:00
parent 8f4fc0754b
commit 374a8f8ce8

View file

@ -460,7 +460,7 @@ static int logicConditionGetWaypointOperandValue(int operand) {
case LOGIC_CONDITION_OPERAND_WAYPOINTS_WAYPOINT_DISTANCE: case LOGIC_CONDITION_OPERAND_WAYPOINTS_WAYPOINT_DISTANCE:
{ {
uint32_t distance = 0; uint32_t distance = 0;
if (navGetCurrentStateFlags() & NAV_AUTO_WP) { if ((navGetCurrentStateFlags() & NAV_AUTO_WP) && NAV_Status.activeWpNumber > 0) {
fpVector3_t poi; fpVector3_t poi;
gpsLocation_t wp; gpsLocation_t wp;
wp.lat = posControl.waypointList[NAV_Status.activeWpNumber-1].lat; wp.lat = posControl.waypointList[NAV_Status.activeWpNumber-1].lat;
@ -494,19 +494,19 @@ static int logicConditionGetWaypointOperandValue(int operand) {
break; break;
case LOGIC_CONDITION_OPERAND_WAYPOINTS_USER1_ACTION: case LOGIC_CONDITION_OPERAND_WAYPOINTS_USER1_ACTION:
return posControl.waypointList[NAV_Status.activeWpNumber+1].p3 == NAV_WP_USER1; return (NAV_Status.activeWpNumber > 0) ? posControl.waypointList[NAV_Status.activeWpNumber-1].p3 & NAV_WP_USER1 : 0;
break; break;
case LOGIC_CONDITION_OPERAND_WAYPOINTS_USER2_ACTION: case LOGIC_CONDITION_OPERAND_WAYPOINTS_USER2_ACTION:
return posControl.waypointList[NAV_Status.activeWpNumber+1].p3 == NAV_WP_USER2; return (NAV_Status.activeWpNumber > 0) ? posControl.waypointList[NAV_Status.activeWpNumber-1].p3 & NAV_WP_USER2 : 0;
break; break;
case LOGIC_CONDITION_OPERAND_WAYPOINTS_USER3_ACTION: case LOGIC_CONDITION_OPERAND_WAYPOINTS_USER3_ACTION:
return posControl.waypointList[NAV_Status.activeWpNumber+1].p3 == NAV_WP_USER3; return (NAV_Status.activeWpNumber > 0) ? posControl.waypointList[NAV_Status.activeWpNumber-1].p3 & NAV_WP_USER3 : 0;
break; break;
case LOGIC_CONDITION_OPERAND_WAYPOINTS_USER4_ACTION: case LOGIC_CONDITION_OPERAND_WAYPOINTS_USER4_ACTION:
return posControl.waypointList[NAV_Status.activeWpNumber+1].p3 == NAV_WP_USER4; return (NAV_Status.activeWpNumber > 0) ? posControl.waypointList[NAV_Status.activeWpNumber-1].p3 & NAV_WP_USER4 : 0;
break; break;
default: default: