/// <summary> /// 读取Context数据,初始化Case /// </summary> /// <param name="context"></param> public void InitialCase(Context context) { GetDataFromContext(context); InitialData(m_Group, m_TFMatrix); context.Add(ContextKeys.GSMHandOver, m_HandOver); linkLossCalc = new CoLinkLossCalc(m_Group.RxSensitivity, m_Group.TrafficTerminal, m_Group.TrafficService, m_Group.Shadow, m_Group.IndoorCoverage, m_Group.CoverageProb); }
/// <summary> /// 初始化链路损耗计算器 /// </summary> private void InitLinkLossCalc() { m_UMTSLinkLossCalc = new CoLinkLossCalc(m_Group.CoUMTSGroup.Sensitivity, m_Group.CoUMTSGroup.Terminal, m_Group.CoUMTSGroup.Service, m_Group.CoCovUIParam.Shadow, m_Group.CoCovUIParam.IndoorCoverage, m_Group.CoCovUIParam.CoverageProb); m_TDLinkLossCalc = new CoLinkLossCalc(m_Group.CoTDSCDMAGroup.Sensitivity, m_Group.CoTDSCDMAGroup.Terminal, m_Group.CoTDSCDMAGroup.Service, m_Group.CoCovUIParam.Shadow, m_Group.CoCovUIParam.IndoorCoverage, m_Group.CoCovUIParam.CoverageProb); m_GSMLinkLossCalc = new CoLinkLossCalc(m_Group.CoGSMGroup.Sensitivity, m_Group.CoGSMGroup.Terminal, m_Group.CoGSMGroup.Service, m_Group.CoCovUIParam.Shadow, m_Group.CoCovUIParam.IndoorCoverage, m_Group.CoCovUIParam.CoverageProb); m_LTELinkLossCalc = new CoLinkLossCalc(m_Group.CoLTEGroup.Sensitivity, m_Group.CoLTEGroup.Terminal, m_Group.CoLTEGroup.Service, m_Group.CoCovUIParam.Shadow, m_Group.CoCovUIParam.IndoorCoverage, m_Group.CoCovUIParam.CoverageProb); }
private void GetDataFromContext(Context context) { appContext = (IBaseService)context[ContextKeys.ApplicationContext]; IProjectManager pm = ServiceHelper.Lookup<IProjectManager>(appContext); m_PredictionGroup = (UMTSPredictionGroup)context[ContextKeys.Group]; m_TFMatrix = (TrueFalseMatrix)context[ContextKeys.TFMatrix]; m_CellList = (List<IACell>)context[ContextKeys.CellList]; m_BestCellIDMatrix = (ValueMatrixShort)context[ContextKeys.UmtsBestServerCellID]; m_BestServerRSCPMatrix = (ValueMatrixShort)context[ContextKeys.UmtsBestServerRSCP]; m_DLDCHInterfMatrix = (ValueMatrixDouble)context[ContextKeys.UmtsDLInterf]; m_BinMapCellsDic = (Dictionary<int, List<short>>)context[ContextKeys.UmtsBinMapCellDic]; m_ProjectPath = pm.CurrentProjectLossPath; m_UmtsTerminal = (UMTSTerminal)m_PredictionGroup.TrafficTerminal.GetNetWorkTerminal(NetWorkType.UMTS); linkLossCalc = new CoLinkLossCalc(m_PredictionGroup.RxSensitivity, m_PredictionGroup.TrafficTerminal, m_PredictionGroup.TrafficService, m_PredictionGroup.IsShadow, m_PredictionGroup.IsIndoorCoverage, m_PredictionGroup.CoverageProb); m_TchDLRate = UMTSPredicCommonCalc.GetDlBitRate(m_PredictionGroup); m_TchTxPower = UMTSPredicCommonCalc.GetTchPower(m_PredictionGroup); }
private void InitialData(GSMPredicGroup group, TrueFalseMatrix tFMatrix) { string absolutePath = ResultFilePath.CreateFilePath(m_ProjectPath, group.Name, group.Region.Name, GSMPredictionStudyType.ULServiceCIR.ToString()); string relativePath = ResultFilePath.CreateRelativePath(group.Name, group.Region.Name, GSMPredictionStudyType.ULServiceCIR.ToString()); ShortResultStruct srs = ShortResultStruct.DefaultMin; m_GSMULServiceCIR = ValueMatrixAssist.GenerateByTrueFalseMatrix(tFMatrix, absolutePath, relativePath, srs); linkLossCalc = new CoLinkLossCalc(group.RxSensitivity, group.TrafficTerminal, group.TrafficService, group.Shadow, group.IndoorCoverage, group.CoverageProb); }
/// <summary> /// 从context里面取数据 /// </summary> /// <param name="context"></param> private void GetValueFromContext(Context context) { m_TFMatrix = (TrueFalseMatrix)context[ContextKeys.TFMatrix]; m_tdPredicGroup = (TDPredictionGroup)context[ContextKeys.Group]; m_BestServerCellIDMatrix = (ValueMatrixShort)context[ContextKeys.TDBestServerCellID]; m_CellList = (List<IACell>)context[ContextKeys.CellList]; m_appContext = (IBaseService)context[ContextKeys.ApplicationContext]; m_projectManager = ServiceHelper.Lookup<IProjectManager>(m_appContext); m_TDTerminal = (TDTerminal)m_tdPredicGroup.TrafficTerminal.GetNetWorkTerminal(NetWorkType.TDSCDMA); List<Transceiver> trans = (List<Transceiver>)context[ContextKeys.TranceiverList]; InterfParameter interfPara = new InterfParameter(); interfPara.InterfTable = TrafficAdaptorMgr.Instance.TableDIC; m_IInterf = (IInterf)interfPara; m_linkLossCalc = new CoLinkLossCalc(m_tdPredicGroup.RxSensitivity, m_tdPredicGroup.TrafficTerminal, m_tdPredicGroup.TrafficService, m_tdPredicGroup.Shadow, m_tdPredicGroup.IndoorCoverage, m_tdPredicGroup.CoverageProb); InitialHopDic(trans); }
/// <summary> /// 从Context中获取本case所需的指标 /// </summary> /// <param name="context"></param> private void GetDataFromContext(Context context) { tfMatrix = (TrueFalseMatrix)context[ContextKeys.TFMatrix]; m_BestServerCellIDMatrix = (ValueMatrixShort)context[ContextKeys.UmtsBestServerCellID]; m_PilotCHInterfMatrix = (ValueMatrixDouble)context[ContextKeys.UmtsDLInterf]; m_BestServerRSCPMatrix = (ValueMatrixShort)context[ContextKeys.UmtsBestServerRSCP]; m_cells = (List<IACell>)context[ContextKeys.CellList]; m_predictionGroup = (UMTSPredictionGroup)context[ContextKeys.Group]; appContext = (IBaseService)context[ContextKeys.ApplicationContext]; IProjectManager projectManager = ServiceHelper.Lookup<IProjectManager>(appContext); m_ProjectPath = projectManager.CurrentProjectLossPath; linkLossCalc = new CoLinkLossCalc(m_predictionGroup.RxSensitivity, m_predictionGroup.TrafficTerminal, m_predictionGroup.TrafficService, m_predictionGroup.IsShadow, m_predictionGroup.IsIndoorCoverage, m_predictionGroup.CoverageProb); m_UMTSTerminal = (UMTSTerminal)m_predictionGroup.TrafficTerminal.GetNetWorkTerminal(NetWorkType.UMTS); }
private void GetDataFromContext(Context context) { m_bestServerRSCP = (ValueMatrixShort)context[ContextKeys.UmtsBestServerRSCP]; m_bestServerCellID = (ValueMatrixShort)context[ContextKeys.UmtsBestServerCellID]; m_pg = (UMTSPredictionGroup)context[ContextKeys.Group]; m_cells = (List<IACell>)context[ContextKeys.CellList]; tfMatrix = (TrueFalseMatrix)context[ContextKeys.TFMatrix]; IBaseService appContext = (IBaseService)context[ContextKeys.ApplicationContext]; IProjectManager projectManager = ServiceHelper.Lookup<IProjectManager>(appContext); m_ProjectPath = projectManager.CurrentProjectLossPath; linkLossCalc = new CoLinkLossCalc(m_pg.RxSensitivity, m_pg.TrafficTerminal, m_pg.TrafficService, m_pg.IsShadow, m_pg.IsIndoorCoverage, m_pg.CoverageProb); }
public void GetLinkLossTest() { AntennaEntity antEntity = new AntennaEntity(); antEntity.Gain = 8f; AntConfig1.OutdoorAntenna = antEntity; index = 8; RxSensitivity = -110f; Shadow = true; IndoorCov = true; CovProb = 0.75; CoLinkLossCalc ColinkCalc = new CoLinkLossCalc(RxSensitivity, termianl, PsService, Shadow, IndoorCov, CovProb); float[] linklossValue1 = ColinkCalc.GetLinkLoss(index, matrix, cell); float[] linklossValue2 = new float[2] { 9f, 11f }; Assert.AreEqual(linklossValue2, linklossValue1); }
/// <summary> /// 读取Context里面的数据,写入要计算的值 /// </summary> /// <param name="context"></param> public void InitialCase(Context context) { m_group = (CoPredicGroup)context[ContextKeys.Group]; m_appContext = (IBaseService)context[ContextKeys.ApplicationContext]; m_ProjectManager = ServiceHelper.Lookup<IProjectManager>(m_appContext); m_ProjectPath = m_ProjectManager.CurrentProjectLossPath; srs = new ShortResultStruct(short.MinValue, short.MaxValue, short.MinValue); if (IsGSMExist()) { m_GSMLinkLossCalc = new CoLinkLossCalc(m_group.CoGSMGroup.Sensitivity, m_group.CoGSMGroup.Terminal, m_group.CoGSMGroup.Service, m_group.CoCovUIParam.Shadow, m_group.CoCovUIParam.IndoorCoverage, m_group.CoCovUIParam.CoverageProb); } if (IsTDExist()) { m_TDLinkLossCalc = new CoLinkLossCalc(m_group.CoTDSCDMAGroup.Sensitivity, m_group.CoTDSCDMAGroup.Terminal, m_group.CoTDSCDMAGroup.Service, m_group.CoCovUIParam.Shadow, m_group.CoCovUIParam.IndoorCoverage, m_group.CoCovUIParam.CoverageProb); } if (IsUMTSExist()) { m_UMTSLinkLossCalc = new CoLinkLossCalc(m_group.CoUMTSGroup.Sensitivity, m_group.CoUMTSGroup.Terminal, m_group.CoUMTSGroup.Service, m_group.CoCovUIParam.Shadow, m_group.CoCovUIParam.IndoorCoverage, m_group.CoCovUIParam.CoverageProb); } if (IsLTEExit()) { m_LTELinkLossCalc = new CoLinkLossCalc(m_group.CoLTEGroup.Sensitivity, m_group.CoLTEGroup.Terminal, m_group.CoLTEGroup.Service, m_group.CoCovUIParam.Shadow, m_group.CoCovUIParam.IndoorCoverage, m_group.CoCovUIParam.CoverageProb); } InitMatrix(context); AddDataToContext(context); InitCovBySingnal(context); }