void DISPLAY_FFT_3()
        {
            // размер БПФ
            double[] TSAMPL_tmp  = new double[FFT_SIZE];
            double[] MAG_LOG_tmp = new double[FFT_SIZE];

            //  data3 = main.sDATA1.data1;
            data3 = srv1.data1;

            if (data3 != null)
            {
                Task a = Task.Factory.StartNew(() => { Array.Copy(data3.TSAMPL, TSAMPL_tmp, FFT_SIZE); });
                Task b = Task.Factory.StartNew(() => { Array.Copy(data3.MAG_LOG, MAG_LOG_tmp, FFT_SIZE); });
                Task.WaitAll(new Task[] { a, b });

                //Console.WriteLine("AMAX0:"+ data0.AMAX);
                if (fig_FFT3 != null)
                {
                    fig_FFT3.PlotData(TSAMPL_tmp, MAG_LOG_tmp, data3.AMAX, data3.BMAX, data3.CMAX, data3.M1X, data3.M1Y, data3.M2X, data3.M2Y, data3.M3X, data3.M3Y);
                    var xy_left = this.Left;
                    var xy_top  = this.Top;
                    //  fig_FFT3.Left = (int)xy_left;//положение левого края панели относительно рабочего стола
                    //  fig_FFT3.Top = (int)xy_top; //положение верхнего края панели относительно рабочего стола
                    try { fig_FFT3.Show(); } catch (Exception ex) { Console.WriteLine("ex:" + ex); };
                }
            }
        }
        void DISPLAY_FFT_0()
        {
            // размер БПФ
            double[] TSAMPL_tmp  = new double[FFT_SIZE];
            double[] MAG_LOG_tmp = new double[FFT_SIZE];

            //       data0 = main.sDATA0.data0;
            if (srv0 != null)
            {
                data0 = srv0.data0;
            }

            if (data0 != null)
            {
                Task a = Task.Factory.StartNew(() => { Array.Copy(data0.TSAMPL, TSAMPL_tmp, FFT_SIZE); });
                Task b = Task.Factory.StartNew(() => { Array.Copy(data0.MAG_LOG, MAG_LOG_tmp, FFT_SIZE); });
                Task.WaitAll(new Task[] { a, b });

                if (fig_FFT0 != null)
                {
                    fig_FFT0.PlotData(TSAMPL_tmp, MAG_LOG_tmp, data0.AMAX, data0.BMAX, data0.CMAX, data0.M1X, data0.M1Y, data0.M2X, data0.M2Y, data0.M3X, data0.M3Y);
                    var xy_left = (int)this.Left;
                    var xy_top  = (int)this.Top;

                    // fig_FFT0.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
                    //fig_FFT0.Location= new System.Drawing.Point(xy_left, xy_top);
                    //    fig_FFT0.Left = (int)xy_left;//положение левого края панели относительно рабочего стола
                    //    fig_FFT0.Top = (int)xy_top; //положение верхнего края панели относительно рабочего стола
                    try { fig_FFT0.Show(); } catch (Exception ex) { Console.WriteLine("ex:" + ex); };
                }
            }
        }
예제 #3
0
        private void Timer1_Tick(object sender, EventArgs e)//быстрое перывание - отвечает за обновление данных для вывода на экран
        {
            if (panel_Recv != null)
            {
                FFT_SIZE           = panel_Recv.FFT_SIZE;           //тут мы получаем размер БПФ
                selectedWindowName = panel_Recv.selectedWindowName; //тут мы получаем тип окна БПФ
                FILTR_SMOOTH       = panel_Recv.FLAG_SMOOTH_FILTR;  //тут мы получаем тип сглаживающего фильтра перед выводом на экран
                panel_Recv.data0   = data0;
                panel_Recv.data1   = data1;
                panel_Recv.data2   = data2;
                panel_Recv.data3   = data3;
            }

            if (sDATA0 != null)
            {
                sDATA0.FFT_SIZE           = FFT_SIZE;//передаём размер БПФ для обработки
                sDATA0.FLAG_filtr         = FILTR_SMOOTH;
                sDATA0.selectedWindowName = selectedWindowName;
                FLAG_DISPAY0 = sDATA0.FLAG_DISPAY0;
                FLAG_DISPAY1 = sDATA0.FLAG_DISPAY1;
                data0        = sDATA0.data0;
                data1        = sDATA0.data1;
            }

            if (sDATA1 != null)
            {
                sDATA1.FFT_SIZE           = FFT_SIZE;//передаём размер БПФ для обработки
                sDATA1.FLAG_filtr         = FILTR_SMOOTH;
                sDATA1.selectedWindowName = selectedWindowName;
                FLAG_DISPAY2 = sDATA1.FLAG_DISPAY0;
                FLAG_DISPAY3 = sDATA1.FLAG_DISPAY1;
                data2        = sDATA1.data0;
                data3        = sDATA1.data1;
            }
        }
