コード例 #1
0
ファイル: PCCPCHSINRCaseTest.cs プロジェクト: xiaoyj/Space
        /// <summary>
        /// 初始化计算中需要的指标以及存储路径
        /// </summary>
        /// <param name="tfMatrix"></param>
        /// <param name="tdGroup"></param>
        private void InitMatrix(TrueFalseMatrix tfMatrix, TDPredictionGroup tdGroup)
        {
            IProjectManager projectMgr = ServiceHelper.Lookup<MockIProjectManager>(ProjectSingleton.CurrentProject.AppContext);

            string absolutePathID = ResultFilePath.CreateFilePath(projectMgr.CurrentProjectLossPath, tdGroup.Name, tdGroup.Region.Name, ContextKeys.TDBestServerCellID);
            string relativePathID = ResultFilePath.CreateRelativePath(tdGroup.Name, tdGroup.Region.Name, ContextKeys.TDBestServerCellID);

            string absolutePathRSCP = ResultFilePath.CreateFilePath(projectMgr.CurrentProjectLossPath, tdGroup.Name, tdGroup.Region.Name, ContextKeys.PCCPCHRSCP);
            string relativePathRSCP = ResultFilePath.CreateRelativePath(tdGroup.Name, tdGroup.Region.Name, ContextKeys.PCCPCHRSCP);

            string absolutePathInterf = ResultFilePath.CreateFilePath(projectMgr.CurrentProjectLossPath, tdGroup.Name, tdGroup.Region.Name, ContextKeys.PCCPCHInterf);
            string relativePathInterf = ResultFilePath.CreateRelativePath(tdGroup.Name, tdGroup.Region.Name, ContextKeys.PCCPCHInterf);

            ShortResultStruct srsID = ShortResultStruct.DefaultMax;
            ShortResultStruct srsRSCP = ShortResultStruct.DefaultMin;
            ShortResultStruct srsInterf = ShortResultStruct.DefaultMin;

            m_BestServerCellID = ValueMatrixAssist.GenerateByTrueFalseMatrix(tfMatrix, absolutePathID, relativePathID, srsID);
            m_PCCPCHRSCP = ValueMatrixAssist.GenerateByTrueFalseMatrix(tfMatrix, absolutePathRSCP, relativePathRSCP, srsRSCP);
            m_PCCPCHInterf = new ValueMatrixDouble(absolutePathInterf, relativePathInterf, tfMatrix.RowCount, tfMatrix.ColCount);
            m_PCCPCHInterf.SetValue(0, 0, double.NegativeInfinity);
        }
コード例 #2
0
ファイル: DLInterfCalc.cs プロジェクト: xiaoyj/Space
 private void AddOtherSystemInterfIntoContext(Context context)
 {
     string absolutePath = ResultFilePath.CreateFilePath(m_projectManager.CurrentProjectLossPath,
          m_tdPredicGroup.Name, m_tdPredicGroup.Region.Name, ContextKeys.OtherSystemInterf);
     string relativePath = ResultFilePath.CreateRelativePath(m_tdPredicGroup.Name,
         m_tdPredicGroup.Region.Name, ContextKeys.OtherSystemInterf);
     m_OtherSystemInterfMatrix = new ValueMatrixDouble(absolutePath, relativePath,
        m_TFMatrix.RowCount, m_TFMatrix.ColCount);
     m_OtherSystemInterfMatrix.SetValue(0, 0, double.NegativeInfinity);
     context.Add(ContextKeys.OtherSystemInterf, m_OtherSystemInterfMatrix);
 }
