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