Exemplo n.º 1
0
 private void GetCellsInLTECalcCellsInfoCollection(LTECalcCellsInfoCollection info, List<Transceiver> cells)
 {
     foreach (Transceiver tranceiver in info.GetTranceiverList())
     {
         if (!cells.Contains(tranceiver))
         {
             cells.Add(tranceiver);
         }
     }
 }
Exemplo n.º 2
0
 public LTECalcCellsInfoCollection GetCalculateCellsInfo(List<Transceiver> allLTECells, GeoPolygonRegion polygon, float resolution)
 {
     LTECalcCellsInfoCollection cellsInfo = new LTECalcCellsInfoCollection();
     this.GetPolygonRectangle(polygon, resolution);
     bool flag = false;
     foreach (Transceiver transceiver in allLTECells)
     {
         foreach (IACell cell in transceiver.Cells)
         {
             flag |= !float.IsNegativeInfinity((cell as LTECell).DlActualTxPower);
         }
         if ((transceiver.Active & flag) & (this.m_GeoInfo.GetValueByGeoXYPoint(transceiver.Parent.X, transceiver.Parent.Y, DemDataType.Height) > -32768))
         {
             this.GetOneCellInfo(resolution, cellsInfo, transceiver);
         }
         flag = false;
     }
     return cellsInfo;
 }
Exemplo n.º 3
0
 public PredictionDataManager(PredictionGroup pg, PredictionConfig cfg, OtherSubSysInterface interfaces, ProgressHandle pgrsHandle, string savepath, string projectName)
 {
     this.m_Interfaces = interfaces;
     this.m_Group = pg;
     this.m_PredictionCfg = cfg;
     this.m_ProgressHandle = pgrsHandle;
     this.m_DLBLER = pg.DLBLER;
     this.m_ULBLER = pg.ULBLER;
     this.m_CalcLTECells = new LTECalcCellsInfoCollection();
     this.m_CaseDataManager = new CaseDataManager(this.m_Group, savepath, projectName);
     this.m_AllPolygonsCellCalcInfo = new List<LTECalcCellsInfoCollection>();
     this.m_NeedCalActualRxIntf = false;
     this.m_NeedCalMaxRxIntf = false;
     this.m_NeedCalSecondMaxRSRP = false;
     this.m_NeedCalSymbolRSRP = false;
     this.m_NeedCalOverlapping = false;
     this.NeedCreateActualRxPowerValueMatrix();
     this.NeedCreateMaxRxPowerValueMartix();
     this.NeedCalSecondMaxRSRP();
     this.NeedCalSymbol_RSRP();
     this.NeedCalOverlapping();
     this.SetSavingPath(savepath, projectName);
 }
Exemplo n.º 4
0
 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);
 }
Exemplo n.º 5
0
 private void GetOneCellInfo(float resolution, LTECalcCellsInfoCollection cellsInfo, Transceiver cell)
 {
     float maxCalcRadius = this.GetMaxCalcRadius(cell);
     this.m_cellPoint.X = cell.Parent.X;
     this.m_cellPoint.Y = cell.Parent.Y;
     this.m_cellLeftTop.X = this.m_cellPoint.X - maxCalcRadius;
     this.m_cellLeftTop.Y = this.m_cellPoint.Y + maxCalcRadius;
     this.m_cellRightBottom.X = this.m_cellPoint.X + maxCalcRadius;
     this.m_cellRightBottom.Y = this.m_cellPoint.Y - maxCalcRadius;
     if (this.IsCellInCalcZone(maxCalcRadius))
     {
         this.GetIndexCoodinate(cellsInfo, cell, resolution);
     }
 }
Exemplo n.º 6
0
 private void setGroupValidCellIDList(LTECalcCellsInfoCollection cellCollection)
 {
     this.m_Group.CellIDValideListForBestServer.Clear();
     this.m_Group.CellIDValideListForStudyType.Clear();
     if (this.m_Group.ChannelIndexDic.Count == 0)
     {
         this.m_Interfaces.EventViewService.WriteLog(LTEPredictionResource.PREDICTION_NOCHANNELINDEX, Huawei.UNet.Frame.Interface.LogLevel.Info);
     }
     if (this.m_Group.FreqBandIdList.Count == 0)
     {
         this.m_Interfaces.EventViewService.WriteLog(LTEPredictionResource.PREDICTION_NOFREBAND, Huawei.UNet.Frame.Interface.LogLevel.Info);
     }
     foreach (LTECellCalcInfo info in cellCollection.TranceiverInfos)
     {
         if (this.m_Group.FreqBandIdList.Contains(info.RSMaxCarrier.FreqBand.ID))
         {
             if (!this.m_Group.ChannelIndexDic.ContainsKey(info.RSMaxCarrier.FreqBand.ID))
             {
                 continue;
             }
             if (this.m_Group.ChannelIndexDic[info.RSMaxCarrier.FreqBand.ID].Contains(info.RSMaxCarrier.ChannelIndex))
             {
                 this.m_Group.CellIDValideListForBestServer.Add(info.Tanceiver.ID);
             }
         }
         if (this.checkCellBandForStudyType(info))
         {
             this.m_Group.CellIDValideListForStudyType.Add(info.Tanceiver.ID);
         }
     }
 }
