예제 #1
0
        private void CMD_LIST_FORM(string n)
        {
            int         error    = 0;
            MainWindow  main     = this.Owner as MainWindow;
            DDS_code    dds_code = new DDS_code();
            STATUS_b072 q        = null;

            if (n == "DUT")
            {
                q = main.b072;
            }
            if (n == "TESTER")
            {
                q = main.TESTER;
            }

            //--------Проверка списка команд на исполнение--------
            if (list.Count == 0)
            {
                MessageBox.Show("Список команд пустой!");
            }
            else
            {
                for (var i = 0; i < list.Count; i++)
                {
                    if (i > 0)
                    {
                        if (list[i].TIME_START < list[i - 1].TIME_END)
                        {
                            error++;
                        }
                    }
                }
            }

            if (error != 0)
            {
                MessageBox.Show("   Есть ошибки в списке команд!\n Ошибки времени начала команд.");
            }
            else
            {
                //тут производим отправку структур на исполнение!

                dds_code.FLAG_CALIBR_DAC = MASTER.b072.FLAG_CALIBR_DAC;

                for (var i = 0; i < list.Count; i++)
                {
                    dds_code.TIME(list[i].TIME_START);
                    dds_code.FREQ(list[i].FREQ);
                    dds_code.FREQ_STEP(list[i].FREQ_STEP);
                    dds_code.FREQ_RATE(list[i].FREQ_RATE);
                    dds_code.N_impulse(list[i].N_cikl);
                    dds_code.TYPE(list[i].TYPE, list[i].SYSREF);
                    dds_code.Interval_Ti(list[i].Ti);
                    dds_code.Interval_Tp(list[i].Tp);
                    dds_code.Tblank1(list[i].Tblank1);
                    dds_code.Tblank2(list[i].Tblank2);
                    //        dds_code.Amp0(list[i].Amplitude0,q, list[i].I0);
                    //        dds_code.Amp1(list[i].Amplitude1,q, list[i].I1);
                    //        dds_code.Amp2(list[i].Amplitude2,q, list[i].I2);
                    //        dds_code.Amp3(list[i].Amplitude3,q, list[i].I3);
                    dds_code.Amp0(list[i].Amplitude0, q);
                    dds_code.Amp1(list[i].Amplitude1, q);
                    dds_code.Amp2(list[i].Amplitude2, q);
                    dds_code.Amp3(list[i].Amplitude3, q);
                    dds_code.Phase0(list[i].PHASE0);
                    dds_code.Phase1(list[i].PHASE1);
                    dds_code.Phase2(list[i].PHASE2);
                    dds_code.Phase3(list[i].PHASE3);

                    //      Console.WriteLine("dds_code.zAmp0:" + dds_code.zAmp0);
                    //      Console.WriteLine("dds_code.zAmp1:" + dds_code.zAmp1);
                    //      Console.WriteLine("dds_code.zAmp2:" + dds_code.zAmp2);
                    //      Console.WriteLine("dds_code.zAmp3:" + dds_code.zAmp3);

                    /*
                     * Console.WriteLine("dds_code.zPhase0:" + dds_code.zPhase0);
                     * Console.WriteLine("dds_code.zPhase1:" + dds_code.zPhase1);
                     * Console.WriteLine("dds_code.zPhase2:" + dds_code.zPhase2);
                     * Console.WriteLine("dds_code.zPhase3:" + dds_code.zPhase3);
                     */
                    //   Console.WriteLine("FREQ:" + dds_code.zFREQ);
                    //   Console.WriteLine("TYPE:" + dds_code.zTYPE_impulse);
                    //   Console.WriteLine("Interval_Ti:" + dds_code.zInterval_Ti);
                    //   Console.WriteLine("Interval_Tp:" + dds_code.zInterval_Tp);

                    list_DDS_code.Add(dds_code);
                }

                if (n == "DUT")
                {
                    main.list = new List <DDS_code>(list_DDS_code);
                    main.CMD_REAL_TIME_SEND(main.list);
                    list_DDS_code.Clear();
                }
                else
                if (n == "TESTER")
                {
                    main.list_TESTER = new List <DDS_code>(list_DDS_code);
                    main.CMD_REAL_TIME_SEND_TESTER(main.list_TESTER);
                    list_DDS_code.Clear();
                }
            }
        }
