public void SetGroupProperty(LtePredictionGroup pg, GroupProperty property) { float maxSensitivity; pg.Resolution = property.Resolution; pg.HandoverAreaThreshold = property.HandoverAreaThreshold; pg.DiffFreqHandoverAreaGate = property.DiffFreqHandoverAreaGate; pg.RxSensitivity = property.RxSensitivity; pg.ULTxSensitivity = property.TxSensitivity; pg.InterferenceGate = property.InterferenceGate; pg.CellEdgeCoverageProbability = property.CellEdgeCoverageProbability; pg.IsShadowdowAccout = property.IsShadowdowAccout; //add 2011.6.2 pg.IsFDD = property.IsFDD; pg.IsIndoorCoverage = property.IsIndoorCoverage; pg.RsShifting = property.RSShifting; pg.IsChannelIndexSaved = true; this.AddRegionToGroup(pg, property.regionIndex); this.AddTrafficDataToGroup(pg, property); this.SaveFreqBand(pg, property); pg.MaxSensitivity = property.MaxSensitivity; pg.ULMaxSensitivity = property.ULMaxSensitivity; if (pg.MaxSensitivity < pg.RxSensitivity) { maxSensitivity = pg.MaxSensitivity; pg.MaxSensitivity = pg.RxSensitivity; pg.RxSensitivity = maxSensitivity; } if (pg.ULMaxSensitivity < pg.ULTxSensitivity) { maxSensitivity = pg.ULMaxSensitivity; pg.ULMaxSensitivity = pg.ULTxSensitivity; pg.ULTxSensitivity = maxSensitivity; } pg.ChannelIndexDic = property.channelIndexDic; }
public PredictionDataManager(LtePredictionGroup pg, IApplicationContext appContext, string savepath) { this.m_ProgressHandle = ServiceHelper.Lookup<IEventViewService>(appContext); this.m_ICellFilterBuilder = ServiceHelper.Lookup<ICellFilterBuilder>(appContext); this.m_ITrafficMCS = ServiceHelper.Lookup<ITrafficMCS>(appContext); this.m_CellFilter = new CellFilter(); IGeoProvider provider = ServiceHelper.Lookup<IGeoProvider>(appContext); this.m_LteCellFilter = new LteCellFilter(provider.GetGeoInfo); this.m_IPLCalcVstr = ServiceHelper.Lookup<IPLCalcDataVstr>(appContext); //add by xujuan m_IGetRelayUEPathLoss = ServiceHelper.Lookup<IGetRelayUEPathLoss>(appContext); this.m_Group = pg; UnionPsService trafficService = this.m_Group.TrafficService as UnionPsService; LTEService service2 = trafficService.PSServiceDic[NetWorkType.LTE] as LTEService; this.m_DLBLER = service2.DLBLER; this.m_ULBLER = service2.ULBLER; this.m_CaseDataManager = new CaseDataManager(this.m_Group, savepath); this.m_NeedCalActualRxIntf = false; this.m_NeedCalMaxRxIntf = false; this.m_NeedCalHandOverArea = false; this.m_NeedCalSymbolRSRP = false; this.m_NeedCalOverlapping = false; this.m_NeedCalRSRQ = false; //add by huna 3.28 this.m_NeedLTEBestServerID = false; this.NeedCreateActualRxPowerValueMatrix(); this.NeedCreateMaxRxPowerValueMartix(); //add by huna 3.28 this.IsNeedLTEBestServerID(); //2011.3.17 this.IsCalcRPDCCHLevel(); //add by huna 3.17 this.IsCalcRPDSCHLevel(); this.IsCalcRPUCCHLevel(); this.IsNeedCalHandOverArea(); this.NeedCalSymbol_RSRP(); this.NeedCalOverlapping(); this.NeedCalRsrq(); this.NeedCreatePenetrationLossValueMatrix(); this.NeedCalULStudy(); //add by huna 3.18 this.NeedCalRULStudy(); this.m_CaseDataManager.NeedCalRSRQ = this.m_NeedCalRSRQ; this.m_CaseDataManager.NeedCalSymbolRSRP = this.m_NeedCalSymbolRSRP; this.SetSavingPath(savepath); //add by huna 3.28 this.m_CaseDataManager.NeedLTEBestServerID = this.m_NeedLTEBestServerID; this.m_CaseDataManager.NeedULLinkloss = this.m_NeedCalRULStudy; //add by huna 4.2 this.m_CaseDataManager.NeedRPDCCHLevel = this.m_NeedCalRPDCCH; this.m_CaseDataManager.NeedRPDSCHLevel = this.m_NeedCalRPDSCH; this.m_CaseDataManager.NeedRPUCCHLevel = this.m_NeedCalRPUCCH; }
private void AddRegionToGroup(LtePredictionGroup pg, int regionIndex) { if (regionIndex != 0) { pg.Region = this.m_GeoProvider.PolygonRegionList[regionIndex - 1]; } else { pg.Region = null; } }
//创建Group时调用 public IPredictionGroup CreateGroup(List<StudyTemplate> studyTemplateList, string groupName, int groupID, NetWorkType predictionType) { IPredictionGroup group = new LtePredictionGroup(); group.IsCoGroup = false; group.Name = groupName; group.GroupId = groupID; group.PredictionType = predictionType; foreach (StudyTemplate template in studyTemplateList) { group.StudyList.Add(this.CreateStudyByTemplate(template)); } return group; }
private void AddTrafficDataToGroup(LtePredictionGroup pg, GroupProperty property) { pg.TerminalValue = property.terminalIndexes; Terminal terminal = this.m_ITraffic.FindTerminalList(NetWorkType.LTE)[property.terminalIndexes]; pg.TrafficTerminal = terminal; pg.ServiceValue = property.serviceIndexes; Service service = this.m_ITraffic.FindServiceList(NetWorkType.LTE)[property.serviceIndexes]; pg.TrafficService = service; UnionPsService service2 = service as UnionPsService; LTEService service3 = service2.PSServiceDic[NetWorkType.LTE] as LTEService; pg.MobilityValue = property.mobIndexes; Mobility mobility = this.m_ITraffic.MobilityList[property.mobIndexes]; pg.TrafficMobility = mobility; }
/// <summary> /// 初始化链路损耗、计算等级、PredictionDataMgr、小区 /// </summary> /// <param name="pg"></param> /// <param name="transceiverList"></param> /// <param name="savepath"></param> private void InitialMember(LtePredictionGroup pg, List<Transceiver> transceiverList, string savepath) { this.m_Group = pg; this.m_LinkPrediction = ServiceHelper.Lookup<ILTELinkLossCalculatorBuilder>(this.m_AppContext).GetCalculator(pg.CellEdgeCoverageProbability); this.m_CalcStep = CalcStep.BestServerCalcStep; this.m_LinkPrediction.SetPareForPrediction((this.m_Group.TrafficService as UnionPsService).BodyLoss, this.m_Group.TrafficTerminal.NetTerminalList[0].Loss, this.m_Group.TrafficTerminal.Attenuation, this.m_Group.TrafficTerminal.Gain, this.m_Group.CellEdgeCoverageProbability, this.m_Group.IsShadowdowAccout, this.m_Group.IsIndoorCoverage); this.m_DataManager = new PredictionDataManager(this.m_Group, this.m_AppContext, savepath); this.m_TransceiverList = transceiverList; }
private void SaveFreqBand(LtePredictionGroup pg, GroupProperty property) { pg.FreqBandIdList.Clear(); pg.FreqBandIdList.AddRange(property.freqBandIndexes); pg.ChannelIndexDic = property.channelIndexDic; }
public CaseDataManager(LtePredictionGroup group, string savepath) { this.m_Group = group; this.SetSavingPath(savepath); this.m_CalMatrixStructArr = new List<CalculatorMatrixStruct>(); }