Beispiel #1
0
 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;
 }
Beispiel #2
0
 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;
 }
Beispiel #3
0
 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);
 }
Beispiel #5
0
 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();
 }
Beispiel #6
0
 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;
 }
Beispiel #7
0
 /// <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;
 } 
Beispiel #8
0
 //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;
 }
Beispiel #9
0
 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;
 }
Beispiel #10
0
 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;

            

        }
Beispiel #12
0
 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;
 }
Beispiel #13
0
 public ResourceKey(byte bandWidth, bool isIcicOpen, LteAlgParam.EdgeUserFreStyle fpType)
 {
     this.bandWidthRbNum = bandWidth;
     this.fpType = fpType;
     this.isIcicOpen = isIcicOpen;
 }