Example #1
0
            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);
            }
Example #2
0
 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;
 }