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; }
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)); } }