public InterFreqCarrierFreqInfo Decode(BitArrayInputStream input) { BitMaskStream stream3; InterFreqCarrierFreqInfo info = new InterFreqCarrierFreqInfo(); info.InitDefaults(); bool flag = input.readBit() != 0; BitMaskStream stream = new BitMaskStream(input, 1); BitMaskStream stream2 = new BitMaskStream(input, 5); info.dl_CarrierFreq = input.readBits(0x10); info.q_RxLevMin = input.readBits(6) + -70; if (stream2.Read()) { info.p_Max = input.readBits(6) + -30; } info.t_ReselectionEUTRA = input.readBits(3); if (stream2.Read()) { info.t_ReselectionEUTRA_SF = SpeedStateScaleFactors.PerDecoder.Instance.Decode(input); } info.threshX_High = input.readBits(5); info.threshX_Low = input.readBits(5); int nBits = 3; info.allowedMeasBandwidth = (AllowedMeasBandwidth)input.readBits(nBits); info.presenceAntennaPort1 = input.readBit() == 1; if (stream2.Read()) { info.cellReselectionPriority = input.readBits(3); } info.neighCellConfig = input.readBitString(2); if (stream.Read()) { nBits = 5; info.q_OffsetFreq = (Q_OffsetRange)input.readBits(nBits); } if (stream2.Read()) { info.interFreqNeighCellList = new List <InterFreqNeighCellInfo>(); nBits = 4; int num3 = input.readBits(nBits) + 1; for (int i = 0; i < num3; i++) { InterFreqNeighCellInfo item = InterFreqNeighCellInfo.PerDecoder.Instance.Decode(input); info.interFreqNeighCellList.Add(item); } } if (stream2.Read()) { info.interFreqBlackCellList = new List <PhysCellIdRange>(); nBits = 4; int num5 = input.readBits(nBits) + 1; for (int j = 0; j < num5; j++) { PhysCellIdRange range = PhysCellIdRange.PerDecoder.Instance.Decode(input); info.interFreqBlackCellList.Add(range); } } if (flag) { stream3 = new BitMaskStream(input, 2); if (stream3.Read()) { info.q_QualMin_r9 = input.readBits(5) + -34; } if (stream3.Read()) { info.threshX_Q_r9 = threshX_Q_r9_Type.PerDecoder.Instance.Decode(input); } } if (flag) { stream3 = new BitMaskStream(input, 1); if (stream3.Read()) { info.q_QualMinWB_r11 = input.readBits(5) + -34; } } return(info); }
public InterFreqCarrierFreqInfo Decode(BitArrayInputStream input) { BitMaskStream stream3; InterFreqCarrierFreqInfo info = new InterFreqCarrierFreqInfo(); info.InitDefaults(); bool flag = input.readBit() != 0; BitMaskStream stream = new BitMaskStream(input, 1); BitMaskStream stream2 = new BitMaskStream(input, 5); info.dl_CarrierFreq = input.readBits(0x10); info.q_RxLevMin = input.readBits(6) + -70; if (stream2.Read()) { info.p_Max = input.readBits(6) + -30; } info.t_ReselectionEUTRA = input.readBits(3); if (stream2.Read()) { info.t_ReselectionEUTRA_SF = SpeedStateScaleFactors.PerDecoder.Instance.Decode(input); } info.threshX_High = input.readBits(5); info.threshX_Low = input.readBits(5); int nBits = 3; info.allowedMeasBandwidth = (AllowedMeasBandwidth)input.readBits(nBits); info.presenceAntennaPort1 = input.readBit() == 1; if (stream2.Read()) { info.cellReselectionPriority = input.readBits(3); } info.neighCellConfig = input.readBitString(2); if (stream.Read()) { nBits = 5; info.q_OffsetFreq = (Q_OffsetRange)input.readBits(nBits); } if (stream2.Read()) { info.interFreqNeighCellList = new List<InterFreqNeighCellInfo>(); nBits = 4; int num3 = input.readBits(nBits) + 1; for (int i = 0; i < num3; i++) { InterFreqNeighCellInfo item = InterFreqNeighCellInfo.PerDecoder.Instance.Decode(input); info.interFreqNeighCellList.Add(item); } } if (stream2.Read()) { info.interFreqBlackCellList = new List<PhysCellIdRange>(); nBits = 4; int num5 = input.readBits(nBits) + 1; for (int j = 0; j < num5; j++) { PhysCellIdRange range = PhysCellIdRange.PerDecoder.Instance.Decode(input); info.interFreqBlackCellList.Add(range); } } if (flag) { stream3 = new BitMaskStream(input, 2); if (stream3.Read()) { info.q_QualMin_r9 = input.readBits(5) + -34; } if (stream3.Read()) { info.threshX_Q_r9 = threshX_Q_r9_Type.PerDecoder.Instance.Decode(input); } } if (flag) { stream3 = new BitMaskStream(input, 1); if (stream3.Read()) { info.q_QualMinWB_r11 = input.readBits(5) + -34; } } return info; }