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:
parent
773ea2710b
commit
743300c19e
2 changed files with 9 additions and 9 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue