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; }
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(); } } } }
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); }
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; }
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)); }