Exemple #1
0
 public TotalLossCalculation(OtherSubSysInterface subSysInterface, Coefficient coefficientABC)
 {
     this.m_SubSysInterface = subSysInterface;
     this.m_AutoRandom = new Random(this.GetHashCode());
     if (SimulationConstant.USE_LINKLOSS && (subSysInterface != null))
     {
         this.m_LinkLoss = this.m_SubSysInterface.LossCalculatorBuilder.GetCalculator(0.85f);
     }
     this.m_Coefficientabc = coefficientABC;
 }
Exemple #2
0
 public void Run(ref bool isSimulateCanceled)
 {
     this.m_result = null;
     Coefficient coefficient = new Coefficient();
     SimulationInfo initinfo = new SimulationInfo();
     initinfo.Nsnapshot = Convert.ToInt16(this.m_param.NumOfSnapShot);
     SimulationConstant.IS_HARQ_ON = this.m_param.IsHARQ;
     SimulationConstant.IS_IRC_ON = this.m_param.IsIRC;
     SimulationConstant.FDD_ON = this.m_param.IsFDD;
     SimulationConstant.UL_TTI_BUNDLING_ON = this.m_param.IsTTIBundling;
     SimulationConstant.UL_VMIMO_ON = this.m_param.IsVMIMO;
     SimulationConstant.CONV_ULLOAD_THRESHOLD = this.m_param.ULLoadConThreshold;
     SimulationConstant.CONV_DLLOAD_THRESHOLD = this.m_param.DLLoadConThreshold;
     SimulationConstant.CONV_ULTH_THRESHOLD = this.m_param.ULThroughputConThreshold;
     SimulationConstant.CONV_DLTH_THRESHOLD = this.m_param.DLThroughputConThreshold;
     SimulationConstant.CONV_ULIOT_THRESHOLD = this.m_param.IOTConThreshold;
     initinfo.TtiWarmup = Convert.ToInt16((int)(this.m_param.NumOfTTI - SimulationConstant.DELTA_TTI));
     this.m_SnapShotNum = this.m_param.NumOfSnapShot;
     initinfo.NttiLmd = Convert.ToInt16(this.m_param.NumOfTTI);
     initinfo.Name = this.m_param.NameOfSimulation;
     coefficient.m_SiteCorr = this.m_param.SiteCorr;
     coefficient.m_CellCorr = this.m_param.CellCorr;
     coefficient.m_UserCorr = this.m_param.UserCorr;
     initinfo.Coefficientabc = coefficient;
     if (!this.GetCellCollection())
     {
         isSimulateCanceled = true;
         MessageBoxUtil.ShowError(SimulationResource.SIMULATION_CAL_IS_WRONG);
         this.m_calcCells.Clear();
     }
     else
     {
         initinfo.CalCells = this.m_calcCells;
         this.getCloneService();
         this.getCloneMobility();
         this.getCloneTerminal();
         this.m_GroupChildNodeStateImage = new Dictionary<short, List<short>>();
         CarrierManager.getInstance().Carriers = new List<LTECell>();
         foreach (Transceiver transceiver in this.m_calcCells)
         {
             foreach (IACell cell in transceiver.Cells)
             {
                 if ((cell is LTECell) && cell.Active)
                 {
                     CarrierManager.getInstance().Carriers.Add(cell as LTECell);
                 }
             }
         }
         UserManager.getInstance().UserBuilder = new UserManager.LTEUserBuilder(this.GenUsers);
         initinfo.SubSysInterface = this.m_otherSubSysInterface;
         this.m_otherSubSysInterface.SetProgressScope(initinfo.Name, 0, 100);
         this.m_otherSubSysInterface.ReportProgress(initinfo.Name, 0, SimulationResource.SIMULATION_INIT_4);
         #region 添加制式选择
         if (m_param .IsFDD )                                             
         {
             this.m_SimulateEngine = new SimulationEngine(initinfo);
         }
         else
         {
             this.m_SimulateEngine = new TDDSimulationEngine(initinfo);
         }
         #endregion
         this.m_SimulateEngine.Execute();
         if (this.m_SimulateEngine.IsSimulateCanceled)
         {
             this.m_otherSubSysInterface.ResetProgress(initinfo.Name);
             this.m_calcCells.Clear();
             isSimulateCanceled = true;
         }
         else
         {
             this.m_otherSubSysInterface.ReportProgress(initinfo.Name, 100, SimulationResource.SIMULATION_GENERATE_STATISTICS);
             this.m_result = this.m_SimulateEngine.Statistic();
             if (this.m_result == null)
             {
                 this.m_otherSubSysInterface.ResetProgress(initinfo.Name);
                 isSimulateCanceled = true;
                 this.m_calcCells.Clear();
             }
             else
             {
                 this.GetGraghResult();
                 this.m_otherSubSysInterface.ResetProgress(initinfo.Name);
                 this.m_calcCells.Clear();
             }
         }
     }
 }
Exemple #3
0
 public TotalLossMatrix(OtherSubSysInterface subSysInterface, Coefficient coefficientABC)
 {
     this.m_TotalLossCalObj = new TotalLossCalculation(subSysInterface, coefficientABC);
 }
 public ITotalLossMatrix BuildTotalLossMatrix(OtherSubSysInterface subSysInterface, Coefficient coefficientABC)
 {
     return new Huawei.UNet.LTESimulation.Control.TotalLossMatrix(subSysInterface, coefficientABC);
 }
Exemple #5
0
 public float CalculateShadowFadeValue(RelayCell carrier, User user, Coefficient abcValue, float sigmma)
 {
     ShadowOrNormal normal;
     float num;
     if (this.m_shadowNormalMapRelay.TryGetValue(user.Id, out normal))
     {
         if (!normal.ShadowSite.TryGetValue(carrier.ParentRN.ID, out num))
         {
             float normalValue = normal.NormalValue;
             num = this.calculateShadow(abcValue, sigmma, normalValue);
             normal.ShadowSite.Add(carrier.ParentRN.ID, num);
         }
         return num;
     }
     float num3 = this.calculateUserNormal(sigmma);
     normal = new ShadowOrNormal(num3);
     num = this.calculateShadow(abcValue, sigmma, num3);
     normal.ShadowSite.Add(carrier.ParentRN.ID, num);
     this.m_shadowNormalMapRelay.Add(user.Id, normal);
     return num;
 }
Exemple #6
0
 private float calculateShadow(Coefficient abcValue, float sigmma, float userNormal)
 {
     float num = (float) Math.Sqrt((double) abcValue.m_SiteCorr);
     float num2 = (float) Math.Sqrt((double) abcValue.m_UserCorr);
     float num3 = num * this.Normal(0f, sigmma);
     return (num3 + (num2 * userNormal));
 }