Exemplo n.º 1
0
 public void CopyFrom(UMTSHSDPABearer copyObj)
 {
     base.Technology = copyObj.Technology;
     this.CQI = copyObj.CQI;
     this.m_TransportBlSize = copyObj.TransportBlSize;
     this.m_HspdschNum = copyObj.HspdschNum;
     this.m_RlcPeakthroughput = copyObj.RlcPeakthroughput;
     this.m_Modulation = copyObj.Modulation;
 }
Exemplo n.º 2
0
        private void OperateAfterSuccessedSchedule(UMTSSimCell cell, UMTSSimUser user, UMTSHSDPABearer bear)
        {
            m_SCCHNum--;
            user.AssignedPower = (float)UnitTrans.dBto(bear.Eb_No) * user.Io;
            user.AssignedCode = bear.HspdschNum;
            user.BearerIndex = (int)(bear.BLER);            
            user.IsScheduledInTTI = true;
            user.IsScheduled = true;

            cell.HSDPA_UsedPower += user.AssignedPower;
            cell.HSDPA_UsedCode += user.AssignedCode;
            cell.HSDPA_UsedHsscchPower += (float)UnitTrans.dBto(cell.NECell.HSSCCHPower);

            //Debug.WriteLine(m_CommonParams.CurrentTTINum.ToString());
            if (user.ServiceType == CommonServiceType.CSService)
            {
                int delay = m_CommonParams.CurrentTTINum - user.LastServerdTTI;
                user.CSUserWaitDelay.Add(delay);
            }
            if (m_CommonParams.CurrentTTINum > 90)
            { }
            user.LastServerdTTI = m_CommonParams.CurrentTTINum;
            user.ServedTimeSlotNum++;

            if (bear.RlcPeakthroughput < user.RequestRate)
            {
                user.SchedulingRate = bear.RlcPeakthroughput;
            }
            else
            {
                user.SchedulingRate = user.RequestRate;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 按照小区所用码资源和功率资源最均衡的方式,给承载排序
        /// </summary>
        /// <param name="hsdpaBearList"></param>
        private void SortBear(List<UMTSHSDPABearer> hsdpaBearList, UMTSSimUser user, UMTSSimCell cell)
        {
            List<float> RatioList = new List<float>();
            //TODO:这里可以考察一下是用小区总的码资源除以功率资源,还是仅用HSDPA可用的码资源除以功率资源
            float k = cell.HSDPA_MaxAvailCode / (float)UnitTrans.dBto(cell.NECell.AvailableHSDPAPower);
            //计算每一个承载的比值
            foreach (UMTSHSDPABearer bear in hsdpaBearList)
            {
                float power = HSDPA_CommonCalc.CalculatePower(bear.Eb_No, user.Io, user.DLLoss);
                float r = (bear.HspdschNum + cell.HSDPA_UsedCode) / (power + cell.HSDPA_UsedPower);
                RatioList.Add(Math.Abs(r - k));
            }

            float[] ratioArray = new float[hsdpaBearList.Count];
            UMTSHSDPABearer[] bearArray = new UMTSHSDPABearer[hsdpaBearList.Count];
            for (int i = 0; i < hsdpaBearList.Count; i++)
            {
                ratioArray[i] = RatioList[i];
                bearArray[i] = hsdpaBearList[i];
            }
            Array.Sort(ratioArray, bearArray);
            for (int i = 0; i < hsdpaBearList.Count; i++)
            {
                hsdpaBearList[i] = bearArray[i];
            }
        }