コード例 #3
0
ファイル: CPICHSINRCaseFixture.cs プロジェクト: xiaoyj/Space
        public void MyTestInitialize()
        {
            m_Index = 0;
            m_Name = "CPICHSINR";
            m_Context = new Huawei.UNet.Prediction.CalculateInterface.Context();
            m_Case = new CPICHSINRCase();
            cellList = new List<IACell>();

            TrueFalseMatrix matrix = new TrueFalseMatrix(4, 4, 0.0, 200, 50, true);
            UMTSPredictionGroup group = new UMTSPredictionGroup();
            group.Region = MockRegion.CreateRegion();
            group.Name = "UMTSPredictionGroup";
            UnionCsService service = new UnionCsService();
            Service umtsService = new UMTSService();
            service.CSServiceDic.Add(NetWorkType.UMTS, umtsService);
            group.CsService = service;
            group.TrafficTerminal = new Terminal();
            List<NetworkTerminal> terminalList = new List<NetworkTerminal>();
            UMTSTerminal tempTerminal = new UMTSTerminal();
            tempTerminal.NoiseFigure = 2;
            tempTerminal.NetType = NetWorkType.UMTS;
            terminalList.Add(tempTerminal);
            group.TrafficTerminal.NetTerminalList = terminalList;

            for (int i = 0; i < 3; i++)
            {
                IACell cell = new UMTSCell();
                cellList.Add(cell);
            }
            double[] x = new double[3] { 50, 100, 150 };
            double[] y = new double[3] { 50, 100, 50 };
            MockCellList.CreateCellList(cellList, x, y);

            IACell m_cell = cellList[1];
            m_cell.FreqBand.BandWidth = 3.84f;

            LinkLossAssist.Init();
            string absolutePathID = ResultFilePath.CreateFilePath(@"..\bin\debug\", group.Name,
                group.Region.Name, UMTSStudyName.Best_Server);
            string relativePathID = ResultFilePath.CreateRelativePath(group.Name,
                group.Region.Name, UMTSStudyName.Best_Server);
            string absolutePathRSCP = ResultFilePath.CreateFilePath(@"..\bin\debug\", group.Name,
                group.Region.Name, UMTSStudyName.CPICH_RSCP);
            string relativePathRSCP = ResultFilePath.CreateRelativePath(group.Name,
                group.Region.Name, UMTSStudyName.CPICH_RSCP);
            string absolutePathdlInterf = ResultFilePath.CreateFilePath(@"..\bin\debug\", group.Name,
                group.Region.Name, ContextKeys.UmtsDLInterf);
            string relativePathdlInterf = ResultFilePath.CreateRelativePath(group.Name,
                group.Region.Name, ContextKeys.UmtsDLInterf);
            string absolutePathUERSSI = ResultFilePath.CreateFilePath(@"..\bin\debug\", group.Name,
                group.Region.Name, UMTSStudyName.UE_RSSI);
            string relativePathUERSSI = ResultFilePath.CreateRelativePath(group.Name,
                group.Region.Name, UMTSStudyName.UE_RSSI);
            bestServerID = new ValueMatrixShort(absolutePathID, relativePathID, 4, 4);
            bestServerRSCP = new ValueMatrixShort(absolutePathRSCP, relativePathRSCP, 4, 4);
            dlInterf = new ValueMatrixDouble(absolutePathdlInterf, relativePathdlInterf, 4, 4);
            ueRSSI = new ValueMatrixShort(absolutePathUERSSI, relativePathUERSSI, 4, 4);
            
            bestServerRSCP[0] = 4200;
            dlInterf[0] = -100;

            m_Context.Add(ContextKeys.CellList, cellList);
            m_Context.Add(ContextKeys.CurrentCalcCell, m_cell);
            m_Context.Add(ContextKeys.Group, group);
            m_Context.Add(ContextKeys.TFMatrix, matrix);
            m_Context.Add(ContextKeys.ApplicationContext, ProjectSingleton.CurrentProject.AppContext);
            m_Context.Add(ContextKeys.UmtsBestServerCellID, bestServerID);
            m_Context.Add(ContextKeys.UmtsBestServerRSCP, bestServerRSCP);  
            m_Context.Add(ContextKeys.UmtsDLInterf, dlInterf);
            m_Context.Add(ContextKeys.UmtsUERSSI, ueRSSI);
        }
コード例 #4
0
ファイル: DLPeakThroughputCase.cs プロジェクト: xiaoyj/Space
 /// <summary>
 /// 从context里面提取数据对象
 /// </summary>
 /// <param name="context"></param>
 private void GetValueFromContext(Context context)
 {
     m_TdPredicGroup = (TDPredictionGroup)context[ContextKeys.Group];
     m_TFMatrix = (TrueFalseMatrix)context[ContextKeys.TFMatrix];
     m_AppContext = (IBaseService)context[ContextKeys.ApplicationContext];
     m_ProjectManager = ServiceHelper.Lookup<IProjectManager>(m_AppContext);
     m_ITrafficService = ServiceHelper.Lookup<ITrafficService>(m_AppContext);
     HSDPABearerManagement tdHSDPAManagement =
       m_ITrafficService.LookupManager(typeof(HSDPABearerManagement)) as HSDPABearerManagement;
     m_TdHSDPAList.AddRange(tdHSDPAManagement.TdHsdpaBearerList);
     m_CellList = (List<IACell>)context[ContextKeys.CellList];
     m_BestServerCellID = (ValueMatrixShort)context[ContextKeys.TDBestServerCellID];
     m_DLInterf = (ValueMatrixDouble)context[ContextKeys.DLDCHInterf];
     m_Name = m_TdPredicGroup.Name;
     m_SpaceDivMultipleGain = m_TdPredicGroup.tdUIParam.SpaceDivMultipleGain;
     m_MaxSpaceDivMultipleGain = m_TdPredicGroup.tdUIParam.MaxSpaceDivMultipleGain;
     m_TdTermial = (TDTerminal)m_TdPredicGroup.TrafficTerminal.GetNetWorkTerminal(NetWorkType.TDSCDMA);
 }
