Beispiel #1
0
        private static JogRates CreateDiscreteJogRates(IRate[] axisRates)
        {
            JogRates jogRates = new JogRates();

            foreach (IRate rate in axisRates)
            {
                // This is a discrete rate value.

                JogRate jogRate = BuildJogRate(rate.Minimum);

                jogRates.Add(jogRate);
            }

            if (jogRates.Count == 0)
            {
                jogRates = null;
            }

            return(jogRates);
        }
Beispiel #2
0
        private static JogRates CreateRangedJogRates(IRate[] axisRates)
        {
            JogRates jogRates = null;

            if (axisRates == null || axisRates.Length == 0)
            {
                return(jogRates);
            }

            if (axisRates.Length == 1)
            {
                jogRates = DefaultJogRates();

                if (jogRates.First().Rate > axisRates[0].Minimum && jogRates.Last().Rate < axisRates[0].Maximum)
                {
                    // Here the default rates are valid, so use them.

                    return(jogRates);
                }
            }

            // We can't use the default jog rates, so build a valid list.
            // The provided list of valid axis rates consists of multiple ranges so just take the average of each range.

            jogRates = new JogRates();

            foreach (IRate axisRate in axisRates)
            {
                double rateValue = (axisRate.Minimum + axisRate.Maximum) / 2.0;

                JogRate jogRate = BuildJogRate(rateValue);

                jogRates.Add(jogRate);
            }

            return(jogRates);
        }