Пример #1
0
 /// <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);
 }
Пример #2
0
 /// <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);
 }
Пример #3
0
 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);          
 }
Пример #4
0
 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);
 }
Пример #5
0
 /// <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);
 }
Пример #6
0
 /// <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);
 }
Пример #7
0
        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);
        }
Пример #8
0
        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);

        }
Пример #9
0
        /// <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);
        }