コード例 #5
0
ファイル: PilotPollutionCase.cs プロジェクト: xiaoyj/Space
 /// <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);
 }
コード例 #6
0
ファイル: UERSSICaseFixture.cs プロジェクト: xiaoyj/Space
        public void MyTestInitialize()
        {
            m_Index = 0;
            m_Name = "UERSSI";
            m_Context = new Huawei.UNet.Prediction.CalculateInterface.Context();
            m_Case = new UERSSICase();
            cellList = new List<IACell>();
            TrueFalseMatrix matrix = new TrueFalseMatrix(4, 4, 0.0, 200, 50, true);
            LinkLossAssist.Init();

            UMTSPredictionGroup group = new UMTSPredictionGroup();
            group.Region = MockRegion.CreateRegion();
            group.Name = "UMTSPredictionGroup";
            UnionCsService csService = new UnionCsService();
            UMTSService umtsService = new UMTSService();
            umtsService.UmtsR99Bearer = new UMTSR99Bearer();
            umtsService.UmtsR99Bearer.PtchMax = 21;
            umtsService.UmtsR99Bearer.ULNominalRate = 3.4f;
            csService.CSServiceDic.Add(NetWorkType.UMTS, umtsService);
            group.CsService = csService;
            group.TrafficTerminal = new Terminal();
            List<NetworkTerminal> terminalList = new List<NetworkTerminal>();
            UMTSTerminal tempTerminal = new UMTSTerminal();
            tempTerminal.NoiseFigure = 2;
            tempTerminal.NetType = NetWorkType.UMTS;
            terminalList.Add(tempTerminal);
            group.TrafficTerminal.NetTerminalList = terminalList;

            //terminal  = (UMTSTerminal)group.TrafficTerminal.GetNetWorkTerminal(NetWorkType.UMTS);
            //terminal.NoiseFigure = 1;

            IProjectManager projectMgr = ServiceHelper.Lookup<MockIProjectManager>(ProjectSingleton.CurrentProject.AppContext);
            string absolutePathID = ResultFilePath.CreateFilePath(projectMgr.CurrentProjectLossPath, group.Name, group.Region.Name, ContextKeys.UmtsBestServerCellID);
            string relativePathID = ResultFilePath.CreateRelativePath(group.Name, group.Region.Name, ContextKeys.UmtsBestServerCellID);
            string absolutePathRSCP = ResultFilePath.CreateFilePath(projectMgr.CurrentProjectLossPath, group.Name, group.Region.Name, ContextKeys.UmtsBestServerRSCP);
            string relativePathRSCP = ResultFilePath.CreateRelativePath(group.Name, group.Region.Name, ContextKeys.UmtsBestServerRSCP);
            string absolutePathDLInterf = ResultFilePath.CreateFilePath(projectMgr.CurrentProjectLossPath, group.Name, group.Region.Name, ContextKeys.UmtsDLInterf);
            string relativePathDLInterf = ResultFilePath.CreateRelativePath(group.Name, group.Region.Name, ContextKeys.UmtsDLInterf);
            ShortResultStruct srsID = ShortResultStruct.DefaultMin;
            ShortResultStruct srsRSCP = ShortResultStruct.DefaultMax;
            ShortResultStruct srsDLInterf = ShortResultStruct.DefaultMax;

            m_BestServerID = ValueMatrixAssist.GenerateByTrueFalseMatrix(matrix, absolutePathID, relativePathID, srsID);
            m_BestServerRSCP = ValueMatrixAssist.GenerateByTrueFalseMatrix(matrix, absolutePathRSCP, relativePathRSCP, srsRSCP);
            m_umtsDLInterf = new ValueMatrixDouble(absolutePathDLInterf, relativePathDLInterf, matrix.RowCount, matrix.ColCount);

            for (int i = 0; i < 3; i++)
            {
                IACell cell = new UMTSCell();
                cellList.Add(cell);
            }
            double[] x = new double[3] { 50, 100, 150 };
            double[] y = new double[3] { 50, 100, 50 };
            MockCellList.CreateCellList(cellList, x, y);

            m_Context.Add(ContextKeys.Group, group);
            m_Context.Add(ContextKeys.TFMatrix, matrix);
            m_Context.Add(ContextKeys.ApplicationContext, ProjectSingleton.CurrentProject.AppContext);
            m_Context.Add(ContextKeys.UmtsBestServerCellID, m_BestServerID);
            m_Context.Add(ContextKeys.UmtsBestServerRSCP, m_BestServerRSCP);
            m_Context.Add(ContextKeys.UmtsDLInterf, m_umtsDLInterf);

            m_Context.Add(ContextKeys.CellList, cellList);
            m_Case.Name = m_Name;
            m_Case.InitialCase(m_Context);

        }
