diff --git a/src/lib/FlightTasks/tasks/Orbit/FlightTaskOrbit.cpp b/src/lib/FlightTasks/tasks/Orbit/FlightTaskOrbit.cpp index 0862bfcbd34e1dfc9195218f579ff31ae668b96d..428ab84b2fc18c23e8f10a2372ae68bb17d4b41a 100644 --- a/src/lib/FlightTasks/tasks/Orbit/FlightTaskOrbit.cpp +++ b/src/lib/FlightTasks/tasks/Orbit/FlightTaskOrbit.cpp @@ -117,19 +117,18 @@ bool FlightTaskOrbit::sendTelemetry() return true; } -bool FlightTaskOrbit::setRadius(const float r) +bool FlightTaskOrbit::setRadius(float r) { - if (math::isInRange(r, _radius_min, _radius_max)) { - // small radius is more important than high velocity for safety - if (!checkAcceleration(r, _v, _acceleration_max)) { - _v = math::sign(_v) * sqrtf(_acceleration_max * r); - } + // clip the radius to be within range + r = math::constrain(r, _radius_min, _radius_max); - _r = r; - return true; + // small radius is more important than high velocity for safety + if (!checkAcceleration(r, _v, _acceleration_max)) { + _v = math::sign(_v) * sqrtf(_acceleration_max * r); } - return false; + _r = r; + return true; } bool FlightTaskOrbit::setVelocity(const float v)