コード例 #1
0
ファイル: SimulationDataManager.cs プロジェクト: xiaoyj/Space
        public SnapShotStatData GenerateStatisticData(int beginStaTime, int endStaTime, OtherSubSysInterface subSysInterface, int snapshotId)
        {
            StaSimulationCarrier carrier = new StaSimulationCarrier();
            SnapShotStatData data = new SnapShotStatData();
            data.SnapShotName = SimulationTools.GenerateSnapshotName(snapshotId);
            data.DlRsrpFailList.AddRange(this.DlRsrpFailUserList);
            data.UlRsrpFailList.AddRange(this.UlRsrpFailUserList);
            List<StatSimuCarrierResult> carrierResList = carrier.Statistic(beginStaTime, endStaTime, this.m_SimulationCarrierList, subSysInterface);
            data.StatSimuSiteResultList = new StaSimulationSite().Statistic(carrierResList, this.m_SimulationCarrierList);

            foreach (SimulationCarrier carrier2 in this.m_SimulationCarrierList)
            {
                this.SelectUsers(carrier2.OffLineUserList, data.OffLineList);
                List<ISimulationUser> waitUserList = new List<ISimulationUser>();
                waitUserList.AddRange(carrier2.DlDataWaitUserList);
                waitUserList.AddRange(carrier2.DlVoiceWaitUserList);
                waitUserList.AddRange(carrier2.UlDataWaitUserList);
                waitUserList.AddRange(carrier2.UlVoiceWaitUserList);
                temp = carrier2.count;
                this.ClassifyWaitUsers(waitUserList, data);
                data.SatisfiedList.AddRange(this.ToISimuUser(carrier2.UlVoiceServiceUserList));
                data.SatisfiedList.AddRange(this.ToISimuUser(carrier2.UlDataServiceUserList));
                data.SatisfiedList.AddRange(this.ToISimuUser(carrier2.DlVoiceServiceUserList));
                data.SatisfiedList.AddRange(this.ToISimuUser(carrier2.DlDataServiceUserList));
                data.DlRsSinrFailList.AddRange(this.ToISimuUser(carrier2.FailUserList));
                data.UlRsSinrFailList.AddRange(this.ToISimuUser(carrier2.UlRsSinrFailUserList));
            }
            
            data.WholeNetDLInstantaneousThroughput = this.m_WholeNetDLThroughput;
            data.WholeNetULInstantaneousThroughput = this.m_WholeNetULThroughput;
            return data;
        }
コード例 #2
0
ファイル: SimulationDataManager.cs プロジェクト: xiaoyj/Space
 private void ClassifyWaitUsers(List<ISimulationUser> waitUserList, SnapShotStatData data)
 {
     
     foreach (SimulationUser user in waitUserList)
     {
         
         if (user.ServiceCount == 0 )
         {
             user.FailReason = FailReason.CallDrop;
             user.State = State.OffLine;
             data.OffLineList.Add(user.LTEUser);              
         }
         else if (user.UlActualAveRate < user.UlMacMinThroughputDemand)
         {
             user.FailReason = FailReason.CallDrop;
             user.State = State.OffLine;
             data.OffLineList.Add(user.LTEUser);   
         }
         else
         {
             data.SatisfiedList.Add(user.LTEUser);
         }            
         
     }
     
 }
コード例 #3
0
ファイル: SimulationDataManager.cs プロジェクト: xiaoyj/Space
 private void ClassifyWaitUsers(List<ISimulationUser> waitUserList, SnapShotStatData data)
 {
     foreach (SimulationUser user in waitUserList)
     {
         if (user.ServiceCount == 0)
         {
             user.FailReason = FailReason.CallDrop;
             data.OffLineList.Add(user.LTEUser);
         }
         else
         {
             data.SatisfiedList.Add(user.LTEUser);
         }
     }
 }
コード例 #4
0
 private List<DisplayUser> GetSymbolChangedNode(TreeNode snapShotNode, SnapShotStatData snapShotResult, string GroupName, string snapShotName)
 {
     DisplayUser user;
     string name = Enum.GetName(typeof(DisplayType), this.DT);
     string str2 = Enum.GetName(typeof(FieldType), this.FT);
     List<string> list = new List<string>();
     List<DisplayUser> groupDisplayUser = new List<DisplayUser>();
     foreach (StaSimuSiteResult result in snapShotResult.StatSimuSiteResultList)
     {
         foreach (StatSimuCarrierResult result2 in result.StatSimuCarrierResultList)
         {
             foreach (StatSimuUserResult result3 in result2.StatSimuUserResultList)
             {
                 user = new DisplayUser();
                 user.LTEUser = result3;
                 user.BestServer = result2.CarrierName;
                 user.UserState = result3.FailReason.ToString();
                 groupDisplayUser.Add(user);
             }
         }
     }
     foreach (User user2 in snapShotResult.DlRsrpFailList)
     {
         user = new DisplayUser();
         StatSimuUserResult result4 = new StatSimuUserResult(user2);
         user.LTEUser = result4;
         user.UserState = FailReason.DlRsrpFail.ToString();
         user.BestServer = "";
         groupDisplayUser.Add(user);
     }
     this.RebuildSnapshotNode(this.m_CurrentSetProperty, groupDisplayUser, snapShotNode);
     return groupDisplayUser;
 }