コード例 #7
0
ファイル: InterfereCalcCase.cs プロジェクト: xiaoyj/Space
 /// <summary>
 /// 从context里取得需要的数据信息
 /// </summary>
 /// <param name="context"></param>
 private void GetValueFromContext(Context context)
 {
     m_Context = context;
     m_CovBySignalLevel = (ValueMatrixShort)context[ContextKeys.CovBySignalLevel];
     m_Group = (CoPredicGroup)context[ContextKeys.Group];
     //获得CellID
     m_GSMBestServerID = (ValueMatrixDouble)context[ContextKeys.CoGSMBestServerID];
     m_UMTSBestServerID = (ValueMatrixDouble)context[ContextKeys.CoUMTSBestServerID];
     m_TDBestServerID = (ValueMatrixDouble)context[ContextKeys.CoTDBestServerID];
     m_LTEBestServerID = (ValueMatrixDouble)context[ContextKeys.CoLTEBestServerID];
     //获得Cell列表
     m_CellList = (List<IACell>)context[ContextKeys.CellList];
     m_trans = (List<Transceiver>)context[ContextKeys.TranceiverList];
     InterfParameter interfPara = new InterfParameter();
     interfPara.InterfTable = TrafficAdaptorMgr.Instance.TableDIC;
     m_IInterf = (IInterf)interfPara;
 }
コード例 #8
0
ファイル: CovByCir.cs プロジェクト: xiaoyj/Space
        /// <summary>
        /// 计算当前点的覆盖类型
        /// </summary>
        /// <param name="rscp">最佳接收功率</param>
        /// <param name="cir">CIR</param>
        /// <param name="interf">本系统干扰</param>
        /// <param name="otherInterf">异系统干扰</param>
        /// <param name="cirGate">干扰门限</param>
        /// <param name="type">覆盖类型</param>
        private void CalcCellCir(ValueMatrixShort rscp, ValueMatrixDouble cir,ValueMatrixDouble interf, float cirGate, CoverageType type)
        {

            if (rscp[m_Index] == rscp.InvalidValue)
                return;

            double tempCir = cir[m_Index];
            double curCir = Commom.CalcCir(UnitTrans.ShortToDouble(rscp[m_Index]), interf[m_Index]);         
                       
            //if (curCir > tempCir && curCir > cirGate)
            if (curCir > cirGate)
            {
                cir[m_Index] = curCir;
                m_CovByCir[m_Index] = Commom.XorConvert(Convert.ToInt16(type), m_CovByCir[m_Index]);
            }

        }
コード例 #9
0
ファイル: CovByCir.cs プロジェクト: xiaoyj/Space
        /// <summary>
        /// 从context里获取数据
        /// </summary>
        /// <param name="context"></param>
        private void GetDataFromContext(Context context)
        {
            m_Group = (CoPredicGroup)context[ContextKeys.Group];

            m_appContext = (IBaseService)context[ContextKeys.ApplicationContext];
            IProjectManager projectManager = ServiceHelper.Lookup<IProjectManager>(m_appContext);
            m_ProjectPath = projectManager.CurrentProjectLossPath;
            //获得Cell列表
            m_CellList = (List<IACell>)context[ContextKeys.CellList];
            //获得接收功率矩阵
            m_GSMBestServerRSCP = (ValueMatrixShort)context[ContextKeys.CoGSMBestServerRSCP];
            m_UMTSBestServerRSCP = (ValueMatrixShort)context[ContextKeys.CoUMTSBestServerRSCP];
            m_TDBestServerRSCP = (ValueMatrixShort)context[ContextKeys.CoTDSCDMABestServerRSCP];
            m_LTEBestServerRSCP = (ValueMatrixShort)context[ContextKeys.CoLTEBestServerRSCP];

            m_GSMBestServerID = (ValueMatrixDouble)context[ContextKeys.CoGSMBestServerID];
            m_UMTSBestServerID = (ValueMatrixDouble)context[ContextKeys.CoUMTSBestServerID];
            m_TDBestServerID = (ValueMatrixDouble)context[ContextKeys.CoTDBestServerID];
            m_LTEBestServerID = (ValueMatrixDouble)context[ContextKeys.CoLTEBestServerID];
            //获得干扰矩阵
            m_GSMInterf = (ValueMatrixDouble)context[ContextKeys.CoGSMInterf];
            m_UMTSInterf = (ValueMatrixDouble)context[ContextKeys.CoUMTSInterf];
            m_TDInterf = (ValueMatrixDouble)context[ContextKeys.CoTDInterf];
            m_LTEInterf = (ValueMatrixDouble)context[ContextKeys.CoLTEInterf];
            m_UMTSTerminal = (UMTSTerminal)m_Group.CoUMTSGroup.Terminal.GetNetWorkTerminal(NetWorkType.UMTS);
            m_TDTerminal = (TDTerminal)m_Group.CoTDSCDMAGroup.Terminal.GetNetWorkTerminal(NetWorkType.TDSCDMA);
            m_LTETerminal = (LTETerminal)m_Group.CoLTEGroup.Terminal.GetNetWorkTerminal(NetWorkType.LTE);
        }
