private void Update() { //左クリック if (Input.GetMouseButtonDown(0)) { if (Physics.SphereCast(transform.position, _radius, _cameraTransform.forward, out _hit, _rayDistance, _layerMask)) { _interfereObject = _hit.collider.gameObject.GetComponent <InterfereObject>(); _interfereObject.ObjectAction(); } } //右クリック(アイテム使用) if (Input.GetMouseButtonDown(1)) { Physics.SphereCast(transform.position, _radius, _cameraTransform.forward, out _hit, _rayDistance, _layerMask); _itemManager.UseItem(); } //マウスホイール(アイテム切り替え) _mouseWheel = Input.GetAxis("Mouse ScrollWheel"); if (_mouseWheel > 0.0f) { _itemManager.ChangeItem(true); } if (_mouseWheel < 0.0f) { _itemManager.ChangeItem(false); } }
private void DataGrid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { if (e.ClickCount == 2) { DataGrid datagrid = sender as DataGrid; InterfereObject interfobj = datagrid.SelectedItem as InterfereObject; if (interfobj.Type == InterfereObjectEnum.设备) { ActivityEquipmentInfo equ = new ActivityEquipmentInfo(); equ.GUID = interfobj.Guid; PT_BS_Service.Client.Framework.BeOperationInvoker.Invoke <I_CO_IA.FreqPlan.I_CO_IA_FreqPlan>(channel => { equ = channel.GetEquipmentInfo(equ); if (equ != null) { EquipmentDetailDialog dialog = new EquipmentDetailDialog(equ); dialog.IsEnabled = false; dialog.WindowTitle = "设备-详细信息"; dialog.ShowDialog(this); } }); } else if (interfobj.Type == InterfereObjectEnum.周围台站) { StationDetailDialog dialog = new StationDetailDialog(interfobj.Guid); dialog.ShowDialog(this); } } }
private void DataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (sender != null) { DataGridRow gridrow = sender as DataGridRow; InterfereObject interfobj = gridrow.Item as InterfereObject; if (interfobj != null) { if (interfobj.Type == InterfereObjectEnum.设备) { ActivityEquipment equipment = PT_BS_Service.Client.Framework.BeOperationInvoker.Invoke <I_CO_IA.FreqStation.I_CO_IA_FreqStation, ActivityEquipment>(channel => { return(channel.GetActivityEquipment(interfobj.Guid)); }); EquipmentManageDialog equdialog = new EquipmentManageDialog(); equdialog.DataContext = equipment; equdialog.AllowEdit = false; equdialog.ShowDialog(); } else if (interfobj.Type == InterfereObjectEnum.周围台站) { StationDetailDialog dialog = new StationDetailDialog(interfobj.Guid); dialog.ShowDialog(this); } } } }
/// <summary> /// 其他干扰信息 /// </summary> /// <param name="Interfother"></param> /// <returns></returns> private InterfereObject CreateInterfObjectFromOther(ComparableFreq Interfother) { InterfereObject intobject = new InterfereObject(); intobject.Guid = Interfother.FreqID; intobject.Name = "其他干扰"; intobject.Type = InterfereObjectEnum.其他; intobject.Freq = Interfother.Freq; intobject.Band = Interfother.Band; return(intobject); }
/// <summary> /// 取非法信号干扰信息 /// </summary> /// <param name="illsignal"></param> /// <param name="freq"></param> /// <returns></returns> private InterfereObject CreateInterfObjectFromSignal(AnalysisResult illsignal, ComparableFreq freq) { InterfereObject intosignal = new InterfereObject(); intosignal.Guid = illsignal.Id; intosignal.Name = illsignal.EquimentName; intosignal.Type = InterfereObjectEnum.非法信号; intosignal.Freq = freq.Freq; intosignal.Band = freq.Band; return(intosignal); }
/// <summary> /// 取台站干扰信息 /// </summary> /// <param name="Interfstation"></param> /// <returns></returns> private InterfereObject CreateInterfObjectFromStation(RoundStationInfo Interfstation, ComparableFreq freq) { InterfereObject intobject = new InterfereObject(); intobject.Guid = Interfstation.STATGUID; intobject.Name = Interfstation.STAT_NAME; intobject.Type = InterfereObjectEnum.周围台站; intobject.Freq = freq.Freq; intobject.Band = freq.Band; return(intobject); }
/// <summary> /// 取设备干扰信息 /// </summary> /// <param name="Interfequ"></param> /// <returns></returns> private InterfereObject CreateInterfObjectFromEqu(ActivityEquipmentInfo Interfequ) { InterfereObject intobject = new InterfereObject(); intobject.Guid = Interfequ.GUID; intobject.Name = Interfequ.Name; intobject.Type = InterfereObjectEnum.设备; intobject.Freq = Interfequ.SendFreq; intobject.Band = Interfequ.Band; return(intobject); }
/// <summary> /// 获取发射机互调 /// </summary> /// <param name="transmResult"></param> /// <returns></returns> private List <IMInterfereResult> GetTransmitterImResult(IMCompareResult transmResult) { List <IMInterfereResult> imInterfresultlst = new List <IMInterfereResult>(); if (transmResult != null) { #region 获取干扰结果 IMItemBase imBase = null; for (int i = 0; i < transmResult.Values.Length; i++) { imBase = transmResult.Values[i]; ActivityEquipmentInfo equ = new ActivityEquipmentInfo(); ComparableFreq imfreq = imBase.IMFreqs[0];//发射互调的干扰频率存在IMFreqs中 equ = _equipments.FirstOrDefault(r => r.GUID == imfreq.FreqID); bool isnewInterfere = true; //新的干扰,不存在dicIMInterfereResult字典中 if (equ != null) { if (this.dicIMInterfereResult.TryGetValue(equ, out imInterfresultlst)) { isnewInterfere = false; } else { isnewInterfere = true; imInterfresultlst = new List <IMInterfereResult>(); } IMInterfereResult iminterfinfo = new IMInterfereResult(); iminterfinfo.InterfType = InterfereTypeEnum.发射机互调干扰; iminterfinfo.InterfOrder = GetIMInterfOrder(imBase.Order); iminterfinfo.Formual = imBase.Formula; iminterfinfo.InterfObject = new List <InterfereObject>(); #region 获取干扰台站 ComparableFreq disfreq = imBase.DisturbedFreqs[0]; //先在设备列表中查找,如果有,则认为干扰物为设备 ActivityEquipmentInfo Interfequ1 = _equipments.FirstOrDefault(r => r.GUID == disfreq.FreqID); InterfereObject interfobject1 = null; if (Interfequ1 != null) { interfobject1 = CreateInterfObjectFromEqu(Interfequ1); } else { //如设备列表中没有,则在周围台站列表中查找,如果有,则认为干扰物为设备 RoundStationInfo Interfstation = _aroundStation.FirstOrDefault(r => r.STATGUID == disfreq.FreqID); if (Interfstation != null) { interfobject1 = CreateInterfObjectFromStation(Interfstation, disfreq); } else { //如设备列表和周围台站列表中都没有此干扰物,则认为干扰物为其他(这种情况应该不会出现??) interfobject1 = CreateInterfObjectFromOther(imBase.DisturbedFreqs[0]); } } iminterfinfo.InterfObject.Add(interfobject1); //先在设备列表中查找,如果有,则认为干扰物为设备 ActivityEquipmentInfo Interfequ2 = _equipments.FirstOrDefault(r => r.GUID == imBase.IMFreqs[1].FreqID); InterfereObject interfobject2 = null; if (Interfequ2 != null) { interfobject2 = CreateInterfObjectFromEqu(Interfequ2); } else { //如设备列表中没有,则在周围台站列表中查找,如果有,则认为干扰物为设备 RoundStationInfo Interfstation = _aroundStation.FirstOrDefault(r => r.STATGUID == imBase.IMFreqs[1].FreqID); if (Interfstation != null) { interfobject2 = CreateInterfObjectFromStation(Interfstation, imBase.IMFreqs[1]); } else { //如设备列表和周围台站列表中都没有此干扰物,则认为干扰物为其他(这种情况应该不会出现??) interfobject2 = CreateInterfObjectFromOther(imBase.IMFreqs[1]); } } iminterfinfo.InterfObject.Add(interfobject2); #endregion imInterfresultlst.Add(iminterfinfo); if (isnewInterfere) { this.dicIMInterfereResult.Add(equ, imInterfresultlst); } } } #endregion } return(imInterfresultlst); }
/// <summary> /// 获取邻频干扰结果 /// </summary> /// <param name="result"></param> /// <returns></returns> private List <InterfereResult> GetADJFreqInterfResult(AdjFreqCompareResult[] result) { List <InterfereResult> adjinterfresultlst = new List <InterfereResult>(); //干扰结果 foreach (AdjFreqCompareResult item in result) { ActivityEquipmentInfo equ = new ActivityEquipmentInfo(); equ = _equipments.FirstOrDefault(r => r.GUID == item.Keys[0].FreqID); //获取干扰设备 bool isnewInterfere = true; //新的干扰,不存在dicInterfereResult字典中 if (this.dicInterfereResult.TryGetValue(equ, out adjinterfresultlst)) { isnewInterfere = false; } else { isnewInterfere = true; adjinterfresultlst = new List <InterfereResult>(); } #region 邻频干扰 if (item.UpperAdjFreqs != null && item.UpperAdjFreqs.Length > 0) { InterfereResult uadinterfInfo = new InterfereResult(); uadinterfInfo.InterfType = InterfereTypeEnum.邻频干扰; uadinterfInfo.InterfOrder = InterfereOrderEnum.邻频; uadinterfInfo.InterfObject = new List <InterfereObject>(); foreach (ComparableFreq uadjfreq in item.UpperAdjFreqs) { //先在设备列表中查找,如果有,则认为干扰物为设备 ActivityEquipmentInfo Interfequ = _equipments.FirstOrDefault(r => r.GUID == uadjfreq.FreqID); InterfereObject interfobject = null; if (Interfequ != null) { interfobject = CreateInterfObjectFromEqu(Interfequ); } else { //如设备列表中没有,则在周围台站列表中查找,如果有,则认为干扰物为设备 RoundStationInfo Interfstation = _aroundStation.FirstOrDefault(r => r.STATGUID == uadjfreq.FreqID); if (Interfstation != null) { interfobject = CreateInterfObjectFromStation(Interfstation, uadjfreq); } else { AnalysisResult interfsignal = _illegalSignal.FirstOrDefault(r => r.Id == uadjfreq.FreqID); if (interfsignal != null) { interfobject = CreateInterfObjectFromSignal(interfsignal, uadjfreq); } else { //如设备列表和周围台站列表中都没有此干扰物,则认为干扰物为其他(这种情况应该不会出现??) interfobject = CreateInterfObjectFromOther(uadjfreq); } } } uadinterfInfo.InterfObject.Add(interfobject); } adjinterfresultlst.Add(uadinterfInfo); } #endregion #region 邻频干扰 if (item.LowerAdjFreqs != null && item.LowerAdjFreqs.Length > 0) { InterfereResult ladjinterfInfo = new InterfereResult(); ladjinterfInfo.InterfType = InterfereTypeEnum.邻频干扰; ladjinterfInfo.InterfOrder = InterfereOrderEnum.邻频; ladjinterfInfo.InterfObject = new List <InterfereObject>(); foreach (ComparableFreq ladjfreq in item.LowerAdjFreqs) { //先在设备列表中查找,如果有,则认为干扰物为设备 ActivityEquipmentInfo Interfequ = _equipments.FirstOrDefault(r => r.GUID == ladjfreq.FreqID); InterfereObject interfobject = null; if (Interfequ != null) { interfobject = CreateInterfObjectFromEqu(Interfequ); } else { //如设备列表中没有,则在周围台站列表中查找,如果有,则认为干扰物为设备 RoundStationInfo Interfstation = _aroundStation.FirstOrDefault(r => r.STATGUID == ladjfreq.FreqID); if (Interfstation != null) { interfobject = CreateInterfObjectFromStation(Interfstation, ladjfreq); } else { AnalysisResult interfsignal = _illegalSignal.FirstOrDefault(r => r.Id == ladjfreq.FreqID); if (interfsignal != null) { interfobject = CreateInterfObjectFromSignal(interfsignal, ladjfreq); } else { //如设备列表和周围台站列表中都没有此干扰物,则认为干扰物为其他(这种情况应该不会出现??) interfobject = CreateInterfObjectFromOther(ladjfreq); } } } ladjinterfInfo.InterfObject.Add(interfobject); } adjinterfresultlst.Add(ladjinterfInfo); } #endregion if (isnewInterfere) { this.dicInterfereResult.Add(equ, adjinterfresultlst); } } return(adjinterfresultlst); }
/// <summary> /// 获取同频干扰结果 /// </summary> /// <param name="result"></param> /// <returns></returns> private List <InterfereResult> GetSameFreqInterfResult(SameFreqCompareResult[] result) { List <InterfereResult> interfresultlst = new List <InterfereResult>();; foreach (SameFreqCompareResult item in result) { ActivityEquipmentInfo equ = new ActivityEquipmentInfo(); equ = _equipments.FirstOrDefault(r => r.GUID == item.Keys[0].FreqID); bool isnewInterfere = true; //新的干扰,不存在dicInterfereResult字典中 if (this.dicInterfereResult.TryGetValue(equ, out interfresultlst)) { isnewInterfere = false; } else { isnewInterfere = true; interfresultlst = new List <InterfereResult>(); } InterfereResult sameinterfInfo = new InterfereResult(); sameinterfInfo.InterfType = InterfereTypeEnum.频干扰; sameinterfInfo.InterfOrder = InterfereOrderEnum.频; sameinterfInfo.InterfObject = new List <InterfereObject>(); #region 遍历干扰列表,取干扰设备或者干扰物 foreach (ComparableFreq freq in item.Values) { //先在设备列表中查找,如果有,则认为干扰物为设备 ActivityEquipmentInfo Interfequ = _equipments.FirstOrDefault(r => r.GUID == freq.FreqID); InterfereObject interfobject = null; if (Interfequ != null) { interfobject = CreateInterfObjectFromEqu(Interfequ); } else { //如设备列表中没有,则在周围台站列表中查找,如果有,则认为干扰物为设备 RoundStationInfo Interfstation = _aroundStation.FirstOrDefault(r => r.STATGUID == freq.FreqID); if (Interfstation != null) { interfobject = CreateInterfObjectFromStation(Interfstation, freq); } else { AnalysisResult interfsignal = _illegalSignal.FirstOrDefault(r => r.Id == freq.FreqID); if (interfsignal != null) { interfobject = CreateInterfObjectFromSignal(interfsignal, freq); } else { //如设备列表和周围台站列表中都没有此干扰物,则认为干扰物为其他(这种情况应该不会出现??) interfobject = CreateInterfObjectFromOther(freq); } } } sameinterfInfo.InterfObject.Add(interfobject); } #endregion interfresultlst.Add(sameinterfInfo); //将新的干扰结果加到字典中 if (isnewInterfere) { this.dicInterfereResult.Add(equ, interfresultlst); } } return(interfresultlst); }
/// <summary> /// 获取接收机互调 /// </summary> /// <param name="receiverResult"></param> /// <returns></returns> private List <IMInterfereResult> GetReceiverImResult(IMCompareResult receiverResult) { List <IMInterfereResult> imInterfresultlst = new List <IMInterfereResult>(); if (receiverResult != null) { #region 获取干扰结果 IMItemBase imBase = null; for (int i = 0; i < receiverResult.Values.Length; i++) { imBase = receiverResult.Values[i]; ActivityEquipment equ = new ActivityEquipment(); ComparableFreq disfreq = imBase.DisturbedFreqs[0]; equ = _equipments.FirstOrDefault(r => r.Key == disfreq.FreqID); bool isnewInterfere = true; //新的干扰,不存在dicIMInterfereResult字典中 if (equ != null) { if (this.dicIMInterfereResult.TryGetValue(equ, out imInterfresultlst)) { isnewInterfere = false; } else { isnewInterfere = true; imInterfresultlst = new List <IMInterfereResult>(); } IMInterfereResult iminterfinfo = new IMInterfereResult(); iminterfinfo.InterfType = InterfereTypeEnum.接收机互调干扰; iminterfinfo.InterfOrder = GetIMInterfOrder(imBase.Order); iminterfinfo.Formual = imBase.Formula; iminterfinfo.InterfObject = new List <InterfereObject>(); #region 获取干扰台站 for (int k = 0; k < imBase.IMFreqs.Length; k++) { ComparableFreq freq = imBase.IMFreqs[k]; //先在设备列表中查找,如果有,则认为干扰物为设备 ActivityEquipment Interfequ = _equipments.FirstOrDefault(r => r.Key == freq.FreqID); InterfereObject interfobject = null; if (Interfequ != null) { interfobject = CreateInterfObjectFromEqu(Interfequ); interfobject.Freq = freq.Freq; //干扰频率有可能是备用频率 } else { //如设备列表中没有,则在周围台站列表中查找,如果有,则认为干扰物为设备 ActivitySurroundStation Interfstation = _aroundStation.FirstOrDefault(r => r.STATGUID == freq.FreqID); if (Interfstation != null) { interfobject = CreateInterfObjectFromStation(Interfstation, freq); } else { //如设备列表和周围台站列表中都没有此干扰物,则认为干扰物为其他(这种情况应该不会出现??) interfobject = CreateInterfObjectFromOther(freq); } } iminterfinfo.InterfObject.Add(interfobject); } #endregion imInterfresultlst.Add(iminterfinfo); if (isnewInterfere) { this.dicIMInterfereResult.Add(equ, imInterfresultlst); } } } #endregion } return(imInterfresultlst); }