public SystemInformationBlockType1 Decode(BitArrayInputStream input) { var type = new SystemInformationBlockType1(); type.InitDefaults(); var stream = new BitMaskStream(input, 3); type.cellAccessRelatedInfo = cellAccessRelatedInfo_Type.PerDecoder.Instance.Decode(input); type.cellSelectionInfo = cellSelectionInfo_Type.PerDecoder.Instance.Decode(input); if (stream.Read()) { type.p_Max = input.ReadBits(6) + -30; } type.freqBandIndicator = input.ReadBits(6) + 1; type.schedulingInfoList = new List <SchedulingInfo>(); var nBits = 5; var num3 = input.ReadBits(nBits) + 1; for (var i = 0; i < num3; i++) { var item = SchedulingInfo.PerDecoder.Instance.Decode(input); type.schedulingInfoList.Add(item); } if (stream.Read()) { type.tdd_Config = TDD_Config.PerDecoder.Instance.Decode(input); } nBits = 3; type.si_WindowLength = (si_WindowLength_Enum)input.ReadBits(nBits); type.systemInfoValueTag = input.ReadBits(5); if (stream.Read()) { type.nonCriticalExtension = SystemInformationBlockType1_v890_IEs.PerDecoder.Instance.Decode(input); } return(type); }
public SystemInformationBlockType1 Decode(BitArrayInputStream input) { SystemInformationBlockType1 type = new SystemInformationBlockType1(); type.InitDefaults(); BitMaskStream stream = new BitMaskStream(input, 3); type.cellAccessRelatedInfo = cellAccessRelatedInfo_Type.PerDecoder.Instance.Decode(input); type.cellSelectionInfo = cellSelectionInfo_Type.PerDecoder.Instance.Decode(input); if (stream.Read()) { type.p_Max = input.readBits(6) + -30; } type.freqBandIndicator = input.readBits(6) + 1; type.schedulingInfoList = new List<SchedulingInfo>(); int nBits = 5; int num3 = input.readBits(nBits) + 1; for (int i = 0; i < num3; i++) { SchedulingInfo item = SchedulingInfo.PerDecoder.Instance.Decode(input); type.schedulingInfoList.Add(item); } if (stream.Read()) { type.tdd_Config = TDD_Config.PerDecoder.Instance.Decode(input); } nBits = 3; type.si_WindowLength = (si_WindowLength_Enum)input.readBits(nBits); type.systemInfoValueTag = input.readBits(5); if (stream.Read()) { type.nonCriticalExtension = SystemInformationBlockType1_v890_IEs.PerDecoder.Instance.Decode(input); } return type; }