Ejemplo n.º 1
0
 private void CreateQueueFactory(IDlScheduleCarrier carrier)
 {
     SchedulePolicy schedulePolicy = carrier.SchedulePolicy;
     if (!this.m_QueueFactoryDic.ContainsKey(schedulePolicy))
     {
         IUserQueueFactory factory = CreateQueueFactory(schedulePolicy);
         this.m_QueueFactoryDic.Add(schedulePolicy, factory);
     }
 }
Ejemplo n.º 2
0
 //private void CalUsableRbNumPerTti(IDlScheduleCarrier dlScheduleCarrier, int ttil)
 //{
 //    int reserveRbNum;
 //    SimulationCarrier carrier = dlScheduleCarrier as SimulationCarrier;
 //    DLCarrierTag dLScheduleCarrierTag = dlScheduleCarrier.DLScheduleCarrierTag as DLCarrierTag;
 //    byte usableRbNum = Convert.ToByte(Math.Floor((double)((dlScheduleCarrier.BandWidthRbNum * dLScheduleCarrierTag.DLloadTarget) + 0.001)));
 //    if ((ttil % 10) == 0)
 //    {
 //        reserveRbNum = 4;
 //        dlScheduleCarrier.TypeATxPower = ((SimulationCarrier)dlScheduleCarrier).CommonPowerTypeA[0];
 //        dlScheduleCarrier.TypeBTxPower = ((SimulationCarrier)dlScheduleCarrier).CommonPowerTypeB[0];
 //    }
 //    else
 //    {
 //        reserveRbNum = 0;
 //        dlScheduleCarrier.TypeATxPower = ((SimulationCarrier)dlScheduleCarrier).CommonPowerTypeA[1];
 //        dlScheduleCarrier.TypeBTxPower = ((SimulationCarrier)dlScheduleCarrier).CommonPowerTypeB[1];
 //    }
     
 //    int num3 = Math.Max(0, usableRbNum - reserveRbNum);
 //    num3 -= carrier.TotalRelayUsedRBNumInOneTTI ;
 //    dLScheduleCarrierTag.UsableRbNumPerTti = Convert.ToByte(num3);
 //    dLScheduleCarrierTag.TypeARemaindPower = dLScheduleCarrierTag.CarrierMaxPower - dlScheduleCarrier.TypeATxPower;
 //    dLScheduleCarrierTag.TypeBRemaindPower = dLScheduleCarrierTag.CarrierMaxPower - dlScheduleCarrier.TypeBTxPower;
 //}
 private void CalUsableRbNumPerTti(IDlScheduleCarrier dlScheduleCarrier, int ttil)
 {
     int reserveReNum=0;
     int RENumOfPreRB = 84;
     int reserveReNumOfSsch = 72;
     int reserveReNumOfPsch=72;
     int reserveRENumOfPbch = 240;
     SimulationCarrier carrier = dlScheduleCarrier as SimulationCarrier;
     int[,] subFrameMatrix = carrier.TDDSubFrameMatrix;
     int subFrameCongig = carrier.TDDSubFrameAllocation;
     int subFrameIndex = ttil % 10;
     DLCarrierTag dLScheduleCarrierTag = dlScheduleCarrier.DLScheduleCarrierTag as DLCarrierTag;
     //byte usableRbNum = Convert.ToByte(Math.Floor((double)((dlScheduleCarrier.BandWidthRbNum * dLScheduleCarrierTag.DLloadTarget) + 0.001)));
     int usableReNum = dlScheduleCarrier.BandWidthRbNum *RENumOfPreRB;
     if (subFrameIndex == 0)
     {
         reserveReNum = reserveReNumOfSsch + reserveRENumOfPbch;
         dlScheduleCarrier.TypeATxPower = ((SimulationCarrier)dlScheduleCarrier).CommonPowerTypeA[0];
         dlScheduleCarrier.TypeBTxPower = ((SimulationCarrier)dlScheduleCarrier).CommonPowerTypeB[0];
     }
     else if(subFrameIndex ==5)
     {
         reserveReNum = reserveReNumOfSsch;
         dlScheduleCarrier.TypeATxPower = ((SimulationCarrier)dlScheduleCarrier).CommonPowerTypeA[1];
         dlScheduleCarrier.TypeBTxPower = ((SimulationCarrier)dlScheduleCarrier).CommonPowerTypeB[1];
     }
     else if (subFrameIndex == 1 ||(subFrameIndex == 6 && subFrameMatrix[subFrameCongig, subFrameIndex] == 2))
     {
         reserveReNum = usableReNum / 3 + reserveReNumOfPsch;
         dlScheduleCarrier.TypeATxPower = ((SimulationCarrier)dlScheduleCarrier).CommonPowerTypeA[1];
         dlScheduleCarrier.TypeBTxPower = ((SimulationCarrier)dlScheduleCarrier).CommonPowerTypeB[1];
     }
     else 
     {
         reserveReNum = 0;
         dlScheduleCarrier.TypeATxPower = ((SimulationCarrier)dlScheduleCarrier).CommonPowerTypeA[1];
         dlScheduleCarrier.TypeBTxPower = ((SimulationCarrier)dlScheduleCarrier).CommonPowerTypeB[1];
     }
     int num3 = Math.Max(0, usableReNum - reserveReNum);
     num3 = (int)(num3 / RENumOfPreRB);
     //num3 -= carrier.TotalRelayUsedRBNumInOneTTI;           
     dLScheduleCarrierTag.UsableRbNumPerTti = Convert.ToByte(num3);
     dLScheduleCarrierTag.TypeARemaindPower = dLScheduleCarrierTag.CarrierMaxPower - dlScheduleCarrier.TypeATxPower;
     dLScheduleCarrierTag.TypeBRemaindPower = dLScheduleCarrierTag.CarrierMaxPower - dlScheduleCarrier.TypeBTxPower;
 }
