public SystemInformationBlockType7 Decode(BitArrayInputStream input) { var type = new SystemInformationBlockType7(); type.InitDefaults(); var flag = false; flag = input.ReadBit() != 0; var stream = flag ? new BitMaskStream(input, 3) : new BitMaskStream(input, 2); type.t_ReselectionGERAN = input.ReadBits(3); if (stream.Read()) { type.t_ReselectionGERAN_SF = SpeedStateScaleFactors.PerDecoder.Instance.Decode(input); } if (stream.Read()) { type.carrierFreqsInfoList = new List <CarrierFreqsInfoGERAN>(); var num2 = 4; var num3 = input.ReadBits(num2) + 1; for (var i = 0; i < num3; i++) { var item = CarrierFreqsInfoGERAN.PerDecoder.Instance.Decode(input); type.carrierFreqsInfoList.Add(item); } } if (flag && stream.Read()) { var nBits = input.ReadBits(8); type.lateNonCriticalExtension = input.readOctetString(nBits); } return(type); }
public SystemInformationBlockType7 Decode(BitArrayInputStream input) { var type = new SystemInformationBlockType7(); type.InitDefaults(); var flag = false; flag = input.ReadBit() != 0; var stream = flag ? new BitMaskStream(input, 3) : new BitMaskStream(input, 2); type.t_ReselectionGERAN = input.ReadBits(3); if (stream.Read()) { type.t_ReselectionGERAN_SF = SpeedStateScaleFactors.PerDecoder.Instance.Decode(input); } if (stream.Read()) { type.carrierFreqsInfoList = new List<CarrierFreqsInfoGERAN>(); var num2 = 4; var num3 = input.ReadBits(num2) + 1; for (var i = 0; i < num3; i++) { var item = CarrierFreqsInfoGERAN.PerDecoder.Instance.Decode(input); type.carrierFreqsInfoList.Add(item); } } if (flag && stream.Read()) { var nBits = input.ReadBits(8); type.lateNonCriticalExtension = input.readOctetString(nBits); } return type; }