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