/// <summary> /// DataGrid选择行改变事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void InterferedResult_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (InterfereEquipment != null) { List <InterfereResult> list = null; int samecount = 0; int adjcount = 0; int imtcount = 0; int imrcount = 0; if (this.dicInterfereResult.Keys.Contains(InterfereEquipment)) { list = this.dicInterfereResult[InterfereEquipment]; _baseInterfereResultControl.InterfItemsSource = list; //获取干扰统计信息 samecount = list.Count(r => r.InterfType == InterfereTypeEnum.频干扰); adjcount = list.Count(r => r.InterfType == InterfereTypeEnum.邻频干扰); } List <IMInterfereResult> imlist = null; if (dicIMInterfereResult.Keys.Contains(InterfereEquipment)) { imlist = this.dicIMInterfereResult[InterfereEquipment]; _iMInterfereResultControl.IMInterfItemsSource = imlist; imtcount = imlist.Count(r => r.InterfType == InterfereTypeEnum.发射机互调干扰); imrcount = imlist.Count(r => r.InterfType == InterfereTypeEnum.接收机互调干扰); } InterferenceAnalysisResult result = new InterferenceAnalysisResult(); result.SameFreqInterfResultCount = samecount; result.ADJFreqInterfResultCount = adjcount; result.IMInterfResultCount = imtcount + imrcount; SelectedInterfResult = result; } }
private void GetInterfereInfo() { ActivityEquipmentInfo equInfo = CopyEqu(this.EquInfo); if (this.SelectedFreq != null) { equInfo.AssignFreq = this.SelectedFreq.Freq; } else { MessageBox.Show("请先选定频率再进行干扰分析。", "提示", MessageBoxButton.OK); return; } if (equInfo.BusinessCode.Substring(0, 4) == "LY01") { MessageBox.Show("公众移动通信系统的设备不进行干扰计算。", "提示", MessageBoxButton.OK); chkIterfere.IsChecked = false; gridInterfere.Visibility = Visibility.Collapsed; return; } //ComparableFreq CalcFreq = new ComparableFreq((double)EquInfo.AssignFreq, (double)EquInfo.Band, EquInfo.GUID); //ComparableFreq[] CalcFreqs = { CalcFreq }; //ComparableFreq[] CompFreq = ConverterToComparableFreq(this.AroundStations); List <RoundStationInfo> aroundStations = new List <RoundStationInfo>(this.AroundStations.ToArray()); List <ActivityEquipmentInfo> equs = new List <ActivityEquipmentInfo>(); equs.Add(equInfo); //Transmitter[] Transmitters = ConverterToTransmitter(equs, aroundStations); //Receiver[] Receivers = ConverterToReceiver(equs, aroundStations); try { AnalysisType type = AnalysisType.SameFreq | AnalysisType.ADJFreq | AnalysisType.IM; InterferenceAnalysisResult InterfResult = InterfAnalysis.Calculator(equs, aroundStations, type); //InterferenceAnalysisResult InterfAnalysisResult = InterfAnalysis.Calculator(type, CalcFreqs, CompFreq,calctransmitters,calcreceivers, Transmitters, Receivers); gridInterfereResult.DataContext = InterfResult; int total = InterfResult.Total; } catch (Exception ex) { MessageBox.Show("干扰分析出错,请检查设备频率。", "提示", MessageBoxButton.OK); return; } }
public void CalcInterfereAnalyse() { dicInterfereResult.Clear(); dicIMInterfereResult.Clear(); //AnalysisType type = AnalysisType.SameFreq | AnalysisType.ADJFreq | AnalysisType.IM; InterferenceAnalysisResult InterfResult = InterfAnalysis.Calculator(this._equipments, this._aroundStation, _analysisType, this._illegalSignal); List <InterfereResult> interfereresult = new List <InterfereResult>(); #region 获取同频干扰结果 if (InterfResult.SameFreqInterfResult != null) { List <InterfereResult> sameInterferresult = GetSameFreqInterfResult(InterfResult.SameFreqInterfResult); interfereresult.AddRange(sameInterferresult); } #endregion #region 获取邻频干扰结果 if (InterfResult.ADJFreqInterfResult != null) { List <InterfereResult> adjInterferresult = GetADJFreqInterfResult(InterfResult.ADJFreqInterfResult); interfereresult.AddRange(adjInterferresult); } #endregion #region 获取互调干扰结果 if (InterfResult.IMInterfResult != null) { List <IMInterfereResult> imInterferresult = GetIMInterfResult(InterfResult.IMInterfResult); interfereresult.AddRange(imInterferresult); } #endregion ////取两个集合的并集作为数据源 //List<ActivityEquipmentInfo> itemsource = dicInterfereResult.Keys.Union(dicIMInterfereResult.Keys).ToList(); //InterferedResult.ItemsSource = itemsource; }
InterferenceAnalysisResult LoadAnalysisResult() { List <InterfereResult> list = null; int samecount = 0; int adjcount = 0; int imtcount = 0; int imrcount = 0; if (this._dicInterfereResult.Keys.Contains(_activityEquipmentInfo)) { list = this._dicInterfereResult[_activityEquipmentInfo]; //BaseInterfereResultControl baseInterfereResultControl = FindFirstVisualChild<BaseInterfereResultControl>(InterferedResult, "_baseInterfereResultControl"); //if (_baseInterfereResultControl != null) //{ // _baseInterfereResultControl.InterfItemsSource = list; //} //获取干扰统计信息 samecount = list.Count(r => r.InterfType == InterfereTypeEnum.频干扰); adjcount = list.Count(r => r.InterfType == InterfereTypeEnum.邻频干扰); } List <IMInterfereResult> imlist = null; if (_dicIMInterfereResult.Keys.Contains(_activityEquipmentInfo)) { imlist = this._dicIMInterfereResult[_activityEquipmentInfo]; //IMInterfereResultControl iMInterfereResultControl = FindFirstVisualChild<IMInterfereResultControl>(InterferedResult, "_iMInterfereResultControl"); //if (_iMInterfereResultControl != null) // _iMInterfereResultControl.IMInterfItemsSource = imlist; imtcount = imlist.Count(r => r.InterfType == InterfereTypeEnum.发射机互调干扰); imrcount = imlist.Count(r => r.InterfType == InterfereTypeEnum.接收机互调干扰); } InterferenceAnalysisResult result = new InterferenceAnalysisResult(); result.SameFreqInterfResultCount = samecount; result.ADJFreqInterfResultCount = adjcount; result.IMInterfResultCount = imtcount + imrcount; return(result); }