예제 #2
0
        private void button_Click(object sender, RoutedEventArgs e)
        {
            int        error    = 0;
            MainWindow main     = this.Owner as MainWindow;
            DDS_code   dds_code = new DDS_code();

            //--------Проверка списка команд на исполнение--------
            if (list.Count == 0)
            {
                MessageBox.Show("Список команд пустой!");
            }
            else
            {
                for (var i = 0; i < list.Count; i++)
                {
                    if (i > 0)
                    {
                        if (list[i].TIME_START < list[i - 1].TIME_END)
                        {
                            error++;
                        }
                    }
                }
            }

            if (error != 0)
            {
                MessageBox.Show("   Есть ошибки в списке команд!\n Ошибки времени начала команд.");
            }
            else
            {
                //тут производим отправку структур на исполнение!

                for (var i = 0; i < list.Count; i++)
                {
                    dds_code.TIME(list[i].TIME_START);
                    dds_code.FREQ(list[i].FREQ);
                    dds_code.FREQ_STEP(list[i].FREQ_STEP);
                    dds_code.FREQ_RATE(list[i].FREQ_RATE);
                    dds_code.N_impulse(list[i].N_cikl);
                    dds_code.TYPE(list[i].TYPE);
                    dds_code.Interval_Ti(list[i].Ti);
                    dds_code.Interval_Tp(list[i].Tp);
                    dds_code.Tblank1(list[i].Tblank1);
                    dds_code.Tblank2(list[i].Tblank2);
                    dds_code.Amp0(list[i].Amplitude0);
                    dds_code.Amp1(list[i].Amplitude1);
                    dds_code.Amp2(list[i].Amplitude2);
                    dds_code.Amp3(list[i].Amplitude3);
                    dds_code.Phase0(list[i].PHASE0);
                    dds_code.Phase1(list[i].PHASE1);
                    dds_code.Phase2(list[i].PHASE2);
                    dds_code.Phase3(list[i].PHASE3);

                    Console.WriteLine("dds_code.zAmp0:" + dds_code.zAmp0);
                    Console.WriteLine("dds_code.zAmp1:" + dds_code.zAmp1);
                    Console.WriteLine("dds_code.zAmp2:" + dds_code.zAmp2);
                    Console.WriteLine("dds_code.zAmp3:" + dds_code.zAmp3);

                    Console.WriteLine("dds_code.zPhase0:" + dds_code.zPhase0);
                    Console.WriteLine("dds_code.zPhase1:" + dds_code.zPhase1);
                    Console.WriteLine("dds_code.zPhase2:" + dds_code.zPhase2);
                    Console.WriteLine("dds_code.zPhase3:" + dds_code.zPhase3);

                    list_DDS_code.Add(dds_code);
                }
                main.list = list_DDS_code;
            }
        }
