public void MyTestInit() { m_Context = MockContext.CreatContext(); m_Param = new R99_CommonParam(m_Context); m_CellList = new List<UMTSSimCell>(); UMTSSimCell R99Cell = MockCell.CreatUMTSSimCell(0, 0); UMTSSimUser ulUser = MockUser.CreatUMTSCSUser(); ulUser.IsPolyModelUser = true; UMTSSimUser ulUser2 = MockUser.CreatUMTSCSUser(); UMTSSimCell umtsCell = MockCell.CreatUMTSSimCell(0, 50); LinkParam linkParam = new LinkParam(umtsCell); ulUser2.ServedLinkSet.Add(1, linkParam); UMTSSimUser dlUser = MockUser.CreatUMTSCSUser(); dlUser.LinkType = LinkType.Downlink; UMTSSimUser dlUser2 = MockUser.CreatUMTSCSUser(); dlUser2.ServedLinkSet.Add(1, linkParam); R99Cell.ServerdR99User.Add(ulUser); R99Cell.ServerdR99User.Add(dlUser); R99Cell.ServerdR99User.Add(dlUser2); UMTSSimCell R99andDPACell1 = MockCell.CreatUMTSSimCell(0, 100); R99andDPACell1.CellType = CarrierTypeOfUMTS.R99AndHSDPA; UMTSSimCell R99andDPACell2 = MockCell.CreatUMTSSimCell(50, 100); R99andDPACell2.NECell.DynHSDPAPower = true; R99andDPACell2.HSDPA_UsedHsscchPower = 30f; R99andDPACell2.CellType = CarrierTypeOfUMTS.R99AndHSDPA; m_CellList.Add(R99Cell); m_CellList.Add(R99andDPACell1); m_CellList.Add(R99andDPACell2); m_Param.CellList = m_CellList; }
public R99_PowerCtrl(R99_CommonParam commonParam) { m_CommonParam = commonParam; m_InterfCalc = new R99_InterfCalc(m_CommonParam); m_CalcSHOGain = new R99_CalcSHOGain(m_CommonParam); m_CalcEbNt = new R99_CalcEbNt(m_CommonParam); }
public void MyTestInitialize() { m_Context = MockContext.CreatContext(); m_Param = new R99_CommonParam(m_Context); m_UlUser = MockUser.CreatUMTSCSUser(); m_DlUser = MockUser.CreatUMTSCSUser(); m_DlUser.LinkType = LinkType.Downlink; }
public void MyTestInitialize() { m_Context = MockContext.CreatContext(); m_Param = new R99_CommonParam(m_Context); UMTSSimCell umtsSimCell = MockCell.CreatUMTSSimCell(0, 0); umtsSimCell.CurTxPower = 99f; umtsSimCell.LastTxPower = 100f; umtsSimCell.CurRxPower = 70f; umtsSimCell.LastRxPower = 100f; m_Param.CellList.Add(umtsSimCell); }
private void GenerateResult(R99_CommonParam commonParam) { string[] columnName = { "UserName", "X", "Y", "LinkType", "TrafficType", "DlCIR(dB)", "UlCIR(dB)", "IsSHO", "UserState", "DropReason", "UETxPower(dBm)", "InterfInUMTS(dBm)", "InterfFromOtherSys(dBm)" }; m_UserResultDt = new DataTable(ContextKeys.UMTS_R99UserResult); for (int i = 0; i < columnName.Length; i++) { DataColumn column = new DataColumn(columnName[i]); m_UserResultDt.Columns.Add(column); } m_AllR99Users = commonParam.UserCol.AccessedUser; foreach (UMTSSimUser user in m_AllR99Users) { DataRow row = m_UserResultDt.NewRow(); row["UserName"] = user.TrafficUser.Id.ToString(); row["X"] = user.TrafficUser.X.ToString(); row["Y"] = user.TrafficUser.Y.ToString(); //row["IsInDoor"] = user.TrafficUser.IsIndoor.ToString(); row["LinkType"] = user.TrafficUser.LinkType.ToString(); row["TrafficType"] = user.TrafficUser.Service.CommonType.ToString(); if (user.IsSHO) { row["IsSHO"] = "SoftHandOver"; } else { row["IsSHO"] = "NotSoftHandOver"; } row["UserState"] = user.UserState.ToString(); //row["EachIterationTxPower"] = user.EachIterationTxPower; row["DropReason"] = user.DropReason.ToString(); row["UETxPower(dBm)"] = user.UlPower.ToString(); if (user.LinkType == LinkType.Uplink) { row["InterfInUMTS(dBm)"] = UnitTrans.mwTodBm(user.R99ULIo); row["UlCIR(dB)"] = user.ULEbNo; //以系统上行用户的干扰在小区里面统计 //row["InterfFromOtherSys"] = UnitTrans.mwTodBm(user.UlInterfFromOtherSys); } else { row["InterfInUMTS(dBm)"] = UnitTrans.mwTodBm(user.InterfFromUMTS); row["InterfFromOtherSys(dBm)"] = UnitTrans.mwTodBm(user.DlInterfFromOtherSystemCell); row["DlCIR(dB)"] = user.DLEbNo; } m_UserResultDt.Rows.Add(row); } }
private void GenerateResult(R99_CommonParam commonParam) { string[] columnName ={ "UserName","Priority","IsAccess","AccessFailedType","ULRequestRate","DLRequestRate","Status", "ULActualRate","DLActualRate","IsSHO","ActiveSet"}; m_AccessResultDt = new DataTable(ContextKeys.UMTS_R99AccessResult); for (int i = 0; i < columnName.Length; i++) { DataColumn datacolumn = new DataColumn(); m_AccessResultDt.Columns.Add(columnName[i]); } AccessedUserResult(commonParam); NotAccessedUserResult(commonParam); DataRow finalRow0 = m_AccessResultDt.NewRow(); finalRow0[0] = "The Number Of Accessed Users: " + commonParam.UserCol.AccessedUser.Count.ToString(); m_AccessResultDt.Rows.Add(finalRow0); }
//#region 用户结果统计时获得 //private List<UMTSSimCell> m_AllR99Cells; ///// <summary> ///// 全部R99小区 ///// </summary> //public List<UMTSSimCell> AllR99Cells //{ // get { return m_AllR99Cells; } //} //private List<UMTSSimUser> m_AllR99Users; ///// <summary> ///// 全部R99用户 ///// </summary> //public List<UMTSSimUser> AllR99Users //{ // get { return m_AllR99Users; } //} //#endregion #region ISnapshot 成员 /// <summary> /// 网元封装,从Context中取得UMTSSimCell,再从中找出R99CellList /// </summary> /// <param name="context"></param> public void InitCells(SnapshotContext context) { m_CommonParam = new R99_CommonParam(context); m_CommonParam.CellCol.UMTSCellList = m_SimEncapsulate.EncapsulateCells(context); foreach (UMTSSimCell cell in m_CommonParam.CellCol.UMTSCellList) { bool flag = cell.CellType != CarrierTypeOfUMTS.HSDPA && cell.CellType != CarrierTypeOfUMTS.HSUPA && cell.NECell.Active; if (!flag) { continue; } m_CommonParam.CellList.Add(cell); cell.DlPower = m_CommonParam.CommonMethod.AddPowerTodBm(cell.NECell.PilotPower, cell.NECell.CCHPower); cell.ULSimUsers.Clear(); } }
public void MyTestInitialize() { m_Context = MockContext.CreatContext(); m_Param = new R99_CommonParam(m_Context); m_UlUser = MockUser.CreatUMTSCSUser(); m_UlUser.UserState = UserState.Serving; m_UlUser.ServedLinkSet[0].ServeSet.CurRxPower = 50000f; m_UlUser.ServedLinkSet[0].ULCIR = 0.0001f; LinkParam linkParam = new LinkParam(MockCell.CreatUMTSSimCell(50, 50)); linkParam.ServeSet.CurRxPower = 40000f; linkParam.ULCIR = 0.00001f; m_UlUser.ServedLinkSet.Add(1, linkParam); m_DlUser = MockUser.CreatUMTSCSUser(); m_DlUser.UserState = UserState.Serving; m_DlUser.LinkType = LinkType.Downlink; m_DlUser.ServedLinkSet[0].DLTrafTxPower = 100f; m_Param.UserCol.AccessedUser.Add(m_UlUser); m_Param.UserCol.AccessedUser.Add(m_DlUser); }
private void CalcResult(R99_CommonParam commonParam) { foreach (UMTSSimUser user in commonParam.UserCol.AccessedUser) { if (user.UserState == UserState.Serving)//最后一次迭代还保持Serving状态的用户是成功服务的用户 { if (user.IsShoed)//是否进行过软切换 { //added @ 1.14 ,将软切换服务的用户也统计进来 foreach (KeyValuePair<int, LinkParam> kvp in user.ServedLinkSet) { UMTSSimCell cell = kvp.Value.ServeSet; if (user.LinkType == LinkType.Uplink) { cell.SuccessedULR99UserNum++; } else { cell.SuccessedDLR99UserNum++; } } } else if (user.LinkType == LinkType.Uplink) { user.MaxRSCPCell.SuccessedULR99UserNum++; } else { user.MaxRSCPCell.SuccessedDLR99UserNum++; } } //else if (user.UserState == UserState.Drop)//加为Fail的枚举类型 //{ // //user.MaxRSCPCell.DropUserNum++; //掉话的UE数 //} } }
//private R99_CommonParam m_CommonParam = null; //public R99_CommonParam CommonParam //{ // get { return m_CommonParam; } // set { m_CommonParam = value; } //} //public R99_AccessResult(R99_CommonParam commonParam) //{ // m_CommonParam = commonParam; //} public void Execute(R99_CommonParam commonParam) { GenerateResult(commonParam); }
public R99_ConvergenceJudge(R99_CommonParam commonParam) { m_CommonParam = commonParam; }
//private R99_CommonParam m_CommonParam = null; //public R99_CommonParam CommonParam //{ // get { return m_CommonParam; } // set { m_CommonParam = value; } //} //public R99_CalcCellResult(R99_CommonParam commonParam) //{ // m_CommonParam = commonParam; //} public void Execute(R99_CommonParam commonParam) { m_R99Cells = commonParam.CellList; CalcResult(commonParam); GenerateResult(); }
public R99_CalcEbNt(R99_CommonParam commonParam) { m_CommonParam = commonParam; m_CalcSHOGain = new R99_CalcSHOGain(m_CommonParam); m_CalcInterf = new R99_InterfCalc(m_CommonParam); }
public R99_InterfCalc(R99_CommonParam commonParam) { m_CommonParam = commonParam; }
public UpdateData(R99_CommonParam commonParam) { this.m_CommonParam = commonParam; m_CalcEbNt = new R99_CalcEbNt(commonParam); }
private void AccessedUserResult(R99_CommonParam commonParam) { UMTSSimCell currentCell = null; foreach (UMTSSimUser user in commonParam.UserCol.AccessedUser ) { DataRow row = m_AccessResultDt.NewRow(); row["UserName"] = user.TrafficUser.Id.ToString(); row["Priority"] = user.SortPriority.ToString(); if (user.IsAccess) { row["IsAccess"] = "Accessed"; row["AccessFailedType"] = "No"; } else { row["IsAccess"] = "Failed"; row["AccessFailedType"] = user.AccessFailType.ToString(); } if (user.LinkType == LinkType.Uplink) { row["ULRequestRate"] = user.Rate.ToString(); row["DLRequestRate"] = "0"; if (user.UserState == UserState.Serving) { row["Status"] = user.UserState.ToString(); row["ULActualRate"] = user.R99Bearer.ULNominalRate .ToString(); row["DLActualRate"] = "0"; } else { row["Status"] = user.UserState.ToString(); row["ULActualRate"] = "0"; row["DLActualRate"] = "0"; } } if (user.LinkType == LinkType.Downlink) { row["ULRequestRate"] = "0"; row["DLRequestRate"] = user.Rate.ToString(); if (user.UserState == UserState.Serving) { row["Status"] = user.UserState.ToString(); row["ULActualRate"] = "0"; row["DLActualRate"] = user.R99Bearer.DLNominalRate .ToString(); } else { row["Status"] = user.UserState.ToString(); row["ULActualRate"] = "0"; row["ULActualRate"] = "0"; } } if (user.IsSHO) { row["IsSHO"] = "SoftHandOver"; } else { row["IsSHO"] = "NotSoftHandOver"; } foreach (KeyValuePair<int, LinkParam> kvp in user.ServedLinkSet) { currentCell = kvp.Value.ServeSet; float rscp = kvp.Value.ServeSet.NECell.PilotPower - commonParam.ServiceProvider.LinkLossCalc.GetLinkLoss(NetWorkType.UMTS, currentCell.NECell.ID, user.TrafficUser.Id, LinkType.Downlink); row["ActiveSet"] += kvp.Value.ServeSet.NECell.ID.ToString() + ":" + rscp.ToString() + " "; } m_AccessResultDt.Rows.Add(row); } }
public R99_CalcSHOGain(R99_CommonParam commonParam) { m_CommonParam = commonParam; }