Esempio n. 1
0
        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;


        }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
 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);
 }
Esempio n. 5
0
        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);
            }
        }
Esempio n. 6
0
 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); 
 }
Esempio n. 7
0
        //#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();
            }
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
 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数
         //}
     }
 }
Esempio n. 10
0
 //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);
 }
Esempio n. 11
0
 public R99_ConvergenceJudge(R99_CommonParam commonParam)
 {
     m_CommonParam = commonParam;
 }
Esempio n. 12
0
 //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();
 }
Esempio n. 13
0
 public R99_CalcEbNt(R99_CommonParam commonParam)
 {
     m_CommonParam = commonParam;
     m_CalcSHOGain = new R99_CalcSHOGain(m_CommonParam);
     m_CalcInterf = new R99_InterfCalc(m_CommonParam);
 }
Esempio n. 14
0
 public R99_InterfCalc(R99_CommonParam commonParam)
 {
     m_CommonParam = commonParam;
 }
Esempio n. 15
0
 public UpdateData(R99_CommonParam commonParam)
 {
     this.m_CommonParam = commonParam;
     m_CalcEbNt = new R99_CalcEbNt(commonParam);
 }
Esempio n. 16
0
 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);
     }
 }
Esempio n. 17
0
 public R99_CalcSHOGain(R99_CommonParam commonParam)
 {
     m_CommonParam = commonParam;
 }