コード例 #10
0
ファイル: CovByCir.cs プロジェクト: xiaoyj/Space
        private void CalcUMTSCellCir(ValueMatrixDouble umtsBestServerID, ValueMatrixShort rscp, ValueMatrixDouble cir, ValueMatrixDouble interfMatrix, float cirGate, CoverageType type)
        {
            if (rscp[m_Index] == rscp.InvalidValue || umtsBestServerID[m_Index] == umtsBestServerID.DefaultValue)
                return;
            UMTSCell bestCell = (UMTSCell)SearchAssist.GetCellbyID(Convert.ToInt16(umtsBestServerID[m_Index]), m_CellList);
            ClutterParamsResult clutterparam = COPredicCommonCalc.ConfingClutter(bestCell.Parent, m_appContext);
            float modelShadowMargin = COPredicCommonCalc.GetModelShadowMargin(clutterparam, m_Group.CoCovUIParam.Shadow, m_Group.CoCovUIParam.CoverageProb);
            float ciShadowMargin = COPredicCommonCalc.GetCIShadowMargin(clutterparam, m_Group.CoCovUIParam.Shadow, m_Group.CoCovUIParam.CoverageProb);
            double interf = CalcUMTSBinInterf(rscp, bestCell, modelShadowMargin, interfMatrix);
            double tempCir = cir[m_Index];
            double curCir = Commom.CalcCir(UnitTrans.ShortToDouble(rscp[m_Index]), interf) + modelShadowMargin - ciShadowMargin;
            //if (curCir > tempCir && curCir > cirGate)
            if (curCir > cirGate)
            {
                cir[m_Index] = curCir;
                m_CovByCir[m_Index] = Commom.XorConvert(Convert.ToInt16(type), m_CovByCir[m_Index]);
            }

        }
コード例 #11
0
ファイル: CovByCir.cs プロジェクト: xiaoyj/Space
 private double CalcUMTSBinInterf(ValueMatrixShort rscp, UMTSCell bestCell, float modelShadowMargin,ValueMatrixDouble interfMatrix)
 {
     double linkLoss = bestCell.PilotPower - UnitTrans.ShortToDouble(rscp[m_Index]);
     double interf = UnitTrans.mwTodBm(UnitTrans.dBmTomw(bestCell.TotalPower) - UnitTrans.dBmTomw(bestCell.PilotPower)) - linkLoss;
     double noisePower = UnitTrans.dBmTomw(COPredicCommonCalc.CalcNoisePower(m_Group.CoCovUIParam.ThermalNoise, bestCell.FreqBand.BandWidth, m_UMTSTerminal.NoiseFigure));
     return UnitTrans.mwTodBm((UnitTrans.dBmTomw(interf) + UnitTrans.dBmTomw(interfMatrix[m_Index])) * UnitTrans.dBto(modelShadowMargin) + noisePower);
 }
コード例 #12
0
ファイル: CovByCir.cs プロジェクト: xiaoyj/Space
 private double CalcTDBinInterf(ValueMatrixShort rscp, TDSCDMACarrier bestCell, float modelShadowMargin, ValueMatrixDouble interfMatrix)
 {
     double linkLoss = bestCell.PCCPCHPower - UnitTrans.ShortToDouble(rscp[m_Index]);
     double txPower = UnitTrans.dBmTomw(bestCell.SCCPCHPower) + UnitTrans.dBmTomw(bestCell.PICHPower);
     double interf = UnitTrans.mwTodBm(txPower * m_Group.CoCovUIParam.OtherCommonCHFactor * (1 - bestCell.OrthCoef)) - linkLoss;
     double noisePower = COPredicCommonCalc.CalcNoisePower(bestCell.ThermalNoiseDensity, bestCell.FreqBand.BandWidth, m_TDTerminal.NoiseFigure);
     return UnitTrans.mwTodBm((UnitTrans.dBmTomw(interfMatrix[m_Index]) + UnitTrans.dBmTomw(interf)) * UnitTrans.dBto(modelShadowMargin) + UnitTrans.dBmTomw(noisePower));
     //interf*modelShadowMargin代表同小区干扰
 }
コード例 #13
0
ファイル: CovByCir.cs プロジェクト: xiaoyj/Space
 private double CalcLTEBinInterf(ValueMatrixShort rscp, LTECell bestCell, float modelShadowMargin, ValueMatrixDouble interfMatrix)
 {
     double noisePower = COPredicCommonCalc.CalcNoisePower(m_LteCellEx.TerminalNoisePower, bestCell.FreqBand.BandWidth, m_LTETerminal.NoiseFigure);
     return UnitTrans.mwTodBm(UnitTrans.dBmTomw(interfMatrix[m_Index]) + UnitTrans.dBmTomw(noisePower));
     //这个地方计算有误,新框架里面,取不到lte的热噪声密度
 }
