Ejemplo n.º 1
0
        private List <FreqUse> GetFreqUses()
        {
            List <FreqUse> freqs = new List <FreqUse>();
            double         dfreq = FirstFreq == 0.0 ? FreqBegin : FirstFreq;
            FreqUse        frequse;

            for (double freq = dfreq; freq <= FreqEnd;)
            {
                frequse      = new FreqUse();
                frequse.Freq = freq / (double)1000000;
                frequse.Use  = Usage.None;
                freqs.Add(frequse);

                freq = freq + Band;
                CheckFreq(frequse);
                //if (freq % 5 == 0)
                //{
                //    frequse.Use = Usage.Applied;
                //}
                //if (freq % 5 == 2)
                //{
                //    frequse.Use = Usage.Lawful;
                //}
                //if (freq % 5 == 4)
                //{
                //    frequse.Use = Usage.UnLawful;
                //}
            }
            return(freqs);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Button路由事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ButtonClick(object sender, RoutedEventArgs e)
        {
            Button  button       = e.Source as Button;
            FreqUse selectedFreq = button.DataContext as FreqUse;

            if (selectedFreq.Use != Usage.None)
            {
                button.Focusable = false;
            }
            else
            {
                SelectedFreq = selectedFreq;
                if (this.ShowInterfere && (bool)chkIterfere.IsChecked)
                {
                    GetInterfereInfo();
                }
            }
        }
Ejemplo n.º 3
0
        private void CheckFreq(FreqUse freqUse)
        {
            string toolTip = "空闲";
            Usage  usage   = Usage.None;

            //第一个查AnalysisResult,进行预指
            foreach (AnalysisResult analysisReqult in analysisRequltList)
            {
                if (analysisReqult.Frequency == freqUse.Freq)
                {
                    if (analysisReqult.FreqType == SignalTypeEnum.已占)
                    {
                        if (string.IsNullOrEmpty(analysisReqult.FreqGuid))
                        {
                            usage   = Usage.UnLawful;
                            toolTip = "非法占用";
                        }
                        else
                        {
                            usage   = Usage.Lawful;
                            toolTip = "台站:" + analysisReqult.StationName + " 占用";
                        }
                    }
                    break;
                }
            }
            //第二个查周围台站清理情况
            foreach (EmeClearInfo emeInfo in emeClearInfoList)
            {
                //0 未作处理;1 清理成功;2 清理失败
                if (emeInfo.ResultIsClear != "1")
                {
                    if (emeInfo.FREQ_EC != null && emeInfo.FREQ_BAND != null)
                    {
                        double freq      = (double)emeInfo.FREQ_EC;
                        double band      = (double)emeInfo.FREQ_BAND;
                        double freqStart = freq - band / 2;
                        double freqEnd   = freq + band / 2;
                        //先判断起点是否落在里面
                        if (freqUse.Freq <= freqStart && freqStart <= (freqUse.Freq + Band / (double)1000000))
                        {
                            usage   = Usage.Lawful;
                            toolTip = "台站:" + emeInfo.StationName + " 占用";
                            break;
                        }
                        //再判断终点是否落在里面
                        if (freqUse.Freq <= freqEnd && freqEnd <= (freqUse.Freq + Band / (double)1000000))
                        {
                            usage   = Usage.Lawful;
                            toolTip = "台站:" + emeInfo.StationName + " 占用";
                            break;
                        }
                        //最后判断是否覆盖
                        if (freqStart <= freqUse.Freq && (freqUse.Freq + Band / (double)1000000) <= freqEnd)
                        {
                            usage   = Usage.Lawful;
                            toolTip = "台站:" + emeInfo.StationName + " 占用";
                            break;
                        }
                    }
                }
            }
            //检查频率是否为申请频率
            foreach (ActivityEquipmentInfo equ in placeEqulist)
            {
                //如果是指配建议调用此页面时,排除要指配的这个设备。
                if (this.EquInfo != null && equ.GUID == this.EquInfo.GUID)
                {
                    continue;
                }
                if (freqUse.Freq == equ.AssignFreq)
                {
                    usage   = Usage.Applied;
                    toolTip = "设备:" + equ.Name + " 申请";
                    break;
                }
            }
            freqUse.Use     = usage;
            freqUse.ToolTip = toolTip;
        }