コード例 #1
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;
            }
        }
コード例 #2
0
        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;
        }