Пример #1
0
 private double GetLinkLossUlByDl(int index, LTECell bestServerCarrier)
 {
     throw new NotImplementedException();
     //double num = bestServerCarrier.RSPower - UnitTrans.ShortToDouble(this.m_BestServerRSRP[index]);
     //AntConfig config = bestServerCarrier.Parent.AntConfiguration[0];
     //return ((num - config.DlTotalLoss) + bestServerCarrier.get_SpaceBetweenDlAndUL());
 }
Пример #2
0
 private void addNewLteCarrier(string carrierName, ReceptionEquipment reception)
 {
     LTECell cell = new LTECell();
     this.SetIACellProperty(carrierName, reception, cell);
     cell.RefreshDLActualTxPower();
     this.AddIACellToCarriers(cell);
 }
Пример #3
0
 public double CalculateUlNoisePower(int RbNum, LTECell carrier)
 {
     double num = 0.0;
     FrequencyBand freqBand = carrier.FreqBand;
     //num = freqBand.get_NoisePowerOfBandWidth() + carrier.get_NoiseFigureOfBts();
     return (num + UnitTrans.todB((double) (((double) RbNum) / ((double) freqBand.RBNum))));
 }
Пример #4
0
 /// <summary>
 /// 计算backhaul链路的路损
 /// </summary>
 /// <param name="lteCell"></param>
 /// <param name="relayCell"></param>
 /// <returns></returns>
 public Dictionary<int, List<float>> CaclBackhaulPathLoss(LTECell lteCell, RelayCell relayCell)
 {
     //一个lteCell有两根天线,每根天线存一个路损值和天线值
     float calcResolution = 0;   
     SetCellResolution(lteCell, ref calcResolution);
     PathLossCalcParam[] cellCalcPara = m_CalcParamFactory.GetCellCalcPara(lteCell, calcResolution);
     Dictionary<int, List<float>> antennaPathLoss = new Dictionary<int, List<float>>();
     for (int i = 0; i < cellCalcPara.Length; i++)
     {
         float pathLoss = 0;
         float antGain = 0;
         SectionPathLossCalcParam sectionParam = cellCalcPara[i].SectionParamArray[0];
         IPathLossCalculator calcMethod = GetCalcMethod(sectionParam);
         if (calcMethod != null)
         {
             GeoXYLine geoXYLine = new GeoXYLine();
             Dictionary<string, object> modelDetailDictionary = new Dictionary<string, object>();
             pathLoss = calcMethod.CalculatePointPathLoss(sectionParam, geoXYLine, out modelDetailDictionary);
         }
         antGain = CalcAntGain(lteCell, relayCell);
         List<float> list = new List<float>();
         list.Add(pathLoss);
         list.Add(antGain);
         antennaPathLoss.Add(cellCalcPara[i].AntennaConfig.AntennaID, list);
     }
     return antennaPathLoss;
 }
Пример #5
0
 public Transceiver GetIAcell()
 {
     Transceiver transceiver = new Transceiver();
     LTECell item = new LTECell();
     transceiver.Cells.Add(item);
     transceiver.Name = this.Name;
     transceiver.ID = this.CellID;
     transceiver.Cells[0].PropModels = this.PropModels;
     transceiver.AntConfiguration = this.AntConfiguration;
     if (transceiver.Parent == null)
     {
         transceiver.Parent = new Site();
     }
     transceiver.Parent.Name = this.SiteName;
     transceiver.Parent.ID = this.SiteID;
     ((Site) transceiver.getParent()).Altitude = this.SiteAltitude;
     transceiver.DeltaX = this.X;
     transceiver.DeltaY = this.Y;
     if (transceiver.Cells.Count == 0)
     {
         IACell cell2 = new LTECell();
         transceiver.Cells.Add(cell2);
         transceiver.Cells[0].FreqBand = new FrequencyBand();
     }
     transceiver.Cells[0].FreqBand = new FrequencyBand();
     transceiver.Cells[0].FreqBand.DLFrequency = this.DLFrequency;
     return transceiver;
 }
Пример #6
0
 public void AddCarrier(short us, LTECell carrier)
 {
     if (!this.m_CarrierIDToCarrierObject.ContainsValue(carrier))
     {
         this.m_CarrierIDToCarrierObject.Add(us, carrier);
         this.m_CarrierObjectToCarrierID.Add(carrier, us);
     }
 }
Пример #7
0
 public double CalcAntGain(LTECell carrier, User user)
 {
     if (!SimulationConstant.USE_PlatFormAntenna)
     {
         return this.CalcAntennaGain(carrier, user);
     }
     return this.CalcAntGain3D(carrier, user);
 }
