public List <HandoverInfo> GetHandoverInfoList()
        {
            List <HandoverInfo> resultList  = new List <HandoverInfo>();
            HandoverInfo        currentInfo = null;

            for (int i = 0; i < LogRecordList.Count; i++)
            {
                if (LogRecordList[i].Event == null)
                {
                    continue;
                }
                string[] eventContent = LogRecordList[i].Event.GetSplittedFields(":-");
                if (eventContent.Length == 0)
                {
                    continue;
                }
                for (int j = 0; j < eventContent.Length; j++)
                {
                    DingliEventDef currentEvent = eventContent[j].GetEventType();
                    switch (currentEvent)
                    {
                    case DingliEventDef.HandoverRequest:
                        if (currentInfo == null)
                        {
                            currentInfo = new HandoverInfo(LogRecordList[i]);
                            if (i > 0 && currentInfo.PciBefore != LogRecordList[i - 1].Pci &&
                                LogRecordList[i - 1].ENodebId > 0)
                            {
                                currentInfo.UpdateCellInfoBefore(LogRecordList[i - 1]);
                            }
                            CalculateThroughputBefore(currentInfo, i);
                            CalculateMeasureTime(currentInfo, i);
                        }
                        else
                        {
                            resultList.Add(currentInfo);
                            currentInfo = null;
                        }
                        break;

                    case DingliEventDef.HandoverSuccess:
                        if (currentInfo != null)
                        {
                            currentInfo.Success(LogRecordList[i]);
                            if (currentInfo.PciBefore == currentInfo.PciAfter)
                            {
                                currentInfo.UpdateCellInfoAfter(LogRecordList[i + 1]);
                            }
                            CalculateThroughputAfter(currentInfo, i);
                            resultList.Add(currentInfo);
                            currentInfo = null;
                        }
                        break;

                    case DingliEventDef.HandoverFailure:
                        if (currentInfo != null)
                        {
                            currentInfo.Fail(LogRecordList[i]);
                            if (currentInfo.PciBefore == currentInfo.PciAfter)
                            {
                                currentInfo.UpdateCellInfoAfter(LogRecordList[i + 1]);
                            }
                            CalculateThroughputAfter(currentInfo, i);
                            resultList.Add(currentInfo);
                            currentInfo = null;
                        }
                        break;
                    }
                }
            }
            return(resultList);
        }
Esempio n. 2
0
 public static string GetEventDescription(this DingliEventDef dingliEvent)
 {
     return(list[dingliEvent]);
 }