コード例 #1
0
 public void AddLTECellInfo(LTECellCalcInfo cellInfo)
 {
     if (null != cellInfo)
     {
         this.m_cells.Add(cellInfo);
     }
 }
コード例 #2
0
ファイル: ShiftingInterfereCase.cs プロジェクト: xiaoyj/Space
 public bool IsRunOK(int index, LTECellCalcInfo cellInfo, double ULLinkLoss, double DLLinkLoss)
 {
     short id = this.m_BestServerCellID[index];
     if ((id != 0x7fff) && (this.m_BestServerCellID[index] != cellInfo.Tanceiver.ID))
     {
         IACell cell = this.m_Tranceiverlist[id].Cells[0];
         LTECell cell2 = (LTECell)cellInfo.Tanceiver.Cells[0];
         //LTECell cell2 = (LTECell) cellInfo.get_Tanceiver().get_Cells()[0];
         if (((cell2.ChannelIndex * cell2.FreqBand.BandWidth) + cell2.FreqBand.DLFrequency) == ((cell.ChannelIndex * cell.FreqBand.BandWidth) + cell.FreqBand.DLFrequency))
         {
             double mwValue = 0.0;
             if (this.m_DLSameInterfere[index] != -2147483648)
             {
                 mwValue = UnitTrans.dBmTomw((double) (this.m_DLSameInterfere[index] / 0x3e8));
             }
             if (this.GetShifting(cell2.Parent) == this.GetShifting(cell.Parent))
             {
                 mwValue += UnitTrans.dBmTomw((double) ((cell2.RSPower + cell2.BCHPoffset) - DLLinkLoss));
             }
             else
             {
                 mwValue += UnitTrans.dBmTomw((double) ((cell2.RSPower + cell2.SCHPoffset) - DLLinkLoss));
             }
             this.m_DLSameInterfere[index] = Convert.ToInt32((double) (UnitTrans.mwTodBm(mwValue) * 1000.0));
         }
     }
     return true;
 }
コード例 #3
0
ファイル: BestServerCase.cs プロジェクト: xiaoyj/Space
 private void CalcInterference(int index, LTECellCalcInfo cellInfo, double DLLinkLoss)
 {
     if (this.m_NeedCalActualRxIntf || this.m_NeedCalMaxRxIntf)
     {
         this.m_RxPowerOfBandWidthKey = "";
         this.m_ActualRxPower = 0.0;
         this.m_MaxRxPower = 0.0;
         //TODO::
         foreach (LTECell cell in cellInfo.Tanceiver.Cells)
         {
             if (cell.Active)
             {
         
                 //this.m_RxPowerOfBandWidthKey = cell.get_BandWidthAndStartFrequecyKey();
                 this.m_ActualRxPower = cell.DlActualTxPower - DLLinkLoss;
                 this.m_MaxRxPower = cell.MaxPower - DLLinkLoss;
                 if (this.m_NeedCalActualRxIntf)
                 {
                     this.CalActualRxIntf(index);
                 }
                 if (this.m_NeedCalMaxRxIntf)
                 {
                     this.CalcmaxRcIntf(index);
                 }
                 this.m_UsedRxPowerOfBandWidthKey = this.m_RxPowerOfBandWidthKey;
             }
         }
     }
 }
コード例 #4
0
ファイル: LTECoverageInfo.cs プロジェクト: xiaoyj/Space
 private void FindCoverPoints(ValueMatrixShort onepolygonvalues, Transceiver cell, List<GeoXYPoint> points, LTECellCalcInfo onecellinfo)
 {
     if (onecellinfo.Tanceiver == cell)
     {
         this.FindCellAllCalcPoints(onepolygonvalues, cell, points, onecellinfo);
     }
 }
コード例 #5
0
ファイル: LTECoverageInfo.cs プロジェクト: xiaoyj/Space
 private void FindCellAllCalcPoints(ValueMatrixShort onepolygonvalues, UNet.NE.Interface.Transceiver cell, List<GeoXYPoint> points, LTECellCalcInfo onecellinfo)
 {
     for (int i = onecellinfo.StartPoint.Y; i < (onecellinfo.EndPoint.Y + 1); i++)
     {
         for (int j = onecellinfo.StartPoint.X; j < (onecellinfo.EndPoint.X + 1); j++)
         {
             this.ValidatePointCover(onepolygonvalues, cell, points, i, j);
         }
     }
 }
コード例 #6
0
ファイル: CellFilter.cs プロジェクト: xiaoyj/Space
 private void GetIndexCoodinate(LTECalcCellsInfoCollection cellsInfo, Transceiver cell, float resolution)
 {
     int cellLeftTopColumn = (int) ((this.m_cellLeftTop.X - this.m_polygonLeftTop.X) / ((double) resolution));
     int cellLeftTopRow = (int) ((this.m_polygonLeftTop.Y - this.m_cellLeftTop.Y) / ((double) resolution));
     int cellRightBottomColumn = (int) Math.Ceiling((double) ((this.m_cellRightBottom.X - this.m_polygonLeftTop.X) / ((double) resolution)));
     int cellRightBottomRow = (int) Math.Ceiling((double) ((this.m_polygonLeftTop.Y - this.m_cellRightBottom.Y) / ((double) resolution)));
     this.GetCorrectIndex(ref cellLeftTopRow, ref cellLeftTopColumn, ref cellRightBottomRow, ref cellRightBottomColumn);
     LTECellCalcInfo cellInfo = new LTECellCalcInfo(cell, cellLeftTopRow, cellLeftTopColumn, cellRightBottomRow - 1, cellRightBottomColumn - 1);
     this.GetMaxRSPowerCarrier(cellInfo);
     cellsInfo.TranceiverInfos.Add(cellInfo);
 }