Пример #8
0
 private double CalcAntennaGain(LTECell carrier, User user)
 {
     double num = 0.0;
     num = ((user.X - carrier.Parent.X) == 0.0) ? 90.0 : ((Math.Atan2(user.X - carrier.Parent.X, user.Y - carrier.Parent.Y) / 3.1415926535897931) * 180.0);
     num = ((num - carrier.Parent.AntConfiguration[0].Azimuth) + 360.0) % 360.0;
     num = (num > 180.0) ? (num - 360.0) : num;
     return (18.0 - Math.Min((double) ((12.0 * (num / 70.0)) * (num / 70.0)), (double) 20.0));
 }
Пример #9
0
 private void SetCellResolution(LTECell lteCell, ref float calcResolution)
 {
     foreach (PropModelConfig config in lteCell.PropModels)
     {
         if ((calcResolution < 0f) || (calcResolution == float.MaxValue))
         {
             calcResolution = Math.Min(calcResolution, (float)config.CalcResolution);
         }
     }
 }
Пример #10
0
 private float CalculateDlEquipmentLoss(LTECell carrier, User user)
 {
     double num = 0.0;
     float lineValue = 0f;
     foreach (AntConfig config in carrier.Parent.AntConfiguration)
     {
         lineValue += (config.Tma != null) ? (config.TxPowerRatio * SimulationTools.ConvertdBToLine(((config.DlJumpLossTmaToBs + config.DlJumpLossTmaToAnt) + config.DlTotalLoss) + config.Tma.DlLoss)) : (config.TxPowerRatio * SimulationTools.ConvertdBToLine((config.DlJumpLossTmaToBs + config.DlJumpLossTmaToAnt) + config.DlTotalLoss));
     }
     num = (((SimulationTools.ConvertLineTodB(lineValue) - this.CalcAntGain(carrier, user)) + SimulationTools.GetLTEServiceBodyLoss(user.Service)) + user.Terminal.NetTerminalList[0].Loss) - user.Terminal.Gain;
     return (float) num;
 }
Пример #11
0
 private void GetPrachSinr(LTECell bestServerCarrier, int index)
 {
     FrequencyBand freqBand = bestServerCarrier.FreqBand;
     int rbNum = 6;
     double minValue = double.MinValue;
     double linkLossUlByDl = 0.0;
     linkLossUlByDl = this.GetLinkLossUlByDl(index, bestServerCarrier);
     double num3 = this.m_PrachPower - linkLossUlByDl;
     double ulActualIoT = bestServerCarrier.UlActualIoT;
     double num6 = this.CalculateUlNoisePower(rbNum, bestServerCarrier);
     minValue = num3 - (num6 + ulActualIoT);
     this.m_OneBinValueTemp.PRACH_SINR = UnitTrans.DoubleToShort(minValue);
 }
Пример #12
0
 private double CalcAntGain3D(LTECell carrier, User user)
 {
     Transceiver parent = carrier.Parent;
     StructAntennaParam calAntennaParam = new StructAntennaParam();
     calAntennaParam.AntConfigSetUp = parent.AntConfiguration[0];
     calAntennaParam.CellX = parent.X;
     calAntennaParam.CellY = parent.Y;
     calAntennaParam.IsSimple = false;
     calAntennaParam.MsX = user.X;
     calAntennaParam.MsY = user.Y;
     calAntennaParam.AntHeight = 0;
     calAntennaParam.MsHeight = 0;
     return (double) this.m_CalculateGain.CalculateAntennaGain(calAntennaParam);
 }
Пример #13
0
 public static List<RelayCell> GetRCListFromLTECellList(LTECell lteCell)
 {
     List<RelayNode> relayNodes = new List<RelayNode>();
     List<RelayCell> relayCells = new List<RelayCell>();
     if (lteCell != null && lteCell.RNList != null)
     {
         relayNodes.AddRange(lteCell.RNList);
     }
     
    
     foreach (RelayNode rn in relayNodes)
     {
         relayCells.AddRange(rn.RCList);
     }
     return relayCells;
 }
Пример #14
0
 public static LTECell CreatLteCell()
 {
     LTECell lteCell = new LTECell();
     lteCell.Parent = new Transceiver();
     Site site = new Site();
     site.Equipment = new BtsEquipment();
     lteCell.Parent.Parent = site;
     lteCell.FreqBand = new FrequencyBand();
     lteCell.FreqBand.BandWidth = 20;
     lteCell.FreqBand.ID = 4;
     lteCell.PropModels.Add( MockPropModelCfg.CreatLtePropModelCfg());
     RelayNode relayNode = MockRelayNode.CreatRelayNode();
     lteCell.RNList.Add(relayNode);
     lteCell.ID = 1;
     //lteCell.RNList
     return lteCell;    
 }