コード例 #14
0
ファイル: CoBestServerCase.cs プロジェクト: xiaoyj/Space
        /// <summary>
        /// 初始化存储最佳接收功率和最佳服务小区ID的矩阵
        /// </summary>
        /// <param name="context"></param>
        private void InitMatrix(Context context)
        {
            m_TFMatrix = (TrueFalseMatrix)context[ContextKeys.TFMatrix];

            m_GSMBestServerRSCP = Commom.InitValueMatrixShort(CoPredictionStudyType.GSMBestServerRSCP, m_ProjectPath, m_group, ContextKeys.CoGSMBestServerRSCP, m_TFMatrix);
            m_TDSCDMABestServerRSCP = Commom.InitValueMatrixShort(CoPredictionStudyType.TDSCDMABestServerRSCP, m_ProjectPath, m_group, ContextKeys.CoTDSCDMABestServerRSCP, m_TFMatrix);
            m_UMTSBestServerRSCP = Commom.InitValueMatrixShort(CoPredictionStudyType.UMTSBestServerRSCP, m_ProjectPath, m_group, ContextKeys.CoUMTSBestServerRSCP, m_TFMatrix);
            m_LTEBestServerRSCP = Commom.InitValueMatrixShort(CoPredictionStudyType.LTEBestServerRSCP, m_ProjectPath, m_group, ContextKeys.CoLTEBestServerRSCP, m_TFMatrix);
            m_GSMBestServerID = Commom.InitValueMatrix(m_TFMatrix, m_ProjectPath, ContextKeys.CoGSMBestServerID, m_group);
            m_TDSCDMABestServerID = Commom.InitValueMatrix(m_TFMatrix, m_ProjectPath, ContextKeys.CoTDBestServerID, m_group);
            m_UMTSBestServerID = Commom.InitValueMatrix(m_TFMatrix, m_ProjectPath, ContextKeys.CoUMTSBestServerID, m_group);
            m_LTEBestServerID = Commom.InitValueMatrix(m_TFMatrix, m_ProjectPath, ContextKeys.CoLTEBestServerID, m_group);
        }
コード例 #15
0
ファイル: GeometryCase.cs プロジェクト: xiaoyj/Space
 /// <summary>
 /// 从Context中获取本case所需的指标
 /// </summary>
 /// <param name="context"></param>
 private void GetDataFromContext(Context context)
 {
     m_Group = (GSMPredicGroup)context[ContextKeys.Group];
     m_TFMatrix = (TrueFalseMatrix)context[ContextKeys.TFMatrix];
     m_AppContext = (IBaseService)context[ContextKeys.ApplicationContext];
     m_ProjectManager = ServiceHelper.Lookup<IProjectManager>(m_AppContext);
     m_ProjectPath = m_ProjectManager.CurrentProjectLossPath;
     m_IACellList = (List<IACell>)context[ContextKeys.CellList];
     m_GSMBestServerID = (ValueMatrixShort)context[ContextKeys.GSMBestServerID];
     m_GSMBCCHRP = (ValueMatrixShort)context[ContextKeys.GSMBCCHRP];
     m_BCCHRPTotal = (ValueMatrixDouble)context[ContextKeys.GSMBCCHRPTotal];
 }
コード例 #16
0
ファイル: CovByCir.cs プロジェクト: xiaoyj/Space
        /// <summary>
        /// 将本Case计算出的数据存储到context中
        /// </summary>
        /// <param name="context"></param>
        private void AddDataToContext(Context context)
        {
            m_TFMatrix = (TrueFalseMatrix)context[ContextKeys.TFMatrix];
           
            m_GSMCir = Commom.InitValueMatrix(m_TFMatrix, m_ProjectPath, ContextKeys.CoGSMCir,m_Group);
            m_UMTSCir = Commom.InitValueMatrix(m_TFMatrix, m_ProjectPath, ContextKeys.CoUMTSCir, m_Group);
            m_TDSCDMACir = Commom.InitValueMatrix(m_TFMatrix, m_ProjectPath, ContextKeys.CoTDSCDMACir, m_Group);
            m_LTECir = Commom.InitValueMatrix(m_TFMatrix, m_ProjectPath, ContextKeys.CoLTECir, m_Group);

            context.Add(ContextKeys.CoGSMCir, m_GSMCir);
            context.Add(ContextKeys.CoUMTSCir, m_UMTSCir);
            context.Add(ContextKeys.CoTDSCDMACir, m_TDSCDMACir);
            context.Add(ContextKeys.CoLTECir, m_LTECir);
        }
