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