Exemplo n.º 1
0
        /// <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;
            }
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 4
0
        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);
        }