예제 #1
0
 public void Init(SimulationContext context, List<User> users, ReportProgressDelegate reporter)
 {
     List<User> ulRsrpFailUserList;
     List<User> dlRsrpFailUserList;
     ICommonChannelMeasure measure = context.ProcessorFactory.BuildCommonChannelMeasure();
     ITotalLossMatrix matrix = context.ProcessorFactory.BuildTotalLossMatrix(context.SimulationInfo.SubSysInterface, context.SimulationInfo.Coefficientabc);
     List<ISimulationUser> userList = this.InitSimulationUser(users);
     context.DataManager.SimulationUserList = userList;
     context.DataManager.UlUserNum = 0;
     context.DataManager.DlUserNum = 0;
     foreach (SimulationUser user in userList)
     {
         this.InitUserState(user, context.DataManager);
     }
     matrix.InitUserTotalLossList(userList, context.DataManager.SimulationCarrierList, reporter);
     context.ProcessorFactory.BuildBestServerCell().DetermineUserServerCell(userList, out dlRsrpFailUserList, out ulRsrpFailUserList);
     context.DataManager.DlRsrpFailUserList = dlRsrpFailUserList;
     context.DataManager.UlRsrpFailUserList = ulRsrpFailUserList;
     List<ISimulationUser> relayUserList = RCListHelp.GetRelayUserListFromSimuCarrierList(context.DataManager.SimulationCarrierList);
     context.ProcessorFactory.BuildBestServerCell().DetermineUserServerCell(relayUserList, out dlRsrpFailUserList, out ulRsrpFailUserList);
     //所有用户
     List<ISimulationUser> userlist = new List<ISimulationUser>();
     foreach (SimulationCarrier carrier in context.DataManager.SimulationCarrierList)
     {
         userlist.AddRange(carrier.UlUserList);
         userlist.AddRange(carrier.DlUserList);
     }
     this.InitUsersMIMOClutterGain(userlist, context);
     this.GetMinAndMaxSinrTarget(userlist);
     //计算用户的初始的RS sinr,即IntialDlRsSinr
     measure.CalculateIntialDlRsSinr(userlist);
 }
예제 #2
0
 public void init(SimulationContext context)
 {
     this.m_context = context;
     this.m_AdmissionProcessor.Init(this.m_context.DataManager.SimulationCarrierList);
     if (this.m_nextProcessor != null)
     {
         this.m_nextProcessor.init(context);
     }
 }
예제 #3
0
 public void init(SimulationContext context)
 {
     this.m_context = context;
     this.m_PowerControlProcessor = this.m_context.ProcessorFactory.BuildIDlPowerControl();
     this.m_PowerControlProcessor.DlPowerControlInit(context.DataManager.SimulationCarrierList);
     if (this.m_NextPorcessor != null)
     {
         this.m_NextPorcessor.init(context);
     }
 }
예제 #4
0
 public void init(SimulationContext context)
 {
     this.m_context = context;
     this.m_PdschMeasure = context.ProcessorFactory.BuildPDSCHMeasure();
     this.m_PdschMeasure.DlPDSCHMeasureInit(context.DataManager.SimulationCarrierList);
     if (this.m_NextProcessor != null)
     {
         this.m_NextProcessor.init(context);
     }
 }
예제 #5
0
 public void init(SimulationContext context)
 {
     this.m_context = context;
     this.m_DlIcicProcessor = context.ProcessorFactory.BuildDlIcicProcessor();
     this.m_DlIcicProcessor.Init(context.DataManager.SimulationCarrierList);
     if (this.m_NextProcessor != null)
     {
         this.m_NextProcessor.init(context);
     }
 }
예제 #6
0
 public void init(SimulationContext context)
 {
     this.m_context = context;
     this.m_AccessAction = context.ProcessorFactory.BuildAccessControlProcessor();
     this.m_AccessAction.Exectue(this.m_context.DataManager.SimulationCarrierList);
     this.m_VoipAccessDispatch.init(this.m_context.DataManager.SimulationCarrierList);
     if (this.m_nextProc != null)
     {
         this.m_nextProc.init(context);
     }
 }
예제 #7
0
 public void init(SimulationContext context)
 {
     this.m_context = context;
     if (SimulationConstant.FDD_ON)
     {
         this.m_PuschMeasure = context.ProcessorFactory.BuildPUSCHMeasure();
     }
     if (this.m_NextProcessor != null)
     {
         this.m_NextProcessor.init(context);
     }
 }
예제 #8
0
 private void InitUsersMIMOClutterGain(List<ISimulationUser> users, SimulationContext context)
 {
     foreach (SimulationUser user in users)
     {
         LTETerminal terminal = user.LTEUser.Terminal.NetTerminalList[0] as LTETerminal;
         if (user.LTEUser.LinkType == LinkType.Downlink)
         {
             user.IsSmSupported = terminal.DlSmSupported;
         }
         else
         {
             user.IsSmSupported = terminal.UlSmSupported;
         }
         UserManager.getInstance().IsUserAmsSupported(context.SimulationInfo.SubSysInterface, user);
         user.MIMOClutterGain = UserManager.getInstance().GetMIMOClutterGain(context.SimulationInfo.SubSysInterface, user, user.IsSmSupported);
         if (user.IsAmsSupported)
         {
             user.SfbcMimoClutterGain = UserManager.getInstance().GetMIMOClutterGain(context.SimulationInfo.SubSysInterface, user, false);
         }
     }
 }