コード例 #7
0
ファイル: CellFilter.cs プロジェクト: xiaoyj/Space
 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;
 }
コード例 #8
0
ファイル: BestServerCase.cs プロジェクト: xiaoyj/Space
 private void LogForTest(int index, LTECellCalcInfo cellInfo, double DLLinkLoss, double receivePower)
 {
     if (LTEPredictionLogForTest.IsDebugEnabled())
     {
         GeoXYPoint xYPoint = this.m_DataManager.BestServerRSRP.GetXYPoint(index);
         LTEPredictionLogForTest.Debug(string.Concat(new object[] { DateTime.Now.ToString("G"), ",Study:BestServer,BinIndex:", index, ",X:", xYPoint.X, ",Y:", xYPoint.Y, ",RSPower:", cellInfo.RSMaxCarrier.RSPower, ",DLLinkLoss:", DLLinkLoss, ",CellName:", cellInfo.Tanceiver.Name, ",receivePower:", receivePower }));
     }
 }
コード例 #9
0
ファイル: BestServerCase.cs プロジェクト: xiaoyj/Space
 public bool IsRunOK(int index, LTECellCalcInfo cellInfo, double ULLinkLoss, double DLLinkLoss)
 {
     short num = this.m_BestServerRSRP[index];
     double tempReceivePower = ((float) num) / 100f;
     bool firstVist = false;
     this.CalcInterference(index, cellInfo, DLLinkLoss);
     double receivePower = cellInfo.RSMaxCarrier.RSPower - DLLinkLoss;
     if (receivePower >= this.m_RsRxSensitivity)
     {
         if (this.m_NeedCalSecondMaxRsrp && (num == -32768))
         {
             firstVist = true;
         }
         if (receivePower > this.m_MaxSensitivity)
         {
             this.m_BestServerRSRP[index] = -32768;
             if (this.m_NeedCalSymbolRSRP)
             {
                 this.m_SymbolRSRP[index] = -32768;
             }
             this.m_BestServerCarrierID[index] = 0x7fff;
             this.m_BestServerCellID[index] = 0x7fff;
             this.m_TFMatrix[index] = false;
             return true;
         }
         this.CalcSecondMaxRsrp(index, tempReceivePower, firstVist, receivePower);
         this.CalcReceivePower(index, cellInfo, DLLinkLoss, tempReceivePower, receivePower);
         this.LogForTest(index, cellInfo, DLLinkLoss, receivePower);
     }
     return true;
 }
コード例 #10
0
ファイル: BestServerCase.cs プロジェクト: xiaoyj/Space
 private void CalcReceivePower(int index, LTECellCalcInfo cellInfo, double DLLinkLoss, double tempReceivePower, double receivePower)
 {
     if ((receivePower > tempReceivePower) && (receivePower > this.m_RsRxSensitivity))
     {
         this.m_BestServerRSRP[index] = UnitTrans.DoubleToShort(receivePower);
         if (this.m_NeedCalSymbolRSRP)
         {
             this.m_RsMaxCarrierFrequecyBand = cellInfo.RSMaxCarrier.FreqBand;
             //TODO::
             //this.m_SymbolRSRP[index] = UnitTrans.DoubleToShort(receivePower + this.m_RsMaxCarrierFrequecyBand.get_RSNumOfBandWidth());
            
         }
         this.m_BestServerCarrierID[index] = this.m_DataManager.GetCarrierID(cellInfo.RSMaxCarrier);
         this.m_BestServerCellID[index] = cellInfo.Tanceiver.ID;
         if (this.m_NeedCalActualRxIntf || this.m_NeedCalMaxRxIntf)
         {
             this.m_DlBestServerLinkLoss[index] = Convert.ToInt32((double) (DLLinkLoss * PredictionConst.TIMES_TO_BIG_INT));
         }
     }
 }
コード例 #11
0
ファイル: InterfereCaseForPDCCH.cs プロジェクト: xiaoyj/Space
 public bool IsRunOK(int index, LTECellCalcInfo cellInfo, double ULLinkLoss, double DLLinkLoss)
 {
     short num = this.m_BestServerCellID[index];
     return true;
 }
コード例 #12
0
ファイル: PredictionDataManager.cs プロジェクト: xiaoyj/Space
 private bool checkCellBandForStudyType(LTECellCalcInfo cellInfo)
 {
     foreach (IACell cell in cellInfo.Tanceiver.Cells)
     {
         if (this.m_Group.FreqBandIdList.Contains(cell.FreqBand.ID) && this.m_Group.ChannelIndexDic[cell.FreqBand.ID].Contains(cell.ChannelIndex))
         {
             return true;
         }
     }
     return false;
 }