private void button1_Copy1_Click(object sender, RoutedEventArgs e) { RABCIKL c0 = new RABCIKL(); c0.Amplitude0 = Convert.ToInt16(textBox_AMP0.Text); c0.Amplitude1 = Convert.ToInt16(textBox_AMP1.Text); c0.Amplitude2 = Convert.ToInt16(textBox_AMP2.Text); c0.Amplitude3 = Convert.ToInt16(textBox_AMP3.Text); c0.Calibrovka = Convert.ToInt16(checkBox_Calibrovka.IsChecked); c0.Coherent = Convert.ToInt16(checkBox_Coherent.IsChecked); c0.DELAY0 = Convert.ToInt16(textBox_DELAY0.Text); c0.DELAY1 = Convert.ToInt16(textBox_DELAY1.Text); c0.DELAY2 = Convert.ToInt16(textBox_DELAY2.Text); c0.DELAY3 = Convert.ToInt16(textBox_DELAY3.Text); c0.deviation = Convert.ToInt64(textBox_dev_FREQ.Text); c0.FREQ = Convert.ToUInt64(textBox_FREQ.Text); c0.FREQ_STEP = Convert.ToInt64(textBox_FREQ_STEP.Text); c0.FREQ_RATE = Convert.ToUInt32(textBox_FREQ_RATE.Text); c0.N_cikl = Convert.ToUInt16(textBox_N_intervals.Text);//число интервалов в цикле c0.NUMBER_RECORD = Convert.ToInt32(textBox_Number_record.Text); c0.PHASE0 = Convert.ToInt16(textBox_PHASE0.Text); c0.PHASE1 = Convert.ToInt16(textBox_PHASE1.Text); c0.PHASE2 = Convert.ToInt16(textBox_PHASE2.Text); c0.PHASE3 = Convert.ToInt16(textBox_PHASE3.Text); c0.Tblank1 = Convert.ToUInt32(textBox_Tdop_iz.Text); c0.Tblank2 = Convert.ToUInt32(textBox_Tdop_pr.Text); c0.Ti = Convert.ToUInt32(textBox_Ti.Text); c0.Tp = Convert.ToUInt32(textBox_Tp.Text); // c0.TIME_START=Convert.ToInt64(textBox_TIME_START.Text); if (list.Count > 0) { if (c0.TIME_START < list[(list.Count - 1)].TIME_END) { c0.TIME_START = list[(list.Count - 1)].TIME_END; } } else { c0.TIME_START = Convert.ToUInt64(textBox_TIME_START.Text); } c0.TYPE = 0; textBox_Dlitelnost_cikl.Text = (FUN_INTERVAL_CALC(c0)).ToString();//рассчитываем длительность текущего цикла c0.TIME_END = Convert.ToUInt64(textBox_Dlitelnost_cikl.Text) + c0.TIME_START; c0.NUMBER_RECORD = list.Count; list.Add(c0); textBox_N_cikl.Text = (list.Count).ToString(); //считаем общее количество циклов textBox_Number_record.Text = (c0.NUMBER_RECORD).ToString(); //номер текущего цикла }
uint FUN_INTERVAL_CALC(RABCIKL a) { uint INTERVAL; INTERVAL = (a.Tblank1 + a.Ti + a.Tblank2 + a.Tp) * a.N_cikl;//расчитали длительность цикла return(INTERVAL); }
void FUN_LIST_UPDATE(int a) { RABCIKL c0 = new RABCIKL(); //--------Считаем параметры девиации если надо---------- int FLAG_COGERENT = 0; double step = 0; double rate = 1.0 / 96.0; double Timp = Convert.ToDouble(textBox_Ti.Text); double FREQ_DEV = Convert.ToDouble(textBox_dev_FREQ.Text); double N_step = Math.Round(Timp / rate);//расчитываем число шагов для DDS // Console.WriteLine("Timp:"+Timp); // Console.WriteLine("FREQ_DEV:"+FREQ_DEV); // Console.WriteLine("N_step:"+N_step); step = FREQ_DEV / N_step;//расчитываем длинну шага в Гц rate = Math.Round(rate * 1000.0); textBox_FREQ_STEP.Text = step.ToString(); textBox_FREQ_RATE.Text = rate.ToString(); //------------------------------------------------------ c0.Amplitude0 = Convert.ToInt16(textBox_AMP0.Text); c0.Amplitude1 = Convert.ToInt16(textBox_AMP1.Text); c0.Amplitude2 = Convert.ToInt16(textBox_AMP2.Text); c0.Amplitude3 = Convert.ToInt16(textBox_AMP3.Text); if (checkBox_Calibrovka.IsChecked == true) { c0.Calibrovka = 0; } else { c0.Calibrovka = 1; } if (checkBox_Coherent.IsChecked == true) { c0.Coherent = 1; } else { c0.Coherent = 0; } c0.DELAY0 = Convert.ToInt16(textBox_DELAY0.Text); c0.DELAY1 = Convert.ToInt16(textBox_DELAY1.Text); c0.DELAY2 = Convert.ToInt16(textBox_DELAY2.Text); c0.DELAY3 = Convert.ToInt16(textBox_DELAY3.Text); c0.deviation = Convert.ToInt64(textBox_dev_FREQ.Text); c0.FREQ = Convert.ToDouble(textBox_FREQ.Text); c0.FREQ_STEP = Convert.ToDouble(textBox_FREQ_STEP.Text); c0.FREQ_RATE = Convert.ToUInt32(textBox_FREQ_RATE.Text); c0.N_cikl = Convert.ToUInt16(textBox_N_intervals.Text);//число интервалов в цикле c0.NUMBER_RECORD = Convert.ToInt32(textBox_Number_record.Text); c0.PHASE0 = Convert.ToInt16(textBox_PHASE0.Text); c0.PHASE1 = Convert.ToInt16(textBox_PHASE1.Text); c0.PHASE2 = Convert.ToInt16(textBox_PHASE2.Text); c0.PHASE3 = Convert.ToInt16(textBox_PHASE3.Text); c0.Tblank1 = Convert.ToUInt32(textBox_Tdop_iz.Text); c0.Tblank2 = Convert.ToUInt32(textBox_Tdop_pr.Text); c0.Ti = Convert.ToUInt32(textBox_Ti.Text); c0.Tp = Convert.ToUInt32(textBox_Tp.Text); c0.TIME_START = Convert.ToUInt64(textBox_TIME_START.Text); Console.WriteLine("c0.Calibrovka:" + c0.Calibrovka); c0.TYPE = (ushort)(((c0.Calibrovka & 1) << 1) + (c0.Coherent & 1)); Console.WriteLine("c0.TYPE:" + c0.TYPE); c0.NUMBER_RECORD = list.Count; textBox_Dlitelnost_cikl.Text = FUN_INTERVAL_CALC(c0).ToString();//рассчитываем длительность текущего цикла if (list.Count > 0) { if (textBox_Number_record.Text != "0") { if (c0.TIME_START < list[(a - 1)].TIME_END) { c0.TIME_START = list[(a - 1)].TIME_END; } Console.WriteLine("a : " + a); Console.WriteLine("c0.TIME_START : " + c0.TIME_START); Console.WriteLine("list[(a-1)].TIME_END :" + list[(a - 1)].TIME_END); } } else { c0.TIME_START = Convert.ToUInt64(textBox_TIME_START.Text); } c0.TIME_END = c0.TIME_START + Convert.ToUInt64(textBox_Dlitelnost_cikl.Text); if (list.Count != 0)//проверяем что в списке есть элементы { list.RemoveAt(a); list.Insert(a, c0); } textBox_TIME_END.Text = c0.TIME_END.ToString(); textBox_TIME_START.Text = c0.TIME_START.ToString(); }