Пример #15
0
 public bool IsBuildOneBinOk(int index)
 {
     this.m_BestCarrierID = this.m_BestServerCarrierID[index];
     if (this.m_BestCarrierID != this.m_InvalidateValue)
     {
         this.m_bestCarrier = this.m_DataManager.GetCarrierByID(this.m_BestCarrierID);
         FrequencyBand freqBand = this.m_bestCarrier.FreqBand;
         double num = ((float) this.m_OneBinValueTemp.DL_SCH_RP) / 100f;
         //double num2 = this.m_OneBinValueTemp.m_Total_I_N - freqBand.get_RENumOfBandWidth();
         double num2 = this.m_OneBinValueTemp.m_Total_I_N - freqBand.RBNum;
         num += this.m_OneBinValueTemp.m_ModelShadowMargin;
         this.m_OneBinValueTemp.SCH_SINR = UnitTrans.DoubleToShort((num - num2) - this.m_OneBinValueTemp.m_C_i_nShadowMargin);
         if (LTEPredictionLogForTest.IsDebugEnabled())
         {
             GeoXYPoint xYPoint = this.m_DataManager.BestServerRSRP.GetXYPoint(index);
             LTEPredictionLogForTest.Debug(string.Concat(new object[] { DateTime.Now.ToString("G"), ",Study:SCH_SINR,BinIndex:", index, ",X:", xYPoint.X, ",Y:", xYPoint.Y, ",BestCarrier:", this.m_bestCarrier.Name, ",+" }));
         }
     }
     return true;
 }
Пример #16
0
 private float CalculateDlTotalLoss(LTECell carrier, User user, LinkLossStruct dlLinkLossStruct)
 {
     if (dlLinkLossStruct.pathLoss == float.MinValue)
     {
         return float.MaxValue;
     }
     double num = 0.0;
     float userClutterModeDiviation = UserManager.getInstance().GetUserClutterModeDiviation(this.m_SubSysInterface, user);
     dlLinkLossStruct.pathLoss = Math.Max(dlLinkLossStruct.pathLoss, 73.35696f);
     float num3 = this.CalculateShadowFadeValue(carrier, user, this.m_Coefficientabc, userClutterModeDiviation);
     num = dlLinkLossStruct.pathLoss + num3;
     double num4 = Math.Sqrt(((carrier.Parent.X - user.X) * (carrier.Parent.X - user.X)) + ((carrier.Parent.Y - user.Y) * (carrier.Parent.Y - user.Y)));
     //Commented by wj 
     //×ÔÓɿռ䴫²¥ËðºÄ
     double num5 = 32.4 + (20.0 * Math.Log10((carrier.FreqBand.DLFrequency * num4) / 1000.0));
     num = (num < num5) ? num5 : num;
     num += dlLinkLossStruct.otherTotalLoss;
     return (float) num;
 }
Пример #17
0
 public void SetParent(LTECell cell)
 {
     this.Parent = cell;
     if (!cell.RNList.Contains(this))
     {
         cell.RNList.Add(this);
     }
 }
Пример #18
0
 public void CopyFrom(LTECell cell)
 {
     base.CopyFrom(cell);
     this.ActualDlLoad = cell.ActualDlLoad;
     this.ActualUlLoad = cell.ActualUlLoad;
     this.BCHPoffset = cell.BCHPoffset;
     this.SCHPoffset = cell.SCHPoffset;
     this.PCFICHPoffset = cell.PCFICHPoffset;
     this.PDCCHPoffset = cell.PDCCHPoffset;
     this.PHICHPoffset = cell.PHICHPoffset;
     this.UlActualIoT = cell.UlActualIoT;
     this.DlActualTxPower = cell.DlActualTxPower;
     this.DLRsSinrAccessThreshold = cell.DLRsSinrAccessThreshold;
     this.SchedulePolicy = cell.SchedulePolicy;
     this.RSPower = cell.RSPower;
     this.HighSpeed = cell.HighSpeed;
     this.GCI = cell.GCI;
     this.PhyID = cell.PhyID;
     this.AmsThreshold = cell.AmsThreshold;
     this.Ams = cell.Ams;
     this.CellPriority = cell.CellPriority;
     this.PB = cell.PB;
     this.CellReselPriority = cell.CellReselPriority;
     this.LocalCellID = cell.LocalCellID;
     this.TAC = cell.TAC;
     this.m_CellRadius = cell.CellRadius;
     this.m_MinRootSequenceIndex = cell.MinRootSequenceIndex;
     this.LteAlgParameter = cell.LteAlgParameter;
     this.FormatObj(cell);
     this.m_RPDCCHPoffset = cell.m_RPDCCHPoffset;
     this.m_RPDSCHPoffset = cell.m_RPDSCHPoffset;
 }
