/// <summary>
        /// 使用扫描参数对象,启动隔离度分析
        /// </summary>
        /// <param name="sweepParams"></param>
        private void StartSweep()
        {
            bool power_too_large = false;

            if ((!Sweeping) && (!csv_playbacking))
            {
                Sweeping            = true;
                MarkVisible         = false;
                AutoscaleEnable     = false;
                PointsDone          = 0;
                csv_points_playback = 0;

                pbxStart.Image     = ImagesManage.GetImage("isolation", "start.gif");
                pbxMark.Image      = ImagesManage.GetImage("isolation", "mark_in.gif");
                pbxAutoscale.Image = ImagesManage.GetImage("isolation", "autoscale_in.gif");

                pltIso.Clear();

                pltIso.SetYStartStop(this.settings.Min_Iso, this.settings.Max_Iso);

                sweep_params = new SweepParams();

                //准备扫描参数,并启动扫描
                if (sweep_or_time == SweepType.Freq_Sweep)
                {
                    pltIso.SetMarkText(Sweep_MarkText);

                    if (rf_involved == RFInvolved.Rf_1)
                    {
                        pbxCarrier1.Image = ImagesManage.GetImage("isolation", "carrier1.gif");
                        pbxCarrier2.Image = ImagesManage.GetImage("isolation", "carrier2_in.gif");
                        pbxFreq.Image     = ImagesManage.GetImage("isolation", "freq_in.gif");

                        if (!IsoSettingForm.bEnableCAL_RF1)
                        {
                            MessageBox.Show(this, "Please calibrate carrier 1!");
                            pbxStart.Image = ImagesManage.GetImage("isolation", "start_in.gif");
                            Sweeping       = false;
                            return;
                        }

                        pltIso.SetXStartStop(App_Settings.sgn_1.Min_Freq, App_Settings.sgn_1.Max_Freq);

                        if (this.settings.Tx > App_Settings.sgn_1.Max_Power || this.settings.Tx < App_Settings.sgn_1.Min_Power)
                        {
                            power_too_large = true;
                        }

                        Prepare_Freq_Sweep1(sweep_params);

                        //for (int i = 0; i < sweep_params.FrqParam.Items1.Length; i++)
                        //if (sweep_params.FrqParam.Items1[i].P1 > App_Settings.sgn_1.Max_Power)
                        //{
                        //    power_too_large = true;
                        //    break;
                        //}
                    }
                    else
                    {
                        if (!IsoSettingForm.bEnableCAL_RF2)
                        {
                            MessageBox.Show(this, "Please calibrate carrier 2!");
                            pbxStart.Image = ImagesManage.GetImage("isolation", "start_in.gif");
                            Sweeping       = false;
                            return;
                        }

                        pbxCarrier2.Image = ImagesManage.GetImage("isolation", "carrier2.gif");
                        pbxCarrier1.Image = ImagesManage.GetImage("isolation", "carrier1_in.gif");
                        pbxFreq.Image     = ImagesManage.GetImage("isolation", "freq_in.gif");
                        pltIso.SetXStartStop(App_Settings.sgn_2.Min_Freq, App_Settings.sgn_2.Max_Freq);

                        if (this.settings.Tx > App_Settings.sgn_2.Max_Power || this.settings.Tx < App_Settings.sgn_2.Min_Power)
                        {
                            power_too_large = true;
                        }

                        Prepare_Freq_Sweep2(sweep_params);

                        //for (int i = 0; i < sweep_params.FrqParam.Items2.Length; i++)
                        //if (sweep_params.FrqParam.Items2[i].P2 > App_Settings.sgn_2.Max_Power)
                        //{
                        //    power_too_large = true;
                        //    break;
                        //}
                    }
                }
                else
                {
                    pltIso.SetMarkText(Fixed_MarkText);

                    pbxFreq.Image     = ImagesManage.GetImage("isolation", "freq.gif");
                    pbxCarrier1.Image = ImagesManage.GetImage("isolation", "carrier1_in.gif");
                    pbxCarrier2.Image = ImagesManage.GetImage("isolation", "carrier2_in.gif");

                    //pltIso.SetXStartStop(0, (this.settings.Time_Points - 1));
                    pltIso.SetXStartStop(0, (this.settings.Time_Points));

                    if ((this.settings.F >= App_Settings.sgn_1.Min_Freq) &&
                        (this.settings.F <= App_Settings.sgn_1.Max_Freq))
                    {
                        if (!IsoSettingForm.bEnableCAL_RF1)
                        {
                            MessageBox.Show(this, "Please calibrate carrier 1!");
                            pbxStart.Image = ImagesManage.GetImage("isolation", "start_in.gif");
                            Sweeping       = false;
                            return;
                        }

                        rf_involved = RFInvolved.Rf_1;
                    }
                    else
                    {
                        if (!IsoSettingForm.bEnableCAL_RF2)
                        {
                            MessageBox.Show(this, "Please calibrate carrier 2!");
                            pbxStart.Image = ImagesManage.GetImage("isolation", "start_in.gif");
                            Sweeping       = false;
                            return;
                        }

                        rf_involved = RFInvolved.Rf_2;
                    }

                    if (rf_involved == RFInvolved.Rf_1)
                    {
                        if (this.settings.Tx > App_Settings.sgn_1.Max_Power || this.settings.Tx < App_Settings.sgn_1.Min_Power)
                        {
                            power_too_large = true;
                        }

                        Prepare_Time_Sweep1(sweep_params);

                        //if (sweep_params.TmeParam.P1 > App_Settings.sgn_1.Max_Power)
                        //    power_too_large = true;
                    }
                    else
                    {
                        if (this.settings.Tx > App_Settings.sgn_2.Max_Power || this.settings.Tx < App_Settings.sgn_2.Min_Power)
                        {
                            power_too_large = true;
                        }

                        Prepare_Time_Sweep2(sweep_params);

                        //if (sweep_params.TmeParam.P2 > App_Settings.sgn_2.Max_Power)
                        //    power_too_large = true;
                    }
                }

                if (power_too_large)
                {
                    Sweeping = false;

                    MessageBox.Show(this, "The carrier power setup is out of its range!");
                }
                else
                {
                    SweepObj.InitSweep();

                    SweepObj.Prepare(sweep_params);

                    SweepObj.StartSweep();
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// 使用扫描参数对象,启动隔离度分析
        /// </summary>
        /// <param name="sweepParams"></param>
        private bool StartSweep()
        {
            bool power_too_large = false;

            if (!Sweeping)
            {
                Sweeping = true;

                PointsDone = 0;

                sweep_params = new SweepParams();

                //准备扫描参数,并启动扫描
                pbrCAL.Minimum = 0;

                if (rf_involved == RFInvolved.Rf_1)
                {
                    Prepare_Freq_Sweep1(sweep_params);

                    pbrCAL.Maximum = sweep_params.FrqParam.Items1.Length;

                    for (int i = 0; i < sweep_params.FrqParam.Items1.Length; i++)
                    {
                        if (sweep_params.FrqParam.Items1[i].P1 > App_Settings.sgn_1.Max_Power)
                        {
                            power_too_large = true;
                            break;
                        }
                    }
                }
                else
                {
                    Prepare_Freq_Sweep2(sweep_params);

                    pbrCAL.Maximum = sweep_params.FrqParam.Items2.Length;

                    for (int i = 0; i < sweep_params.FrqParam.Items2.Length; i++)
                    {
                        if (sweep_params.FrqParam.Items2[i].P2 > App_Settings.sgn_2.Max_Power)
                        {
                            power_too_large = true;
                            break;
                        }
                    }
                }

                if (power_too_large)
                {
                    Sweeping = false;

                    MessageBox.Show(this, "The carrier power setup is out of its range!");

                    this.Close();
                }
                else
                {
                    SweepObj.InitSweep();
                    SweepObj.Prepare(sweep_params);
                    SweepObj.StartSweep();
                }
            }

            return(power_too_large);
        }