예제 #4
0
        public int SCH_TST_PACKET = 0; //счётчик числа принятых пакетов

        public UDP_DATA_SERVER(MainWindow a, string IP, string PORT)
        {
            data0    = new STRUCT_FFT_DATA(FFT_SIZE_BUF);
            data1    = new STRUCT_FFT_DATA(FFT_SIZE_BUF);
            my_ip    = IPAddress.Parse(IP);
            my_port  = UInt16.Parse(PORT);
            FFT_SIZE = a.FFT_SIZE;
            START();
        }
예제 #5
0
        private void Timer2_Tick(object sender, EventArgs e)//медленное прерывание - отвечает за обмен с поделкой
        {
            //Console.WriteLine("Инициализация.init:"+Инициализация.init);
            if (Инициализация.init == false)
            {
                Панель_инициализации.IsChecked = false;
            }
            if (Синтезатор.init == false)
            {
                Панель_синтезатора.IsChecked = false;
            }
            if (Приёмник.init == false)
            {
                Панель_приёмника.IsChecked = false;
            }
            if (Калибровка.init == false)
            {
                Панель_калибровки.IsChecked = false;
            }
            if (Consol.init == false)
            {
                Панель_консоли.IsChecked = false;
            }

            if (FLAG_SINT_INIT == 0)
            {
                FLAG_SINT_INIT = 1;
                Панель_синтезатора.IsChecked = true;
                mnuSint_Click(Панель_синтезатора, null);
            }
            CMD_REAL_TIME_SEND();
            SYS_CONTROL();

            if (panel_Recv != null)
            {
                FFT_SIZE           = panel_Recv.FFT_SIZE;           //тут мы получаем размер БПФ
                selectedWindowName = panel_Recv.selectedWindowName; //тут мы получаем тип окна БПФ
                FILTR_SMOOTH       = panel_Recv.FLAG_SMOOTH_FILTR;  //тут мы получаем тип сглаживающего фильтра перед выводом на экран
                panel_Recv.data0   = data0;
                panel_Recv.data1   = data1;
                panel_Recv.data2   = data2;
                panel_Recv.data3   = data3;
            }

            if (sDATA0 != null)
            {
                sDATA0.FFT_SIZE           = FFT_SIZE;//передаём размер БПФ для обработки
                sDATA0.FLAG_filtr         = FILTR_SMOOTH;
                sDATA0.selectedWindowName = selectedWindowName;
                FLAG_DISPAY0 = sDATA0.FLAG_DISPAY0;
                FLAG_DISPAY1 = sDATA0.FLAG_DISPAY1;
                data0        = sDATA0.data0;
                data1        = sDATA0.data1;
            }

            if (sDATA1 != null)
            {
                sDATA1.FFT_SIZE           = FFT_SIZE;//передаём размер БПФ для обработки
                sDATA1.FLAG_filtr         = FILTR_SMOOTH;
                sDATA1.selectedWindowName = selectedWindowName;
                FLAG_DISPAY2 = sDATA1.FLAG_DISPAY0;
                FLAG_DISPAY3 = sDATA1.FLAG_DISPAY1;
                data2        = sDATA1.data0;
                data3        = sDATA1.data1;
            }
        }