コード例 #5
0
 private void getUserResult(User user, SnapShotStatData snapData, out StatSimuUserResult userResult, out StatSimuCarrierResult carrier)
 {
     userResult = null;
     carrier = null;
     if (user.Tag != null)
     {
         string tag = (string) user.Tag;
         carrier = this.GetStatSimuCarrierResultByName(snapData, tag);
         if (carrier == null)
         {
             throw new Exception(SimulationResource.SIMULATION_FIND_BESTSERVER_FAILED);
         }
         foreach (StatSimuUserResult result in carrier.StatSimuUserResultList)
         {
             if (user.Id == result.LTEUser.Id)
             {
                 userResult = result;
                 break;
             }
         }
     }
     else
     {
         userResult = new StatSimuUserResult(user);
     }
 }
コード例 #6
0
 private TreeNode GetGroupChildNode(SnapShotStatData snapShotResult, FailReason failReason, TreeNode snapShotNode)
 {
     TreeNode node = new TreeNode(failReason.ToString());
     node.ImageKey = "user";
     node.SelectedImageKey = "user";
     node.StateImageIndex = 1;
     node.Tag = this.BindingNodeState(snapShotResult, failReason, snapShotNode, failReason.ToString());
     return node;
 }
コード例 #7
0
 private StatSimuCarrierResult GetStatSimuCarrierResultByName(SnapShotStatData snapData, string carrierName)
 {
     foreach (StaSimuSiteResult result in snapData.StatSimuSiteResultList)
     {
         foreach (StatSimuCarrierResult result2 in result.StatSimuCarrierResultList)
         {
             if (carrierName == result2.CarrierName)
             {
                 return result2;
             }
         }
     }
     return null;
 }
コード例 #8
0
 private List<DisplayUser> AddTreeNode(SnapShotStatData inSnapShotStatData, int iSnapNum, TreeNode parentNode)
 {
     List<DisplayUser> list = new List<DisplayUser>();
     TreeNode node = new TreeNode(SimulationTools.GenerateSnapshotName(iSnapNum));
     node.ContextMenuStrip = this.cmsSnapshot;
     node.ImageKey = "Snapshot";
     node.SelectedImageKey = "Snapshot";
     node.StateImageIndex = 1;
     node.Tag = iSnapNum;
     parentNode.Nodes.Add(node);
     List<FailReason> list2 = new List<FailReason>();
     list2.Add(FailReason.Satisfied);
     list2.Add(FailReason.DlRsSinrFail);
     list2.Add(FailReason.UlRsSinrFail);
     list2.Add(FailReason.DlRsrpFail);
     list2.Add(FailReason.UlRsrpFail);
     list2.Add(FailReason.CallDrop);
     foreach (FailReason reason in list2)
     {
         TreeNode node2 = this.GetGroupChildNode(inSnapShotStatData, reason, node);
         node.Nodes.Add(node2);
         list.AddRange(node2.Tag as List<DisplayUser>);
     }
     return list;
 }
コード例 #9
0
 private List<DisplayUser> BindingNodeState(SnapShotStatData snapData, FailReason reason, TreeNode node, string nodeName)
 {
     List<DisplayUser> list = new List<DisplayUser>();
     List<StaSimuSiteResult> statSimuSiteResultList = snapData.StatSimuSiteResultList;
     List<User> list3 = new List<User>();
     List<SymbolElement> list4 = new List<SymbolElement>();
     List<Color> list5 = new List<Color>();
     list5.Add(Color.Green);
     list5.Add(Color.Yellow);
     list5.Add(Color.Pink);
     list5.Add(Color.DarkRed);
     list5.Add(Color.OrangeRed);
     list5.Add(Color.PaleVioletRed);
     list5.Add(Color.DeepPink);
     list5.Add(Color.Black);
     list5.Add(Color.Red);
     foreach (Color color in list5)
     {
         SymbolElement item = new SymbolElement(color);
         list4.Add(item);
     }
     Dictionary<FailReason, List<User>> dictionary = new Dictionary<FailReason, List<User>>();
     dictionary.Add(FailReason.CallDrop, snapData.OffLineList);
     dictionary.Add(FailReason.DlRsrpFail, snapData.DlRsrpFailList);
     dictionary.Add(FailReason.UlRsSinrFail, snapData.UlRsSinrFailList);
     dictionary.Add(FailReason.DlRsSinrFail, snapData.DlRsSinrFailList);
     dictionary.Add(FailReason.UlRsrpFail, snapData.UlRsrpFailList);
     dictionary.Add(FailReason.Satisfied, snapData.SatisfiedList);
     list3 = dictionary[reason];
     foreach (User user in list3)
     {
         DisplayUser user2 = new DisplayUser();
         StatSimuUserResult userResult = null;
         StatSimuCarrierResult carrier = null;
         this.getUserResult(user, snapData, out userResult, out carrier);
         user2.LTEUser = userResult;
         user2.SimulationName = node.Parent.Text;
         user2.SnapShotName = node.Text;
         user2.SymbolElement = list4[(int) reason];
         user2.UserState = nodeName;
         if (carrier != null)
         {
             user2.BestServer = carrier.CarrierName;
         }
         else
         {
             user2.BestServer = "";
         }
         list.Add(user2);
     }
     return list;
 }
