/// <summary> /// 把接入成功的用户加进来 /// </summary> /// <param name="iAccessControlCarrier"></param> /// <param name="userList"></param> private void addUser(IAccessControlCarrier iAccessControlCarrier, List<ISimulationUser> userList) { foreach (IAccessControlUser user in userList) { /*接入准则是每个用户接收到下行RS的SINR值是否大于某个设定门限,大于则接入成功,小于或等于则接入失败*/ if (user.DlInitRsSinr > iAccessControlCarrier.DLRsSinrAccessThreshold) { user.State = State.NewAccess; this.dispatchUser(iAccessControlCarrier, user); } //else //{ // user.State = State.NoAccess; // user.FailReason = FailReason.DlRsSinrFail; // iAccessControlCarrier.FailUserList.Add(user); //} else if (user.LTEUser.LinkType == LinkType.Uplink) { user.State = State.NoAccess; user.FailReason = FailReason.UlRsSinrFail; iAccessControlCarrier.UlRsSinrFailUserList.Add(user); } else { user.State = State.NoAccess; user.FailReason = FailReason.DlRsSinrFail; iAccessControlCarrier.FailUserList.Add(user); } } }
private void addUlUser(IAccessControlCarrier iAccessControlCarrier, IAccessControlUser user) { if (this.GetService(user).Type == ServiceType.Voice) { iAccessControlCarrier.UlVoiceNewAccessUserList.Add(user); } else { iAccessControlCarrier.UlDataNewAccessUserList.Add(user); } }
//private void deleteFailedUser(IAccessControlCarrier iAccessControlCarrier) //{ // foreach (ISimulationUser user in iAccessControlCarrier.FailUserList) // { // if (user.LTEUser.LinkType == LinkType.Uplink) // { // iAccessControlCarrier.UlUserList.Remove(user); // } // else // { // iAccessControlCarrier.DlUserList.Remove(user); // } // } //} private void deleteFailedUser(IAccessControlCarrier iAccessControlCarrier) { foreach (ISimulationUser user in iAccessControlCarrier.UlRsSinrFailUserList) iAccessControlCarrier.UlUserList.Remove(user); foreach (ISimulationUser user in iAccessControlCarrier.FailUserList) iAccessControlCarrier.DlUserList.Remove(user); }
private void addUser(IAccessControlCarrier iAccessControlCarrier) { this.addUser(iAccessControlCarrier, iAccessControlCarrier.DlUserList); this.addUser(iAccessControlCarrier, iAccessControlCarrier.UlUserList); }
private void dispatchUser(IAccessControlCarrier iAccessControlCarrier, IAccessControlUser user) { if (user.LTEUser.LinkType == LinkType.Downlink) { this.addDlUser(iAccessControlCarrier, user); } else { this.addUlUser(iAccessControlCarrier, user); } }