Exemplo n.º 7
0
        private void InitialCalcCells(GeoPolygonRegion region)
        {
            List<Transceiver> list = this.m_Interfaces.INet.TranceiverList;
            DataPrepareCalculate calculate = new DataPrepareCalculate();
            //this.m_CalcLTECells = this.m_Interfaces.CellFilterBuilder.GetCellFilter().GetCalculateCellsInfo(list, region, this.m_Group.Resolution);

            this.m_CalcLTECells = this.m_Interfaces.CellFilterBuilder.GetCellFilter().GetCalculateCellsInfo(list, region, this.m_Group.Resolution);
            this.m_Group.CellInfos = this.m_CalcLTECells.TranceiverInfos;
            calculate.CreateCarrierDictionary(this.m_CalcLTECells, this.m_Group);
            this.setGroupValidCellIDList(this.m_CalcLTECells);
            this.m_AllPolygonsCellCalcInfo.Add(this.m_CalcLTECells);
        }
Exemplo n.º 8
0
 private void InitialCalCarriers(LTECalcCellsInfoCollection calcCellColl)
 {
     bool flag = this.NeedULMimoAndULDemodulation();
     bool flag2 = this.NeedDLMimoAndULDemodulation();
     float uLBLER = ((this.m_Group.TrafficService as UnionPsService).PSServiceDic[NetWorkType.LTE] as LTEService).ULBLER;
     float dLBLER = ((this.m_Group.TrafficService as UnionPsService).PSServiceDic[NetWorkType.LTE] as LTEService).DLBLER;
     foreach (LTECellCalcInfo info in calcCellColl.TranceiverInfos)
     {
         this.GetAntConfig(info.Tanceiver);
         double num3 = this.CalculateNoiseFigureOfBts(info.Tanceiver);
         foreach (LTECell cell in info.Tanceiver.Cells)
         {
             FrequencyBand freqBand = cell.FreqBand;
             //freqBand.set_FrequcyBandUsableWidth(UnitTrans.todB((int)(freqBand.RBNum * 0x2bf20)));
             //freqBand.set_RSNumOfBandWidth(UnitTrans.todB((int)(freqBand.RBNum * 2)));
             //freqBand.set_RENumOfBandWidth(UnitTrans.todB((int)(freqBand.RBNum * 12)));
             //freqBand.set_NoisePowerOfBandWidth(this.GetNoisePower(freqBand));
             //cell.set_SpaceBetweenDlAndUL(this.m_Interfaces.IPropagationData.GetDeltaLossFrmDLToUL(info.get_Tanceiver(), cell)[0]);
             //cell.set_DataReAndRsReOffSet(this.GetDataReRsReOffSet(cell, freqBand));
             //cell.set_NoiseFigureOfBts(num3);
             //cell.set_BandWidthAndStartFrequecyKey(cell.FreqBand.BandWidth + "_" + ((cell.FreqBand.BandWidth * cell.ChannelIndex) + cell.FreqBand.DLFrequency));
             //cell.set_NeighbourBandWidth_Larger_Key(cell.FreqBand.BandWidth + "_" + ((cell.FreqBand.BandWidth * (cell.ChannelIndex + 1)) + cell.FreqBand.DLFrequency));
             //cell.set_NeighbourBandWidth_Smaller_Key(cell.FreqBand.BandWidth + "_" + ((cell.FreqBand.BandWidth * (cell.ChannelIndex - 1)) + cell.FreqBand.DLFrequency));
             if (flag2 || flag)
             {
                 this.m_Interfaces.ITrafficMCS.InitialMcsArr();
             }
             if (flag)
             {
                 this.GetULMimo(cell);
                 this.GetULDemodulationTable(cell, uLBLER);
             }
             if (flag2)
             {
                 this.GetDLMimo(cell);
                 this.GetDLDemodulationTable(cell, dLBLER);
             }
         }
     }
 }
Exemplo n.º 9
0
 private void GetBlockCellInfoColl(int blockCount, GeoPolygonRegion region)
 {
     this.m_BlockCellInfoArr = new List<PredictionBlockCellInfoColl>();
     double maxValue = double.MaxValue;
     double minValue = double.MinValue;
     double bottom = double.MaxValue;
     double top = double.MinValue;
     ICellFilter cellFilter = this.m_Interfaces.CellFilterBuilder.GetCellFilter();
     GeoPolygonRegion regionRectangle = cellFilter.GetRegionRectangle(region, this.m_Group.Resolution);
     List<Transceiver> list = new List<Transceiver>();
     foreach (LTECellCalcInfo info in this.m_CalcLTECells)
     {
         list.Add(info.Tanceiver);
     }
     int num5 = (int)((regionRectangle.Top - regionRectangle.Bottom) / ((double)this.m_Group.Resolution));
     int num6 = num5 % blockCount;
     int num7 = num5 / blockCount;
     for (int i = 0; i < blockCount; i++)
     {
         maxValue = regionRectangle.Left;
         minValue = regionRectangle.Right;
         top = regionRectangle.Top - ((i * num7) * this.m_Group.Resolution);
         if (i == (blockCount - 1))
         {
             bottom = regionRectangle.Top - ((((i * num7) + num7) + num6) * this.m_Group.Resolution);
         }
         else
         {
             bottom = regionRectangle.Top - (((i * num7) + num7) * this.m_Group.Resolution);
         }
         GeoXYRect geoXYRect = new GeoXYRect(maxValue, minValue, bottom, top);
         GeoPolygon geoPolygon = new GeoPolygon(geoXYRect);
         GeoPolygonRegion region3 = new GeoPolygonRegion();
         region3.AddGeoPolygon(geoPolygon);
         PredictionBlockCellInfoColl item = new PredictionBlockCellInfoColl();
         item.BlockIndex = i;
         LTECalcCellsInfoCollection infos = new LTECalcCellsInfoCollection();
         infos = cellFilter.GetCalculateCellsInfo(list, region3, this.m_Group.Resolution);
         item.CalCellColl = infos;
         this.m_BlockCellInfoArr.Add(item);
     }
 }