コード例 #17
0
ファイル: DLDCHSINRTest.cs プロジェクト: xiaoyj/Space
 private void GenerateDLInterfMatrix()
 {
     string absolutePath = ResultFilePath.CreateFilePath(m_projectMgr.CurrentProjectLossPath,
          m_Group.Name, m_Group.Region.Name, ContextKeys.DLDCHInterf);
     string relativePath = ResultFilePath.CreateRelativePath(m_Group.Name,
         m_Group.Region.Name, ContextKeys.DLDCHInterf);
     m_DLInterfMatrix = new ValueMatrixDouble(absolutePath, relativePath,
        m_tfMatrix.RowCount, m_tfMatrix.ColCount);
     m_DLInterfMatrix.SetValue(0, 0, double.NegativeInfinity);
 }
コード例 #18
0
ファイル: HSPDSCHCIRCase.cs プロジェクト: xiaoyj/Space
 /// <summary>
 /// 从Context获取本case所需的指标
 /// </summary>
 /// <param name="context"></param>
 private void GetDataFromContext(Context context)
 {
     m_predictionGroup = (TDPredictionGroup)context[ContextKeys.Group];
     m_tfMatrix = (TrueFalseMatrix)context[ContextKeys.TFMatrix];
     m_appContext = (IBaseService)context[ContextKeys.ApplicationContext];
     m_projectMgr = ServiceHelper.Lookup<IProjectManager>(m_appContext);
     m_cellList = (List<IACell>)context[ContextKeys.CellList];
     m_bestServerCellIDMatrix = (ValueMatrixShort)context[ContextKeys.TDBestServerCellID];
     m_HSPDSCHRSCPMatrix = (ValueMatrixShort)context[ContextKeys.HSPDSCHRSCP];
     m_HSPDSCHInterfMatrix = (ValueMatrixDouble)context[ContextKeys.HSPDSCHInterf];
     m_OtherSystemInterfMatrix = (ValueMatrixDouble)context[ContextKeys.OtherSystemInterf];
     m_tdTermianl = (TDTerminal)m_predictionGroup.TrafficTerminal.GetNetWorkTerminal(NetWorkType.TDSCDMA);
 }
コード例 #19
0
ファイル: DLDPCHSINRCase.cs プロジェクト: xiaoyj/Space
 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);          
 }
コード例 #20
0
ファイル: PCCPCHIntefCalc.cs プロジェクト: xiaoyj/Space
 /// <summary>
 /// 初始化指标的存取矩阵
 /// </summary>
 /// <param name="group"></param>
 /// <param name="tFMatrix"></param>
 private void InitData(TDPredictionGroup pg, TrueFalseMatrix tFMatrix)
 {
     string absolutePath = ResultFilePath.CreateFilePath(m_projectManager.CurrentProjectLossPath,
         pg.Name, pg.Region.Name, ContextKeys.PCCPCHInterf);
     string relativePath = ResultFilePath.CreateRelativePath(pg.Name,
         pg.Region.Name, ContextKeys.PCCPCHInterf);
     m_PCCPCHInterfMatrix = new ValueMatrixDouble(absolutePath, relativePath,
         tFMatrix.RowCount, tFMatrix.ColCount);
     m_PCCPCHInterfMatrix.SetValue(0, 0, double.NegativeInfinity);
 }
コード例 #21
0
ファイル: InterfereCalcCase.cs プロジェクト: xiaoyj/Space
        /// <summary>
        /// 初始化干扰矩阵
        /// </summary>
        /// <param name="context"></param>
        private void InitInterfMatrix(Context context)
        {
            //获得TrueFalse矩阵
            m_TFMatrix = (TrueFalseMatrix)context["TFMatrix"];

            //获取工程路径
            IBaseService m_appContext = (IBaseService)context[ContextKeys.ApplicationContext];
            IProjectManager m_ProjectManager = ServiceHelper.Lookup<IProjectManager>(m_appContext);
            string m_ProjectPath = m_ProjectManager.CurrentProjectLossPath;

            //Interf矩阵的初始化
            m_GSMInterf = Commom.InitValueMatrix(m_TFMatrix, m_ProjectPath, ContextKeys.CoGSMInterf, m_Group);
            m_TDInterf = Commom.InitValueMatrix(m_TFMatrix, m_ProjectPath, ContextKeys.CoTDInterf, m_Group);
            m_UMTSInterf = Commom.InitValueMatrix(m_TFMatrix, m_ProjectPath, ContextKeys.CoUMTSInterf, m_Group);
            m_LTEInterf = Commom.InitValueMatrix(m_TFMatrix, m_ProjectPath, ContextKeys.CoLTEInterf, m_Group);

        }
