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

Made requested changes

Made changes suggested by Pawel.
This commit is contained in:
Darren Lines 2021-10-20 23:01:41 +01:00
parent 773ea2710b
commit 743300c19e
2 changed files with 9 additions and 9 deletions

View file

@ -273,11 +273,7 @@ static void calculateVirtualPositionTarget_FW(float trackingPeriod)
// Limit minimum forward velocity to 1 m/s // Limit minimum forward velocity to 1 m/s
float trackingDistance = trackingPeriod * MAX(posControl.actualState.velXY, 100.0f); float trackingDistance = trackingPeriod * MAX(posControl.actualState.velXY, 100.0f);
uint32_t navLoiterRadius = navConfig()->fw.loiter_radius; uint32_t navLoiterRadius = getLoiterRadius(navConfig()->fw.loiter_radius);
#ifdef USE_PROGRAMMING_FRAMEWORK
navLoiterRadius = getLoiterRadius(navConfig()->fw.loiter_radius);
#endif
// If angular visibility of a waypoint is less than 30deg, don't calculate circular loiter, go straight to the target // If angular visibility of a waypoint is less than 30deg, don't calculate circular loiter, go straight to the target
#define TAN_15DEG 0.26795f #define TAN_15DEG 0.26795f

View file

@ -82,10 +82,10 @@ void pgResetFn_logicConditions(logicCondition_t *instance)
logicConditionState_t logicConditionStates[MAX_LOGIC_CONDITIONS]; logicConditionState_t logicConditionStates[MAX_LOGIC_CONDITIONS];
static int logicConditionCompute( static int logicConditionCompute(
int currentVaue, int32_t currentVaue,
logicOperation_e operation, logicOperation_e operation,
int operandA, int32_t operandA,
int operandB int32_t operandB
) { ) {
int temporaryValue; int temporaryValue;
vtxDeviceCapability_t vtxDeviceCapability; vtxDeviceCapability_t vtxDeviceCapability;
@ -327,7 +327,7 @@ static int logicConditionCompute(
case LOGIC_CONDITION_MODULUS: case LOGIC_CONDITION_MODULUS:
if (operandB != 0) { if (operandB != 0) {
return constrain(operandA % operandB, INT16_MIN, INT16_MAX); return constrain(operandA % operandB, INT32_MIN, INT32_MAX);
} else { } else {
return operandA; return operandA;
} }
@ -730,10 +730,14 @@ int16_t getRcChannelOverride(uint8_t channel, int16_t originalValue) {
} }
uint32_t getLoiterRadius(uint32_t loiterRadius) { uint32_t getLoiterRadius(uint32_t loiterRadius) {
#ifdef USE_PROGRAMMING_FRAMEWORK
if (LOGIC_CONDITION_GLOBAL_FLAG(LOGIC_CONDITION_GLOBAL_FLAG_OVERRIDE_LOITER_RADIUS) && if (LOGIC_CONDITION_GLOBAL_FLAG(LOGIC_CONDITION_GLOBAL_FLAG_OVERRIDE_LOITER_RADIUS) &&
!(FLIGHT_MODE(FAILSAFE_MODE) || FLIGHT_MODE(NAV_RTH_MODE) || FLIGHT_MODE(NAV_WP_MODE) || navigationIsExecutingAnEmergencyLanding())) { !(FLIGHT_MODE(FAILSAFE_MODE) || FLIGHT_MODE(NAV_RTH_MODE) || FLIGHT_MODE(NAV_WP_MODE) || navigationIsExecutingAnEmergencyLanding())) {
return constrain(logicConditionValuesByType[LOGIC_CONDITION_LOITER_OVERRIDE], loiterRadius, 100000); return constrain(logicConditionValuesByType[LOGIC_CONDITION_LOITER_OVERRIDE], loiterRadius, 100000);
} else { } else {
return loiterRadius; return loiterRadius;
} }
#else
return loiterRadius;
#endif
} }