public ScheduleResource InitResTemplet(byte bandwidthRbNum, LteAlgParam algParameter) { ScheduleResource scheduleResourceIn = new ScheduleResource(); byte num = (byte)(bandwidthRbNum - algParameter.UlPucchRbs); byte puschRbNumEdge = (byte) Math.Floor((double) (((double) num) / 3.0));//±ßÔµRb×ÊԴΪʲô/3 £¿ this.InitRbList(scheduleResourceIn, bandwidthRbNum, puschRbNumEdge, algParameter); return scheduleResourceIn; }
public AdvAlgParamFormEditor(LTECellCollection carrierColl, LteAlgParam param, string freBandName, string carrierName) { this.m_OriParam = param; this.m_Param = (LteAlgParam) param.Clone(); this.m_FreBandName = freBandName; this.m_CarrierName = carrierName; this.m_CarrierColl = carrierColl; }
public static IResBuilder GetResBuilder(bool isIcicOn, LteAlgParam.EdgeUserFreStyle edgeUserFreNum) { if (isIcicOn) { return GetIcicOnResBuilder(edgeUserFreNum); } return new IcicOffResBuilder(); }
protected override void InitRbList(ScheduleResource scheduleResourceIn, byte bandwidthRbNum, byte puschRbNumEdge, LteAlgParam algParameter) { List<RBData> centerRbDataList = new List<RBData>(); List<RBData> edgeRbDataList = new List<RBData>(); byte puschStartRbIndex = 0; byte puschEndRbIndex = Convert.ToByte((int)((puschStartRbIndex + (bandwidthRbNum - algParameter.UlPucchRbs)) - 1)); this.InitCenterRbRes(puschStartRbIndex, puschRbNumEdge, centerRbDataList); this.InitEdgeRbRes(puschStartRbIndex, puschEndRbIndex, puschRbNumEdge, edgeRbDataList); scheduleResourceIn.RbLists.Add(centerRbDataList); scheduleResourceIn.RbLists.Add(edgeRbDataList); }
private static IResBuilder GetIcicOnResBuilder(LteAlgParam.EdgeUserFreStyle edgeUserFreNum) { if (edgeUserFreNum == LteAlgParam.EdgeUserFreStyle.Style1)//边沿用户的频率类型? { return new IcicOnStyleOneResBuilder(); } if (edgeUserFreNum == LteAlgParam.EdgeUserFreStyle.Style2) { return new IcicOnStyleTwoResBuilder(); } return new IcicOnStyleThreeResBuilder(); }
public void copyFrom(LteAlgParam algParam) { this.DlEdgeUserFreNum = algParam.DlEdgeUserFreNum; this.UlEdgeUserFreNum = algParam.UlEdgeUserFreNum; this.UlFreqSelOn = algParam.UlFreqSelOn; this.DlFreqSelOn = algParam.DlFreqSelOn; this.UllcicOn = algParam.UllcicOn; this.DllcicOn = algParam.DllcicOn; this.UlPucchRbs = algParam.UlPucchRbs; this.DlPdcchSymbols = algParam.DlPdcchSymbols; this.DlMaxSchUser = algParam.DlMaxSchUser; this.UlMaxSchUser = algParam.UlMaxSchUser; this.UlIoTTarget = algParam.UlIoTTarget; this.DlIoTTarget = algParam.DlIoTTarget; this.DlPowerControlOn = algParam.DlPowerControlOn; }
/// <summary> /// 主程序 /// </summary> /// <param name="index"></param> /// <returns></returns> public bool IsBuildOneBinOk(int index) { this.m_BestCarrierID = this.m_BestServerCarrierID[index]; if ((this.m_BestCarrierID != this.m_InvalidateValue) && (this.m_OneBinValueTemp.UL_RSRP != this.m_InvalidateValue)) { if (!ValiteTeminal()) { return true; } m_bestServer = m_DataManager.GetCellExByID(m_BestCarrierID); //RelayNode relayNode = this.m_DataManager.Group.TrafficTerminal.NetTerminalList[0] as RelayNode; LTETerminal terminal = this.m_DataManager.Group.TrafficTerminal.NetTerminalList[0] as LTETerminal; int rbNum = 0; double gain = 0.0; //if (m_bestServer is LteCellEx) //{ LteCellEx lteCellEx = (LteCellEx)m_bestServer; if (lteCellEx.ULMIMO == null) { return true; } LTECell lteCell = lteCellEx.LteCell; this.m_ulActualIoT = lteCell.UlActualIoT; this.m_FreqBand = lteCell.FreqBand; this.m_RSPower = lteCell.RSPower; this.m_ActualUlLoad = lteCell.ActualUlLoad; this.m_LteAlgParam = lteCell.LteAlgParameter; this.m_NoisePowerOfBandWidth = lteCellEx.LteFreqBandEx.NoisePowerOfBandWidth; //} //else //{ // if (m_bestServer is RelayCellEx) // { // RelayCellEx relayCellEx = (RelayCellEx)m_bestServer; // RelayCell relayCell = relayCellEx.RelayCell; // this.m_ulActualIoT = relayCell.UlActualIoT; // this.m_FreqBand = relayCell.FreqBand; // this.m_RSPower = relayCell.RSPower; // this.m_ActualUlLoad = relayCell.ActualUlLoad; // this.m_LteAlgParam = relayCell.RelayAlgParameter; // this.m_NoisePowerOfBandWidth = relayCellEx.RelayFreqBandEx.NoisePowerOfBandWidth; // } //} if ((this.m_IRCSwitch && (this.m_ulActualIoT >= 3.0)) && (this.m_ulActualIoT <= 15.0)) { gain = Huawei.UNet.Application.Common.IRC.IRC.CalculateIRCGain(m_bestServer.IRCFigure, this.m_ulActualIoT); } this.GetHighSinrGate(m_bestServer.ULDemodulationTable, this.m_HighMCS, out this.m_AcutalHighMcsIndex, out this.m_AcutalHighSinrGate); this.m_HighMCSSinr = Convert.ToInt16((double)(this.m_AcutalHighSinrGate * 100.0)); if (terminal.CanUseRBNum) { rbNum = terminal.RBNum; this.GetPushSinrByFixedRB(index, terminal, rbNum, gain); } else { /*lteCell.FreqBand.RBNum 为100,lteCell.FreqBand.RBNum 为16*/ rbNum = Convert.ToInt32((float)(m_FreqBand.RBNum * m_ActualUlLoad)) - m_LteAlgParam.UlPucchRbs; this.GetPuschSinr(index, terminal, rbNum, m_ActualUlLoad, gain); } } return true; }
//Todo``` public void CopyFrom(RelayCell cell) { m_Ams = cell.Ams; m_AmsThreshold = cell.AmsThreshold; base.CopyFrom(cell); this.m_TAC = cell.TAC; m_PhyID = cell.PhyID; m_RCToCellAnt = cell.RCToCellAnt; m_CellToUEAnt = cell.CellToUEAnt; m_RelayUEPropModelConfig = cell.RelayUEPropModelConfig; m_SchedulePolicy = cell.SchedulePolicy; m_HighSpeed = cell.HighSpeed; //m_parentRN = cell.ParentRN; m_RSPower = cell.RSPower; m_CellRadius = cell.CellRadius; m_DlActualTxPower = cell.DlActualTxPower; m_BCHPoffset = cell.BCHPoffset; m_BCHPower = cell.BCHPower; m_BestStartFrequency = cell.BestStartFrequency; m_RCellPriority = cell.RCellPriority; m_RCellRadius = cell.RCellRadius; m_PCFICHPoffset = cell.PCFICHPoffset; m_PDCCHPoffset = cell.PDCCHPoffset; m_PHICHPoffset = cell.PHICHPoffset; ; m_SCHPoffset = cell.SCHPoffset; m_SCHPower = cell.SCHPower; m_UlActualIoT = cell.UlActualIoT; m_RPUCCHPower = cell.RPUCCHPower; //Cal m_RPUSCHPower = cell.RPUSCHPower; //add by xg 20100224 m_RelayAlgParameter = cell.RelayAlgParameter; m_PB = cell.PB; m_ActualDlLoad = cell.ActualDlLoad; m_ActualUlLoad = cell.ActualUlLoad; m_PowerBias = cell.PowerBias; m_IsIndoor = cell.m_IsIndoor; m_DLRsSinrAccessThreshold = cell.DLRsSinrAccessThreshold; }
public RelayCell() { m_tran = new Transceiver(); base.SetDefaultValue(NetWorkType.LTE); m_TAC = 0; m_PhyID = 0; m_RCToCellAnt = new AntConfig(); m_CellToUEAnt = new AntConfig(); m_CellToUEAnt.Height = 5f; m_RelayUEPropModelConfig = new PropModelConfig(); m_SchedulePolicy = SchedulePolicy.PF; m_HighSpeed = HighSpeedType.LowSpeed; m_RSPower = 15f; m_RelayAlgParameter = new LteAlgParam(); m_BCHPoffset = 0f; if (base.FreqBand != null) { this.m_BestStartFrequency = base.FreqBand.DLFrequency; } else { this.m_BestStartFrequency = 0f; } m_DlActualTxPower = 44.927f; m_RCellPriority = 0; m_RCellRadius = 0f; m_PCFICHPoffset = 0f; m_PDCCHPoffset = 0f; m_PHICHPoffset = 0f; m_SCHPoffset = 0f; m_UlActualIoT = 2f; m_RPUCCHPower = 0f; m_RPUSCHPower = 0f; m_AntList = new List<AntConfig>(); m_AntList.Add(m_RCToCellAnt); m_AntList.Add(m_CellToUEAnt); m_PowerBias = 0f; m_IsIndoor = false; m_DLRsSinrAccessThreshold = -20f; this.m_ActualUlLoad = base.UlTargetLoad; this.m_ActualDlLoad = base.DlTargetLoad; }
protected abstract void InitRbList(ScheduleResource scheduleResourceIn, byte bandwidthRbNum, byte puschRbNumEdge, LteAlgParam algParameter);
public void MyTestInitialize() { m_NgbCarrierList = new List<ISimulationCarrier>(); m_AdCarrier1 = new SimulationCarrier(); m_AdCarrier2 = new SimulationCarrier(); m_AdCarrier1.AdmissionCarrierTag = new AdmissionCellTag(); m_AdCarrier2.AdmissionCarrierTag = new AdmissionCellTag(); m_LbThresHoldParam = new LBThresholdParam(); m_SUser1 = new SimulationUser(); m_SUser2 = new SimulationUser(); m_SUser1.AdmissionUserTag = new SimulationUser(); m_SUser2.AdmissionUserTag = new SimulationUser(); m_AdmissionCarrier = new SimulationCarrier(); LTECell ltecarrier = new LTECell(); m_AdmissionCarrier.Carrier = ltecarrier; m_AdCarrier1.Carrier = ltecarrier; m_AdCarrier2.Carrier = ltecarrier; FrequencyBand freband = new FrequencyBand(); freband.BandWidth = 100; ltecarrier.FreqBand = freband; m_AdmissionCarrier.AdmissionCarrierTag = new AdmissionCellTag(); m_Lbth = new LBThresholdParam(); m_DLLB = new DlLoadBalancingService(m_CurrentTTI, m_Lbth); m_LbUserList = new List<ISimulationUser>(); m_User1 = new SimulationUser(); m_User2 = new SimulationUser(); m_LbUserList.Add(m_User1); m_LbUserList.Add(m_User2); m_DlDataWaitUserList = new List<ISimulationUser>(); m_DlDataWaitUserList.Add(m_SUser1); m_DlDataWaitUserList.Add(m_SUser2); m_AdmissionCarrier.DlDataWaitUserList = m_DlDataWaitUserList; m_DlVoiceWaitUserList = new List<ISimulationUser>(); m_DlVoiceWaitUserList.Add(m_SUser1); m_DlVoiceWaitUserList.Add(m_SUser2); m_AdmissionCarrier.DlVoiceWaitUserList = m_DlVoiceWaitUserList; m_NgbList = new List<ISimulationCarrier>(); RelayCell relaycarrier = new RelayCell(); LteAlgParam ltealgparam = new LteAlgParam(); m_AdmissionCarrier.Carrier = relaycarrier; m_AdCarrier1.Carrier = relaycarrier; m_AdCarrier2.Carrier = relaycarrier; m_DlUserList = new List<ISimulationUser>(); m_DlUserList.Add(m_SUser1); m_DlUserList.Add(m_SUser2); m_AdmissionCarrier.DlUserList = m_DlUserList; m_CarrierListInComputerArea = new CarrierTotalLoss(); List<CarrierTotalLoss> listcarrier1 = new List<CarrierTotalLoss>(); CarrierTotalLoss a = new CarrierTotalLoss(); CarrierTotalLoss b = new CarrierTotalLoss(); listcarrier1.Add(a); listcarrier1.Add(b); SimulationCarrier carrier = new SimulationCarrier(); ((SimulationUser)m_SUser1).CarrierListInComputeArea = listcarrier1.ToArray(); ((SimulationUser)m_SUser2).CarrierListInComputeArea = listcarrier1.ToArray(); ((SimulationUser)m_SUser1).CarrierListInComputeArea[0].Carrier = carrier; ((SimulationUser)m_SUser2).CarrierListInComputeArea[0].Carrier = carrier; ((SimulationUser)m_SUser1).CarrierListInComputeArea[1].Carrier = carrier; ((SimulationUser)m_SUser2).CarrierListInComputeArea[1].Carrier = carrier; ((SimulationUser)m_SUser1).CarrierListInComputeArea[0].Carrier.Carrier = relaycarrier; ((SimulationUser)m_SUser2).CarrierListInComputeArea[0].Carrier.Carrier = relaycarrier; ((SimulationUser)m_SUser1).CarrierListInComputeArea[1].Carrier.Carrier = relaycarrier; ((SimulationUser)m_SUser2).CarrierListInComputeArea[1].Carrier.Carrier = relaycarrier; m_User1.CarrierListInComputeArea = listcarrier1.ToArray(); m_User2.CarrierListInComputeArea = listcarrier1.ToArray(); m_User1.CarrierListInComputeArea[0].Carrier = carrier; m_User2.CarrierListInComputeArea[0].Carrier = carrier; m_User1.CarrierListInComputeArea[1].Carrier = carrier; m_User2.CarrierListInComputeArea[1].Carrier = carrier; m_User1.CarrierListInComputeArea[0].Carrier.Carrier = relaycarrier; m_User2.CarrierListInComputeArea[0].Carrier.Carrier = relaycarrier; m_User1.CarrierListInComputeArea[1].Carrier.Carrier = relaycarrier; m_User2.CarrierListInComputeArea[1].Carrier.Carrier = relaycarrier; m_User1.BestServiceCellBeforeHandOver = a; m_User1.StroNbrBeforeHandOver = b; m_User2.BestServiceCellBeforeHandOver = a; m_User2.StroNbrBeforeHandOver = b; m_CarrierListInComputerArea.Carrier = carrier; relaycarrier.RSPower = 100; }
private List<LTECell> ConvertXLSToCell(XlsTable xlsCellTable) { List<LTECell> list = new List<LTECell>(); Dictionary<string, string> xlsNameToProper = new Dictionary<string, string>(); XLSProConst.CellXlsToGeneralPro(xlsNameToProper); Dictionary<string, string> dictionary2 = new Dictionary<string, string>(); XLSProConst.CellXlsToObjPro(dictionary2); Dictionary<string, string> dictionary3 = new Dictionary<string, string>(); XLSProConst.CellXlsToAlgParameterPro(dictionary3); Dictionary<string, string> dictionary4 = new Dictionary<string, string>(); XLSProConst.CellXlsToPropPro(dictionary4); for (int i = 0; i < xlsCellTable.Data.Rows.Count; i++) { DataRow dr = xlsCellTable.Data.Rows[i]; string colName = string.Empty; try { LTECell data = new LTECell(); data.ID = 0; data.BCHPoffset = 0f; data.SCHPoffset = 0f; PropModelConfig item = new PropModelConfig(); PropModelConfig config2 = new PropModelConfig(); data.PropModels.Add(item); data.PropModels.Add(config2); LteAlgParam param = new LteAlgParam(); data.LteAlgParameter = param; this.FillValue(xlsNameToProper, dr, data, ref colName); this.FillValue(dictionary3, dr, param, ref colName); foreach (string str2 in dictionary4.Keys) { object obj2 = dr[str2]; string propertyName = dictionary4[str2]; this.FillPropModleValue(item, obj2, propertyName, "Main", this.m_Model); this.FillPropModleValue(config2, obj2, propertyName, "Ext", this.m_Model); } foreach (string str4 in dictionary2.Keys) { Predicate<ReceptionEquipment> match = null; string value = dr[str4].ToString(); if (str4.Equals("Transceiver")) { Transceiver transceiver = new Transceiver(); transceiver.Name = value; data.Parent = transceiver; } if (str4.Equals("Reception")) { if (match == null) { match = delegate (ReceptionEquipment re) { return re.Name == value; }; } data.Reception = this.m_Model.TrafficForNetEntity.ReceptionEquipmentList.Find(match); } if (str4.Equals("FreqBand")) { FrequencyBand band = this.m_Model.LteFreBandCol.FindFrequencyBandByName(value); data.FreqBand = band; } } this.ReComPropModel(data); list.Add(data); } catch (Exception exception) { this.m_Model.EventVierService.WriteLog(string.Concat(new object[] { "Cells: Rows=(", i, ")", colName, "Error" }), Huawei.UNet.Frame.Interface.LogLevel.Warning); WriteLog.Logger.Warn(exception.Message); } } return list; }
public ResourceKey(byte bandWidth, bool isIcicOpen, LteAlgParam.EdgeUserFreStyle fpType) { this.bandWidthRbNum = bandWidth; this.fpType = fpType; this.isIcicOpen = isIcicOpen; }