コード例 #22
0
ファイル: DLDPCHSINRCaseFixture.cs プロジェクト: xiaoyj/Space
        public void MyTestInitialize()
        {
            m_Index = 0;
            m_Name = "DLDPCHSINRCase";
            m_Context = new Huawei.UNet.Prediction.CalculateInterface.Context();
            m_Case = new DLDPCHSINRCase();
            cellList = new List<IACell>();
            TrueFalseMatrix matrix = new TrueFalseMatrix(4, 4, 0.0, 200, 50, true);
            LinkLossAssist.Init();

            #region group 业务 终端 参数
            UMTSPredictionGroup group = new UMTSPredictionGroup();
            group.Region = MockRegion.CreateRegion();
            group.Name = "UMTSPredictionGroup";
            group.UIParam.DLRakeEffiFactor = 0.6f;
            group.UIParam.DLDivGain = 1;
            UnionPsService psService = new UnionPsService();
            UMTSService umtsService = new UMTSService();
            umtsService.UmtsR99Bearer = new UMTSR99Bearer();
            umtsService.UmtsR99Bearer.PtchMax = 21;
            psService.PSServiceDic.Add(NetWorkType.UMTS, umtsService);
            group.PsService = psService;
            group.TrafficTerminal = new Terminal();
            List<NetworkTerminal> terminalList = new List<NetworkTerminal>();
            UMTSTerminal tempTerminal = new UMTSTerminal();
            tempTerminal.NoiseFigure = 2;
            tempTerminal.NetType = NetWorkType.UMTS;
            terminalList.Add(tempTerminal);
            group.TrafficTerminal.NetTerminalList = terminalList;
            #endregion

            #region 文件存储
            IProjectManager projectMgr = ServiceHelper.Lookup<MockIProjectManager>(ProjectSingleton.CurrentProject.AppContext);
            string absolutePathID = ResultFilePath.CreateFilePath(projectMgr.CurrentProjectLossPath, group.Name, group.Region.Name, ContextKeys.UmtsBestServerCellID);
            string relativePathID = ResultFilePath.CreateRelativePath(group.Name, group.Region.Name, ContextKeys.UmtsBestServerCellID);
            string absolutePathInterf = ResultFilePath.CreateFilePath(projectMgr.CurrentProjectLossPath, group.Name, group.Region.Name, ContextKeys.UmtsDLInterf);
            string relativePathInterf = ResultFilePath.CreateRelativePath(group.Name, group.Region.Name, ContextKeys.UmtsDLInterf);
            string absolutePathRSCP = ResultFilePath.CreateFilePath(@"..\bin\debug\", group.Name,group.Region.Name, UMTSStudyName.CPICH_RSCP);
            string relativePathRSCP = ResultFilePath.CreateRelativePath(group.Name,group.Region.Name, UMTSStudyName.CPICH_RSCP);
            ShortResultStruct srsID = ShortResultStruct.DefaultMax;
            ShortResultStruct srsInterf = ShortResultStruct.DefaultMin;
            m_BestServerID = ValueMatrixAssist.GenerateByTrueFalseMatrix(matrix, absolutePathID, relativePathID, srsID);
            m_umtsDLInterf = new ValueMatrixDouble(absolutePathInterf, relativePathInterf, matrix.RowCount, matrix.ColCount);
            m_BestServerRSCP = new ValueMatrixShort(absolutePathRSCP, relativePathRSCP, matrix.RowCount, matrix.ColCount);
            m_umtsDLInterf.SetValue(0, 0, double.NegativeInfinity);
            #endregion

            m_umtsDLInterf[0] = -100;
            m_BestServerRSCP[0] = -2000;

            #region 构建小区
            for (int i = 0; i < 2; i++)
            {
                IACell cell = new UMTSCell();
                cell.FreqBand.BandWidth = 3.84f;
                cellList.Add(cell);
            }
            double[] x = new double[2] { 50, 100 };
            double[] y = new double[2] { 50, 100 };
            MockCellList.CreateCellList(cellList, x, y);
            m_BinMapCellsDic = new Dictionary<int, List<short>>();

            #endregion

            #region 将数据加入Context
            m_Context.Add(ContextKeys.Group, group);
            m_Context.Add(ContextKeys.TFMatrix, matrix);
            m_Context.Add(ContextKeys.CellList, cellList);
            m_Context.Add(ContextKeys.ApplicationContext, ProjectSingleton.CurrentProject.AppContext);
            m_Context.Add(ContextKeys.UmtsBestServerCellID, m_BestServerID);
            m_Context.Add(ContextKeys.UmtsBinMapCellDic, m_BinMapCellsDic);
            m_Context.Add(ContextKeys.UmtsDLInterf, m_umtsDLInterf);
            m_Context.Add(ContextKeys.UmtsBestServerRSCP, m_BestServerRSCP);
            #endregion

            m_Case.Name = m_Name;
            m_Case.InitialCase(m_Context);
            
        }