public void BuildAutomaticPoints() { ClearAll(); if (!IntervalSettings.isAuto) { Markers.Add(((IntervalSettings.PointsQuantity - 1) / 2) + 1); CenterFrequencys.Add(IntervalSettings.HandCenterFrequency); } else { if (IntervalSettings.FrequencyInnerStep <= 0) { MessageBox.Show("ШАГ СКАНИРОВАНИЯ ДОЛЖЕН БЫТЬ БОЛЬШЕ 0"); return; } if (IntervalSettings.FrequencyStart > IntervalSettings.FrequencyStop) { MessageBox.Show("КОНЕЦ ДИАПАЗОНА ДОЛЖЕН БЫТЬ БОЛЬШЕ НАЧАЛА ДИАПАЗОНА"); return; } long CurrentCenterFrequency; long innerStepQuantity = (IntervalSettings.FrequencyStop - IntervalSettings.FrequencyStart) / IntervalSettings.FrequencyInnerStep; if (innerStepQuantity <= IntervalSettings.PointsQuantity - 1) { IntervalSettings.Span = IntervalSettings.FrequencyStop - IntervalSettings.FrequencyStart; CurrentCenterFrequency = IntervalSettings.FrequencyStart + IntervalSettings.Span / 2; CenterFrequencys.Add(CurrentCenterFrequency); for (int counter = 0; counter <= innerStepQuantity; counter++) { Markers.Add(counter * ((IntervalSettings.PointsQuantity - 1) / (int)innerStepQuantity)); } } else { IntervalSettings.Span = (IntervalSettings.PointsQuantity - 1) * IntervalSettings.FrequencyInnerStep; CurrentCenterFrequency = IntervalSettings.FrequencyStart + IntervalSettings.Span / 2; CenterFrequencys.Add(CurrentCenterFrequency); while ((CurrentCenterFrequency + IntervalSettings.Span / 2) < IntervalSettings.FrequencyStop) { CurrentCenterFrequency += IntervalSettings.Span; CenterFrequencys.Add(CurrentCenterFrequency); } for (int counter = 0; counter <= innerStepQuantity; counter++) { Markers.Add(counter); } } } }
public void BuildAutomaticPoints() { //IntervalSettings.PointsQuantity = this.GetExperimentExplorer().Experiment.ExperimentSettings.HardwareSettings.PointsQuantity; ClearAll(); if (!IntervalSettings.isAuto) //диф.спектр { //Markers.Add(((IntervalSettings.PointsQuantity - 1) / 2) + 1); //точка соответствует середине частотного интервала Markers.Add((IntervalSettings.PointsQuantity - 1) / 2); //точка соответствует середине частотного интервала // Markers.Add(315); CenterFrequencys.Add(IntervalSettings.HandCenterFrequency); } else //сплошной спектр { if (IntervalSettings.FrequencyInnerStep <= 0) { MessageBox.Show("ШАГ СКАНИРОВАНИЯ ДОЛЖЕН БЫТЬ БОЛЬШЕ 0"); return; } if (IntervalSettings.FrequencyStart > IntervalSettings.FrequencyStop) { MessageBox.Show("КОНЕЦ ДИАПАЗОНА ДОЛЖЕН БЫТЬ БОЛЬШЕ НАЧАЛА ДИАПАЗОНА"); return; } long CurrentCenterFrequency; //частотный центр заданного диапазона //расчётное количество точек измерения, включая long innerStepQuantity = (IntervalSettings.FrequencyStop - IntervalSettings.FrequencyStart) / IntervalSettings.FrequencyInnerStep; if (innerStepQuantity == 0) { MessageBox.Show("Согласуйте значение ДИАПАЗОНА и ШАГа"); return; } if (innerStepQuantity <= IntervalSettings.PointsQuantity - 1) //расчётное число точек <= числа точек ИП { // if (!IntervalSettings.isManualSpan || IntervalSettings.Span == 0) // { IntervalSettings.Span = IntervalSettings.FrequencyStop - IntervalSettings.FrequencyStart; //центральная частота диапазона CurrentCenterFrequency = IntervalSettings.FrequencyStart + IntervalSettings.Span / 2; // } // else //иначе, значение уже установлено вручную // { //центральная частота диапазона // CurrentCenterFrequency = (IntervalSettings.FrequencyStop - IntervalSettings.FrequencyStart)/2 + IntervalSettings.Span / 2; //} CenterFrequencys.Add(CurrentCenterFrequency); //диапазон измерений ИП разбит на некое число точек(зависит от типа прибора) //при заданном дииапазоне и шаге измерения число точек получается своё //приведём пользовательские частоты к частотам в соответствующих точках ИП for (int counter = 0; counter <= innerStepQuantity; counter++) { Markers.Add(counter * ((IntervalSettings.PointsQuantity - 1) / (int)innerStepQuantity)); //точки измерений пользователя на шкале точек ИП } } else //расчётное число точек > числа точек ИП.Исходный диапазон разбивается на интревалы с количеством точек измерения = ИП.Рассчитываются центры интервалов и маркеры точек измерений { //if (!IntervalSettings.isManualSpan || IntervalSettings.Span == 0) //{ //диапазон, рассчитанный из заданного шага частоты и количества точек прибора IntervalSettings.Span = (IntervalSettings.PointsQuantity - 1) * IntervalSettings.FrequencyInnerStep; //центральная частота диапазона CurrentCenterFrequency = IntervalSettings.FrequencyStart + IntervalSettings.Span / 2; //} // else //центральная частота диапазона // CurrentCenterFrequency = (IntervalSettings.FrequencyStop - IntervalSettings.FrequencyStart) / 2 + IntervalSettings.Span / 2; CenterFrequencys.Add(CurrentCenterFrequency); //пока while ((CurrentCenterFrequency + IntervalSettings.Span / 2) < IntervalSettings.FrequencyStop) { CurrentCenterFrequency += IntervalSettings.Span; CenterFrequencys.Add(CurrentCenterFrequency); } for (int counter = 0; counter <= innerStepQuantity; counter++) { Markers.Add(counter); } } } }