Ejemplo n.º 1
0
 public List<StatSimuCarrierResult> Statistic(int beginStaTime, int endStaTime, List<ISimulationCarrier> simulationCarrierList, OtherSubSysInterface subSysInterface)
 {
     List<StatSimuCarrierResult> list = new List<StatSimuCarrierResult>();
     StaSimulationUser statisticProcessor = new StaSimulationUser();
     foreach (SimulationCarrier carrier in simulationCarrierList)
     {
         int num = (endStaTime - beginStaTime) + 1;
         StatSimuCarrierResult staSimulationCarrierResult = new StatSimuCarrierResult();
         staSimulationCarrierResult.TxPower = SimulationTools.ConvertLineTodB(this.CalculateAvgTxPower(beginStaTime, endStaTime, carrier));
         staSimulationCarrierResult.UlScheduleUserNum = ((float) carrier.UlWarmupTotalScheduleUserNum) / ((float) ((endStaTime - beginStaTime) + 1));
         staSimulationCarrierResult.UlAvgVMIMOUsedRbRate = (((float) carrier.UlWarmupTotalVMIMOUsedRB) / ((float) num)) / ((float) carrier.PuschRbNum);
         staSimulationCarrierResult.UlIoT = carrier.UlIoT;
         staSimulationCarrierResult.UlAvgUsedRbNum = this.CalculateUlAvgUsedRbNum(beginStaTime, endStaTime, carrier);
         staSimulationCarrierResult.DlAvgUsedRbNum = this.CalculateDlAvgUsedRbNum(beginStaTime, endStaTime, carrier);
         staSimulationCarrierResult.UlAvgLoad = this.CalculateUlAvgLoad(beginStaTime, endStaTime, carrier);
         staSimulationCarrierResult.DlAvgLoad = this.CalculateDlAvgLoad(beginStaTime, endStaTime, carrier);
         staSimulationCarrierResult.UlAvgThroughput = this.CalculateUlCarrierAvgThroughput(beginStaTime, endStaTime, carrier);
         staSimulationCarrierResult.DlAvgThroughput = this.CalculateDlCarrierThroughput(beginStaTime, endStaTime, carrier);
         staSimulationCarrierResult.UlAppAvgThroughput = carrier.WarmupTotalTh.UlAppThroughput / ((float) num);
         staSimulationCarrierResult.DlAppAvgThroughput = carrier.WarmupTotalTh.DlAppThroughput / ((float) num);
         staSimulationCarrierResult.DlPeakThroughput = carrier.CarrierPeakThr.DlMacThroughput;
         staSimulationCarrierResult.UlPeakThroughput = carrier.CarrierPeakThr.UlMacThroughput;
         staSimulationCarrierResult.DlPeakAplThroughput = carrier.CarrierPeakThr.DlAppThroughput;
         staSimulationCarrierResult.UlPeakAplThroughput = carrier.CarrierPeakThr.UlAppThroughput;
         staSimulationCarrierResult.ServicePeakThDic = carrier.ServicePeakThDic;
         staSimulationCarrierResult.ServiceAvgThDic.Clear();
         foreach (string str in carrier.ServiceWarmUpTotalThDic.Keys)
         {
             float ulmac = carrier.ServiceWarmUpTotalThDic[str].UlMacThroughput / ((float) num);
             float dlmac = carrier.ServiceWarmUpTotalThDic[str].DlMacThroughput / ((float) num);
             float ulapl = carrier.ServiceWarmUpTotalThDic[str].UlAppThroughput / ((float) num);
             float dlapl = carrier.ServiceWarmUpTotalThDic[str].DlAppThroughput / ((float) num);
             ThroughputGroup group = new ThroughputGroup(ulmac, dlmac, ulapl, dlapl);
             staSimulationCarrierResult.ServiceAvgThDic.Add(str, group);
         }
         staSimulationCarrierResult.UlScheduleTh = (carrier.UlScheduleTh * 1000f) / ((float) ((endStaTime - beginStaTime) + 1));
         staSimulationCarrierResult.CarrierID = carrier.Carrier.ID;
         staSimulationCarrierResult.CellName = SimulationTools.GetTransName(carrier);
         staSimulationCarrierResult.CarrierName = carrier.Carrier.Name;
         List<StatSimuUserResult> userResult = new List<StatSimuUserResult>();
         this.UpdateUserFailReason(carrier.DlUserList);
         this.UpdateUserFailReason(carrier.UlUserList);
         this.StatisticUsers(carrier.DlUserList, userResult, statisticProcessor, beginStaTime, endStaTime, subSysInterface);
         this.StatisticUsers(carrier.UlUserList, userResult, statisticProcessor, beginStaTime, endStaTime, subSysInterface);
         this.StatisticUsers(carrier.FailUserList, userResult, statisticProcessor, beginStaTime, endStaTime, subSysInterface);
         this.StatisticUsers(carrier.UlRsSinrFailUserList, userResult, statisticProcessor, beginStaTime, endStaTime, subSysInterface);
         staSimulationCarrierResult.StatSimuUserResultList = userResult;
         this.StatisticStateUserNum(userResult, staSimulationCarrierResult);
         carrier.count = count;
         list.Add(staSimulationCarrierResult);
     }
     return list;
 }
Ejemplo n.º 2
0
 private void StatisticUsers(List<ISimulationUser> users, List<StatSimuUserResult> userResult, StaSimulationUser statisticProcessor, int beginStaTime, int endStaTime, OtherSubSysInterface subSysInterface)
 {
     foreach (SimulationUser user in users)
     {
         userResult.Add(statisticProcessor.Statistic(beginStaTime, endStaTime, user, subSysInterface));
     }
 }