Beispiel #1
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="commonParam"></param>
 /// <param name="cellList">包括R99、UPA、DPA的小区</param>
 public UMTSLoadStatus(ICommonParam commonParam, List<ISimCellBase> cellList)
 {
     m_R99CellList = new List<UMTSSimCell>();
     m_HSUPACellList = new List<UMTSSimCell>();
     m_HSDPACellList = new List<UMTSSimCell>();
     m_PreAccessCellList = new List<UMTSSimCell>();
     m_CelltobeAssignedList = new List<UMTSSimCell>();
     Classify(cellList);
     m_Rc = commonParam.UMTSUIParam.Rc;
     m_CommonParam = commonParam;
 }
Beispiel #2
0
 protected void Execute(ICommonParam commonParam)
 {
     foreach (UMTSSimCell cell in commonParam.CellList)
     {
         List<UMTSSimUser> userList = GetServedUsers(cell);
         foreach (UMTSSimUser user in userList)
         {
             user.SortPriority = user.UserPriority * commonParam.UMTSUIParam.W1 + user.ServicePriority * commonParam.UMTSUIParam.W2;
         }
         SortUsers(cell);
     }
 }
Beispiel #3
0
 protected void Execute(ICommonParam commonParam)
 {
     foreach (UMTSSimCell cell in commonParam.CellList)
     {
         List<UMTSSimCell> tempList = new List<UMTSSimCell>();//同基站小区列表
         GetCellsInTheSameSite(commonParam.CellList, tempList,cell);
         Site site = cell.NECell.Parent.Parent as Site;
         int ulUserNum = GetULUserNumInSite(tempList);
         int dlUserNum = GetDLUserNumInSite(tempList);
         AssignULCE(tempList, ulUserNum, site);
         AssignDLCE(tempList, dlUserNum, site);
     }
 }
Beispiel #4
0
 protected void Execute(ICommonParam commonParam)
 {
     foreach (UMTSSimUser user in commonParam.UserCol.PreAccessedUser)
     {
         if (!IsNeedExecute(user))
             continue;
         user.ActiveSet = new List<UMTSSimCell>();
         CalcRscp(user, commonParam.CellList, commonParam.ServiceProvider.LinkLossCalc);
         SortCellsByRscp(commonParam.CellList);
         //add by hwl 2010.9.20**********
         //添加因为覆盖不到而失败的用户类型
         List<UMTSSimCell> cellList = new List<UMTSSimCell>();
         foreach (UMTSSimCell cell in commonParam.CellList)
         {
             if (cell.Rscp >= commonParam.UMTSUIParam.RscpThreshold)
             {
                 cellList.Add(cell);
             }
         }
         if (cellList.Count == 0)
         {
             user.UserState = UserState.OutofCoverage;
             commonParam.UserCol.OutOfCoverageUser.Add(user);
             if (user.IsPolyModelUser)
             {
                 commonParam.Context.Lookup<List<User>>(ContextKeys.AccessFailedPolyModelUsers).Add(user.TrafficUser);
             }
             continue;
         }
         //**********
         user.MaxRSCPCell = SelectCell(commonParam.CellList);
         JudgePolyOrSingleModelUser(user);                
         GetActiveSet(user, commonParam.CellList);
         Update(user);
     }
 }