コード例 #10
0
 private List<DisplayUser> SetGroupOtherNode(TreeNode snapShotNode, SnapShotStatData snapShotResult)
 {
     List<DisplayUser> list = new List<DisplayUser>();
     List<FailReason> list2 = new List<FailReason>();
     list2.Add(FailReason.Satisfied);
     list2.Add(FailReason.DlRsSinrFail);
     list2.Add(FailReason.UlRsSinrFail);
     list2.Add(FailReason.DlRsrpFail);
     list2.Add(FailReason.UlRsrpFail);
     list2.Add(FailReason.CallDrop);
     foreach (FailReason reason in list2)
     {
         TreeNode node = this.GetGroupChildNode(snapShotResult, reason, snapShotNode);
         snapShotNode.Nodes.Add(node);
         list.AddRange(node.Tag as List<DisplayUser>);
     }
     return list;
 }
コード例 #11
0
 private void SetGroupNode(TreeNode snapShotNode, SnapShotStatData snapShotResult)
 {
 }
コード例 #12
0
ファイル: SimulationSubSys.cs プロジェクト: xiaoyj/Space
 private List<DisplayUser> bandingNodeTag(TreeNode checkedTreeNode, SnapShotStatData snapShotStatData)
 {
     if (checkedTreeNode.Tag == null)
     {
         List<DisplayUser> list = new List<DisplayUser>();
         checkedTreeNode.Tag = this.BindingNodeState(snapShotStatData, this.getTreeNodeFailReason(checkedTreeNode.Text), checkedTreeNode, checkedTreeNode.Text);
     }
     return (List<DisplayUser>) checkedTreeNode.Tag;
 }
コード例 #13
0
ファイル: SimulationSubSys.cs プロジェクト: xiaoyj/Space
 private List<User> FindUserListByReason(SnapShotStatData snapData, FailReason reason, List<User> userList)
 {
     Dictionary<FailReason, List<User>> dictionary = new Dictionary<FailReason, List<User>>();
     dictionary.Add(FailReason.CallDrop, snapData.OffLineList);
     dictionary.Add(FailReason.DlRsrpFail, snapData.DlRsrpFailList);
     dictionary.Add(FailReason.DlRsSinrFail, snapData.DlRsSinrFailList);
     dictionary.Add(FailReason.UlRsSinrFail, snapData.UlRsSinrFailList);
     dictionary.Add(FailReason.PuschAndPdschSinrFail, new List<User>());
     dictionary.Add(FailReason.Satisfied, snapData.SatisfiedList);
     dictionary.Add(FailReason.UlRsrpFail, snapData.UlRsrpFailList);
     if (!dictionary.ContainsKey(reason))
     {
         throw new ArgumentException(GeneralResource.GENERAL_ERROR);
     }
     return dictionary[reason];
 }
コード例 #14
0
ファイル: SimulationSubSys.cs プロジェクト: xiaoyj/Space
 private List<DisplayUser> BindingNodeState(SnapShotStatData snapData, FailReason reason, TreeNode node, string nodeName)
 {
     List<DisplayUser> list = new List<DisplayUser>();
     List<StaSimuSiteResult> statSimuSiteResultList = snapData.StatSimuSiteResultList;
     List<User> userList = new List<User>();
     List<SymbolElement> list4 = new List<SymbolElement>();
     SymbolElement item = new SymbolElement(Color.Green);
     list4.Add(item);
     item = new SymbolElement(Color.Yellow);
     list4.Add(item);
     item = new SymbolElement(Color.Pink);
     list4.Add(item);
     item = new SymbolElement(Color.DarkRed);
     list4.Add(item);
     item = new SymbolElement(Color.OrangeRed);
     list4.Add(item);
     item = new SymbolElement(Color.PaleVioletRed);
     list4.Add(item);
     item = new SymbolElement(Color.DeepPink);
     list4.Add(item);
     item = new SymbolElement(Color.Black);
     list4.Add(item);
     item = new SymbolElement(Color.Red);
     list4.Add(item);
     userList = this.FindUserListByReason(snapData, reason, userList);
     foreach (User user in userList)
     {
         DisplayUser user2 = new DisplayUser();
         StatSimuUserResult userResult = null;
         StatSimuCarrierResult carrier = null;
         this.getUserResult(user, snapData, out userResult, out carrier);
         user2.LTEUser = userResult;
         user2.SimulationName = node.Parent.Text;
         user2.SnapShotName = node.Text;
         user2.SymbolElement = list4[(int) reason];
         user2.UserState = nodeName;
         if (carrier != null)
         {
             user2.BestServer = carrier.CarrierName;
         }
         else
         {
             user2.BestServer = "";
         }
         list.Add(user2);
     }
     return list;
 }