Ejemplo n.º 3
0
 private bool isHighCarrier(IDlScheduleCarrier nbrCarrier)
 {
     float num = this.carrierTag.Azimuth - DLCarrierTag.GetLTECarrierAzimuth(nbrCarrier);
     return (((num <= 180f) && (num >= 0f)) || ((num <= -180f) && (num >= -360f)));
 }
Ejemplo n.º 4
0
 private bool IsSfSbSsSsStriNbrCarrier(IDlScheduleCarrier nbrCarrier)
 {
     return ((nbrCarrier == null) || this.isHighCarrier(nbrCarrier));
 }
Ejemplo n.º 5
0
        private void CalUsableRbNumPerTti(IDlScheduleCarrier dlScheduleCarrier, int ttil)
        {
            int reserveRbNum;
            SimulationCarrier carrier = dlScheduleCarrier as SimulationCarrier;
            DLCarrierTag dLScheduleCarrierTag = dlScheduleCarrier.DLScheduleCarrierTag as DLCarrierTag;
            byte usableRbNum = Convert.ToByte(Math.Floor((double)((dlScheduleCarrier.BandWidthRbNum * dLScheduleCarrierTag.DLloadTarget) + 0.001)));
            if (SimulationConstant.FDD_ON)
            {
                if (ttil % 8 == 7)

                    if ((carrier.RelayMBSFNCount == 1) && (carrier.ToTalRelayUsedRBNum > usableRbNum * 0.5))
                    {
                        carrier.RelayMBSFNCount = 2;

                    }
                if ((carrier.RelayMBSFNCount == 2) && (carrier.ToTalRelayUsedRBNum > usableRbNum * 1.0))
                {
                    carrier.RelayMBSFNCount = 3;
                }
                if ((carrier.RelayMBSFNCount == 2) && (carrier.ToTalRelayUsedRBNum < usableRbNum * 0.5))
                {
                    carrier.RelayMBSFNCount = 1;
                }
                if ((carrier.RelayMBSFNCount == 3) && (carrier.ToTalRelayUsedRBNum < usableRbNum * 1.0))
                {
                    carrier.RelayMBSFNCount = 2;
                }
            }
            else
            {
                if (ttil % 10 == 0)

                    if ((carrier.RelayMBSFNCount == 1) && (carrier.ToTalRelayUsedRBNum > usableRbNum * 0.5))
                    {
                        carrier.RelayMBSFNCount = 2;
                    }
                if ((carrier.RelayMBSFNCount == 2) && (carrier.ToTalRelayUsedRBNum > usableRbNum * 1.0))
                {
                    carrier.RelayMBSFNCount = 3;
                }
                if ((carrier.RelayMBSFNCount == 2) && (carrier.ToTalRelayUsedRBNum < usableRbNum * 0.5))
                {
                    carrier.RelayMBSFNCount = 1;
                }
                if ((carrier.RelayMBSFNCount == 3) && (carrier.ToTalRelayUsedRBNum < usableRbNum * 1.0))
                {
                    carrier.RelayMBSFNCount = 2;
                }
            }

            if ((ttil % 10) == 0)
            {
                reserveRbNum = 4;
                dlScheduleCarrier.TypeATxPower = ((SimulationCarrier)dlScheduleCarrier).CommonPowerTypeA[0];
                dlScheduleCarrier.TypeBTxPower = ((SimulationCarrier)dlScheduleCarrier).CommonPowerTypeB[0];
            }
            else
            {
                reserveRbNum = 0;
                dlScheduleCarrier.TypeATxPower = ((SimulationCarrier)dlScheduleCarrier).CommonPowerTypeA[1];
                dlScheduleCarrier.TypeBTxPower = ((SimulationCarrier)dlScheduleCarrier).CommonPowerTypeB[1];
            }

            int num3 = Math.Max(0, usableRbNum - reserveRbNum);
            num3 -= carrier.TotalRelayUsedRBNumInOneTTI;
            dLScheduleCarrierTag.UsableRbNumPerTti = Convert.ToByte(num3);
            dLScheduleCarrierTag.TypeARemaindPower = dLScheduleCarrierTag.CarrierMaxPower - dlScheduleCarrier.TypeATxPower;
            dLScheduleCarrierTag.TypeBRemaindPower = dLScheduleCarrierTag.CarrierMaxPower - dlScheduleCarrier.TypeBTxPower;
        }