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); }
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); }