예제 #1
0
        //public double CalculateAsRxPower(IACell cell, GeoXYPoint point, float Linkloss)
        //{
            //double m_TRXPower = ((GSMTRX)cell).MaxPower;
            //GSMTRX isGSMCell = cell as GSMTRX;
            //if (isGSMCell != null)
            //{
            //GSMTerminal gsmTerminal = (GSMTerminal)terminal.GetNetWorkTerminal(NetWorkType.GSM);
            //double terminalGain = gsmTerminal.Gain;
            //double serviceLoss = ((GSMService)service).BodyLoss;
            //return m_TRXPower + terminalGain - serviceLoss - linkloss;
            //}
            //else
            //{
            //    return double.NegativeInfinity;
            //}
        //    return CalculateRxPower(cell, point, Linkloss);
        //}

        public IDetail CalculateDownLinkDetail(List<RxPowerAndLinkLossModel> ModelList, GeoXYPoint point, Service service, Mobility mobility, Terminal terminal)
        {
            TargetPara target = new TargetPara();
            InitData(ModelList, service, terminal, target);
            m_DlBestCell = FindDlBestServer();
            m_IInterf = InitInterfCalc();
            DlResultImage();
            DlJudgeAccess(target);
            return dlDetail;
        }
예제 #2
0
 private void InitData(List<RxPowerAndLinkLossModel> ModelList, Service service, Terminal terminal, TargetPara target)
 {
     m_Terminal = (GSMTerminal)terminal.GetNetWorkTerminal(NetWorkType.GSM);
     m_ModelList = ModelList;
     //数据用户
     if (service.CommonType == CommonServiceType.PSService)
     {
         GSMTerminal gsmTerminal = (GSMTerminal)terminal.GetNetWorkTerminal(NetWorkType.GSM);
         GSMPointAnalysisCommonCalc.InialUseList(gsmTerminal);
         target.TargetThroughput = GSMPointAnalysisCommonCalc.GetPsReqThroughput();
     }
     //语音用户
     else
     {
         CsInit(service, target);
     }
     target.TargetRxPower = -110;
 }
예제 #3
0
 private bool UlJudge(TargetPara target)
 {
     if (m_Terminal.Technology == GsmTechnologyType.GSM)
     {
         return ulDetail.TCHCIR > target.TargetCIR;
     }
     else
     {
         return ulDetail.TCHThroughput > target.TargetThroughput;
     }
 }
예제 #4
0
 private void UlJudgeAccess(TargetPara target)
 {           
     ulDetail.AbleAccess = (m_UlBestModle.RxPower > target.TargetRxPower) && UlJudge(target);
 }
예제 #5
0
 private void DlJudgeAccess(TargetPara target)
 {
     dlDetail.AbleAccess = (m_DlBestModle.RxPower > target.TargetRxPower)&&AccessJudge(target);
 }
예제 #6
0
 public IDetail CalculateUpLinkDetail(List<RxPowerAndLinkLossModel> ModelList, GeoXYPoint point, Service service, Terminal terminal, Mobility mobility)
 {
     TargetPara target = new TargetPara();
     InitData(ModelList, service, terminal, target);
     m_UlBestCell = FindUlBestServer();
     UlResultImage();
     UlJudgeAccess(target);
     return ulDetail;
 }
예제 #7
0
 private static void CsInit(Service service, TargetPara target)
 {
     UnionCsService csService = (UnionCsService)service;
     GSMService temp = csService.CSServiceDic[NetWorkType.GSM] as GSMService;
     if (temp == null)
     {
         temp = (csService.CSServiceDic[NetWorkType.GSM] as UnionCsService).CSServiceDic[NetWorkType.GSM] as GSMService;
     }
     target.TargetCIR = temp.ReqCIR;
 }