Пример #19
0
 private float CaculateSCHpower(LTECell carrier)
 {
     float num = this.CaculateRsRe(carrier);
     return (float) (10.0 * Math.Log10(10.0 * Math.Pow(10.0, (double) ((num + carrier.SCHPoffset) / 10f))));
 }
Пример #20
0
 /// <summary>
 /// backhaul路损 仿真
 /// </summary>
 /// <param name="carrier"></param>
 /// <param name="userList"></param>
 /// <returns></returns>
 public LinkLossStruct[][][] GetBackhaulLinkLoss(LTECell carrier, List<RelayCell> rcList)
 {
     LinkLossStruct[] ulAndDlLinkLoss;
     int num;
     LinkLossStruct[][][] structArray = new LinkLossStruct[rcList.Count][][];
     Transceiver parent = carrier.Parent;
     this.m_StructAntennaParam.IsSimple = false;
     //if (parent.AntConfiguration.Count == 1)
     //{
         this.isOutdoorAntenna(parent);
         for (num = 0; num < rcList.Count; num++)
         {
             structArray[num] = new LinkLossStruct[][] { new LinkLossStruct[2] };
             ulAndDlLinkLoss = GetBackhaulUlAndDlLinkLoss(parent, rcList[num]);
             structArray[num][0][0] = ulAndDlLinkLoss[0];
             structArray[num][0][1] = ulAndDlLinkLoss[1];
         }
         return structArray;
     //}
     //for (num = 0; num < rcList.Count; num++)
     //{
     //    structArray[num] = new LinkLossStruct[][] { new LinkLossStruct[2] };
     //    ulAndDlLinkLoss = this.GetMultUlAndDlLinkLoss(parent, rcList[num]);
     //    structArray[num][0][0] = ulAndDlLinkLoss[0];
     //    structArray[num][0][1] = ulAndDlLinkLoss[1];
     //}
     //return structArray;
 }
Пример #21
0
 public void FormatObj(LTECell oriCarrier)
 {
     this.BestStartFrequency = this.CaculateBestStartFrequency(oriCarrier);
     this.SCHPower = this.CaculateSCHpower(oriCarrier);
     this.BCHPower = this.CaculateBCHpower(oriCarrier);
     this.LteAlgParameter.UlPucchRbs = this.SetDefaultULPucch(oriCarrier);
 }
Пример #22
0
 private float CaculateRsRe(LTECell carrier)
 {
     return carrier.RSPower;
 }
Пример #23
0
 private int SetDefaultULPucch(LTECell carrier)
 {
     FrequencyBand freqBand = carrier.FreqBand;
     if (!((freqBand == null) || PucchConfig.getPuccConf(freqBand.BandWidth).Pucch.Contains(carrier.LteAlgParameter.UlPucchRbs)))
     {
         return PucchConfig.getPuccConf(freqBand.BandWidth).DefaultPucchValue;
     }
     return carrier.LteAlgParameter.UlPucchRbs;
 }
Пример #24
0
 private void GetMaxRSPowerCarrier(LTECellCalcInfo cellInfo)
 {
     LTECell cell = new LTECell();
     LTECell cell2 = new LTECell();
     double minValue = double.MinValue;
     double dlActualTxPower = double.MinValue;
     double rSPower = double.MinValue;
     foreach (LTECell cell3 in cellInfo.Tanceiver.Cells)
     {
         FrequencyBand freqBand = cell3.FreqBand;
         rSPower = cell3.RSPower;
         if (minValue < rSPower)
         {
             minValue = rSPower;
             cell = cell3;
         }
         if (cell3.DlActualTxPower > dlActualTxPower)
         {
             dlActualTxPower = cell3.DlActualTxPower;
             cell2 = cell3;
         }
     }
     cellInfo.RSMaxCarrier = cell;
     cellInfo.ActTxPowerCarrier = cell2;
 }
Пример #25
0
        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;

            

        }
