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