mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-15 04:15:38 +03:00
Initial code
This will break LCs backwards compatibility. But a small conversion tool will be simple to make.
This commit is contained in:
parent
bce0cec406
commit
775a080768
2 changed files with 47 additions and 30 deletions
|
@ -442,6 +442,27 @@ void logicConditionProcess(uint8_t i) {
|
|||
}
|
||||
}
|
||||
|
||||
static int logicConditionGetWaypointOperandValue(int operand) {
|
||||
|
||||
switch (operand) {
|
||||
case LOGIC_CONDITION_OPERAND_WAYPOINTS_IS_WP: // 0/1
|
||||
return (navGetCurrentStateFlags() & NAV_AUTO_WP) ? 1 : 0;
|
||||
break;
|
||||
|
||||
case LOGIC_CONDITION_OPERAND_WAYPOINTS_WAYPOINT_INDEX:
|
||||
return NAV_Status.activeWpNumber;
|
||||
break;
|
||||
|
||||
case LOGIC_CONDITION_OPERAND_WAYPOINTS_WAYPOINT_ACTION:
|
||||
return NAV_Status.activeWpAction;
|
||||
break;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static int logicConditionGetFlightOperandValue(int operand) {
|
||||
|
||||
switch (operand) {
|
||||
|
@ -555,10 +576,6 @@ static int logicConditionGetFlightOperandValue(int operand) {
|
|||
return (navGetCurrentStateFlags() & NAV_AUTO_RTH) ? 1 : 0;
|
||||
break;
|
||||
|
||||
case LOGIC_CONDITION_OPERAND_FLIGHT_IS_WP: // 0/1
|
||||
return (navGetCurrentStateFlags() & NAV_AUTO_WP) ? 1 : 0;
|
||||
break;
|
||||
|
||||
case LOGIC_CONDITION_OPERAND_FLIGHT_IS_LANDING: // 0/1
|
||||
return (navGetCurrentStateFlags() & NAV_CTL_LAND) ? 1 : 0;
|
||||
break;
|
||||
|
@ -579,14 +596,6 @@ static int logicConditionGetFlightOperandValue(int operand) {
|
|||
return axisPID[PITCH];
|
||||
break;
|
||||
|
||||
case LOGIC_CONDITION_OPERAND_FLIGHT_WAYPOINT_INDEX:
|
||||
return NAV_Status.activeWpNumber;
|
||||
break;
|
||||
|
||||
case LOGIC_CONDITION_OPERAND_FLIGHT_WAYPOINT_ACTION:
|
||||
return NAV_Status.activeWpAction;
|
||||
break;
|
||||
|
||||
case LOGIC_CONDITION_OPERAND_FLIGHT_3D_HOME_DISTANCE: //in m
|
||||
return constrain(calc_length_pythagorean_2D(GPS_distanceToHome, getEstimatedActualPosition(Z) / 100.0f), 0, INT16_MAX);
|
||||
break;
|
||||
|
@ -739,6 +748,10 @@ int logicConditionGetOperandValue(logicOperandType_e type, int operand) {
|
|||
retVal = programmingPidGetOutput(operand);
|
||||
}
|
||||
break;
|
||||
|
||||
case LOGIC_CONDITION_OPERAND_TYPE_WAYPOINTS:
|
||||
retVal = logicConditionGetWaypointOperandValue(operand);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue