示例#1
0
        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));
        }
示例#2
0
        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;
                }
            }
        }
示例#3
0
 public override void Contribute(Output aApparatusOutput, ref Input aApparatusInput)
 {
     aApparatusInput.Gaz = Arithmetics.KeepInRange(Value, Input.Limits.Gaz.Min, Input.Limits.Gaz.Max);
 }
示例#4
0
        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);
        }