Пример #26
0
 private float GetUlPathLoss(LTECell carrier, User user, bool isUse3GPP)
 {
     double num = 0.0;
     double d = ((carrier.Parent.X - user.X) * (carrier.Parent.X - user.X)) + ((carrier.Parent.Y - user.Y) * (carrier.Parent.Y - user.Y));
     double num3 = Math.Sqrt(d);
     if (isUse3GPP)
     {
         num = SimulationConstant.SPM_RADIUS + (SimulationConstant.SPM_D * Math.Log10(num3 / 1000.0));
         return ((num < 73.3569564819336) ? ((float) 73.3569564819336) : ((float) num));
     }
     num = SimulationConstant.COST_RADIUS + (SimulationConstant.COST_D * Math.Log10(num3 / 1000.0));
     return ((num < 73.3569564819336) ? ((float) 73.3569564819336) : ((float) num));
 }
Пример #27
0
        /// <summary>
        /// 计算宏小区到relay的天线增益
        /// </summary>
        /// <param name="lteCell"></param>
        /// <param name="relayCell"></param>
        /// <returns></returns>
        private float CalcAntGain(LTECell lteCell, RelayCell relayCell)
        {
            StructAntennaParam calAntennaParam = new StructAntennaParam();
            int sectorID = lteCell.Parent.AntConfiguration[0].AntennaID;
            calAntennaParam.CellX = lteCell.Parent.Parent.X + lteCell.Parent.GetAntConfig(sectorID).DX;
            calAntennaParam.CellY = lteCell.Parent.Parent.Y + lteCell.Parent.GetAntConfig(sectorID).DY;
            calAntennaParam.IsSimple = false;
            calAntennaParam.AntHeight = m_IGeoInfo.GetValueByGeoXYPoint(calAntennaParam.CellX, calAntennaParam.CellY, DemDataType.Height);

            calAntennaParam.MsX = relayCell.ParentRN.X;//todo:加上偏置?
            calAntennaParam.MsY = relayCell.ParentRN.Y;
            calAntennaParam.MsHeight = m_IGeoInfo.GetValueByGeoXYPoint(relayCell.ParentRN.X, relayCell.ParentRN.Y, DemDataType.Height);
            float antGain = 0;
            calAntennaParam.AntConfigSetUp = lteCell.Parent.GetAntConfig(sectorID);
            antGain = m_AntennaGainCalculator.Calculate3DGain(calAntennaParam);
            return antGain;
        }
Пример #28
0
 public void CopyFrom(RelayNode rn)
 {
     base.Name = rn.Name;
     base.Comments = rn.Comments;
     this.Altitude = rn.Altitude;
     base.Latitude = rn.Latitude;
     base.Longitude = rn.Longitude;
     base.Active = rn.Active;
     base.Selected = rn.Selected;
     base.Visible = rn.Visible;
     base.X = rn.X;
     base.Y = rn.Y;
     this.Equipment = rn.Equipment;
     this.RNID = rn.RNID;
     this.RCList = rn.RCList;
     this.Parent = rn.Parent;
     this.RbNum = rn.RbNum;
 }
Пример #29
0
 public LinkLossStruct[][][] GetLinkLoss(LTECell carrier, List<User> userList)
 {
     LinkLossStruct[] ulAndDlLinkLoss;
     int num;
     LinkLossStruct[][][] structArray = new LinkLossStruct[userList.Count][][];
     Transceiver parent = carrier.Parent;
     this.m_StructAntennaParam.IsSimple = false;
     if (parent.AntConfiguration.Count == 1)
     {
         this.isOutdoorAntenna(parent);
         for (num = 0; num < userList.Count; num++)
         {
             structArray[num] = new LinkLossStruct[][] { new LinkLossStruct[2] };
             ulAndDlLinkLoss = this.GetUlAndDlLinkLoss(parent, userList[num]);
             structArray[num][0][0] = ulAndDlLinkLoss[0];
             structArray[num][0][1] = ulAndDlLinkLoss[1];
         }
         return structArray;
     }
     for (num = 0; num < userList.Count; num++)
     {
         structArray[num] = new LinkLossStruct[][] { new LinkLossStruct[2] };
         ulAndDlLinkLoss = this.GetMultUlAndDlLinkLoss(parent, userList[num]);
         structArray[num][0][0] = ulAndDlLinkLoss[0];
         structArray[num][0][1] = ulAndDlLinkLoss[1];
     }
     return structArray;
 }
Пример #30
0
 private float CaculateBestStartFrequency(LTECell carrier)
 {
     float num = 0f;
     if (null != carrier.FreqBand)
     {
         num = carrier.FreqBand.DLFrequency + (carrier.FreqBand.BandWidth * carrier.ChannelIndex);
     }
     return num;
 }