예제 #3
0
        byte [] ARRAY_FILL(DDS_code l)  //заполняет траспортный массив данными из структуры
        {
            byte[] m = new byte[51];
            int    i = 0;

            Console.WriteLine("zTIME        :" + l.zTIME);
            Console.WriteLine("zFREQ        :" + l.zFREQ);
            Console.WriteLine("zFREQ_STEP   :" + l.zFREQ_STEP);
            Console.WriteLine("zFREQ_RATE   :" + l.zFREQ_RATE);
            Console.WriteLine("zN_impulse   :" + l.zN_impulse);
            Console.WriteLine("zTYPE_impulse:" + l.zTYPE_impulse);
            Console.WriteLine("zInterval_Ti :" + l.zInterval_Ti);
            Console.WriteLine("zInterval_Tp :" + l.zInterval_Tp);
            Console.WriteLine("zTblank1     :" + l.zTblank1);
            Console.WriteLine("zTblank2     :" + l.zTblank2);

            m[i++] = (byte)(l.zFREQ >> 40);
            m[i++] = (byte)(l.zFREQ >> 32);
            m[i++] = (byte)(l.zFREQ >> 24);
            m[i++] = (byte)(l.zFREQ >> 16);
            m[i++] = (byte)(l.zFREQ >> 8);
            m[i++] = (byte)(l.zFREQ >> 0);//5

            m[i++] = (byte)(l.zFREQ_STEP >> 40);
            m[i++] = (byte)(l.zFREQ_STEP >> 32);
            m[i++] = (byte)(l.zFREQ_STEP >> 24);
            m[i++] = (byte)(l.zFREQ_STEP >> 16);
            m[i++] = (byte)(l.zFREQ_STEP >> 8);
            m[i++] = (byte)(l.zFREQ_STEP >> 0);//11

            m[i++] = (byte)(l.zFREQ_RATE >> 24);
            m[i++] = (byte)(l.zFREQ_RATE >> 16);
            m[i++] = (byte)(l.zFREQ_RATE >> 8);
            m[i++] = (byte)(l.zFREQ_RATE >> 0);//15

            m[i++] = (byte)(l.zN_impulse >> 8);
            m[i++] = (byte)(l.zN_impulse >> 0);

            m[i++] = (byte)(l.zTYPE_impulse);//18

            m[i++] = (byte)(l.zInterval_Ti >> 24);
            m[i++] = (byte)(l.zInterval_Ti >> 16);
            m[i++] = (byte)(l.zInterval_Ti >> 8);
            m[i++] = (byte)(l.zInterval_Ti >> 0);//22

            m[i++] = (byte)(l.zInterval_Tp >> 24);
            m[i++] = (byte)(l.zInterval_Tp >> 16);
            m[i++] = (byte)(l.zInterval_Tp >> 8);
            m[i++] = (byte)(l.zInterval_Tp >> 0);//26

            m[i++] = (byte)(l.zTblank1 >> 24);
            m[i++] = (byte)(l.zTblank1 >> 16);
            m[i++] = (byte)(l.zTblank1 >> 8);
            m[i++] = (byte)(l.zTblank1 >> 0);//30

            m[i++] = (byte)(l.zTblank2 >> 24);
            m[i++] = (byte)(l.zTblank2 >> 16);
            m[i++] = (byte)(l.zTblank2 >> 8);
            m[i++] = (byte)(l.zTblank2 >> 0); //34

            m[i++] = (byte)(l.zAmp0 >> 8);    //35
            m[i++] = (byte)(l.zAmp0 >> 0);
            m[i++] = (byte)(l.zAmp1 >> 8);
            m[i++] = (byte)(l.zAmp1 >> 0);
            m[i++] = (byte)(l.zAmp2 >> 8);
            m[i++] = (byte)(l.zAmp2 >> 0);
            m[i++] = (byte)(l.zAmp3 >> 8);
            m[i++] = (byte)(l.zAmp3 >> 0);//42

            m[i++] = (byte)(l.zPhase0 >> 8);
            m[i++] = (byte)(l.zPhase0 >> 0);
            m[i++] = (byte)(l.zPhase1 >> 8);
            m[i++] = (byte)(l.zPhase1 >> 0);
            m[i++] = (byte)(l.zPhase2 >> 8);
            m[i++] = (byte)(l.zPhase2 >> 0);
            m[i++] = (byte)(l.zPhase3 >> 8);
            m[i++] = (byte)(l.zPhase3 >> 0);//50 (количество 50 + 1) Обязательно менять размер массива вверху!!

            return(m);
        }