protected float CalculateVelocityManeuver(float aVelocity) { float velocity = Arithmetics.KeepInRange(aVelocity, Min, Max); float diff = Diff(velocity) / 2; return(Arithmetics.KeepInRange(diff * Agression, Input.Limits.Pitch.Min, Input.Limits.Pitch.Max)); }
public override void Contribute(Output aApparatusOutput, ref Input aApparatusInput) { float heading = CorrectRotation(aApparatusOutput.Navigation.Yaw); aApparatusInput.Yaw = Arithmetics.KeepInRange(CorrectRotation((Value) - (heading)) * Agression, Input.Limits.Yaw.Min, Input.Limits.Yaw.Max); if (CanBeObtained) { if (Math.Abs(aApparatusInput.Yaw) < 0.05) { _obtainCandidates++; } else { _obtainCandidates = 0; } if (_obtainCandidates > 3) { Obtained = true; } } }
public override void Contribute(Output aApparatusOutput, ref Input aApparatusInput) { aApparatusInput.Gaz = Arithmetics.KeepInRange(Value, Input.Limits.Gaz.Min, Input.Limits.Gaz.Max); }
public override void Contribute(Output aApparatusOutput, ref Input aApparatusInput) { float altitude = Arithmetics.KeepInRange(aApparatusOutput.Navigation.Altitude, Min, Max); aApparatusInput.Gaz = Arithmetics.KeepInRange(Diff(altitude) * Agression, Input.Limits.Gaz.Min, Input.Limits.Gaz.Max); }