public void AddLTECellInfo(LTECellCalcInfo cellInfo) { if (null != cellInfo) { this.m_cells.Add(cellInfo); } }
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; }
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; } } } }
private void FindCoverPoints(ValueMatrixShort onepolygonvalues, Transceiver cell, List<GeoXYPoint> points, LTECellCalcInfo onecellinfo) { if (onecellinfo.Tanceiver == cell) { this.FindCellAllCalcPoints(onepolygonvalues, cell, points, onecellinfo); } }
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); } } }
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); }
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; }
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 })); } }
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; }
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)); } } }
public bool IsRunOK(int index, LTECellCalcInfo cellInfo, double ULLinkLoss, double DLLinkLoss) { short num = this.m_BestServerCellID[index]; return true; }
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; }