public SystemInformationBlockType3 Decode(BitArrayInputStream input)
            {
                BitMaskStream stream2;
                var           type = new SystemInformationBlockType3();

                type.InitDefaults();
                var flag = false;

                flag = input.readBit() != 0;
                var stream = flag ? new BitMaskStream(input, 1) : new BitMaskStream(input, 0);

                type.cellReselectionInfoCommon      = cellReselectionInfoCommon_Type.PerDecoder.Instance.Decode(input);
                type.cellReselectionServingFreqInfo = cellReselectionServingFreqInfo_Type.PerDecoder.Instance.Decode(input);
                type.intraFreqCellReselectionInfo   = intraFreqCellReselectionInfo_Type.PerDecoder.Instance.Decode(input);
                if (flag && stream.Read())
                {
                    var nBits = input.readBits(8);
                    type.lateNonCriticalExtension = input.readOctetString(nBits);
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 4);
                    if (stream2.Read())
                    {
                        type.s_IntraSearch_v920 = s_IntraSearch_v920_Type.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        type.s_NonIntraSearch_v920 = s_NonIntraSearch_v920_Type.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        type.q_QualMin_r9 = input.readBits(5) + -34;
                    }
                    if (stream2.Read())
                    {
                        type.threshServingLowQ_r9 = input.readBits(5);
                    }
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 1);
                    if (stream2.Read())
                    {
                        type.q_QualMinWB_r11 = input.readBits(5) + -34;
                    }
                }
                return(type);
            }
Example #2
0
 public SystemInformationBlockType3 Decode(BitArrayInputStream input)
 {
     BitMaskStream stream2;
     SystemInformationBlockType3 type = new SystemInformationBlockType3();
     type.InitDefaults();
     bool flag = false;
     flag = input.readBit() != 0;
     BitMaskStream stream = flag ? new BitMaskStream(input, 1) : new BitMaskStream(input, 0);
     type.cellReselectionInfoCommon = cellReselectionInfoCommon_Type.PerDecoder.Instance.Decode(input);
     type.cellReselectionServingFreqInfo = cellReselectionServingFreqInfo_Type.PerDecoder.Instance.Decode(input);
     type.intraFreqCellReselectionInfo = intraFreqCellReselectionInfo_Type.PerDecoder.Instance.Decode(input);
     if (flag && stream.Read())
     {
         int nBits = input.readBits(8);
         type.lateNonCriticalExtension = input.readOctetString(nBits);
     }
     if (flag)
     {
         stream2 = new BitMaskStream(input, 4);
         if (stream2.Read())
         {
             type.s_IntraSearch_v920 = s_IntraSearch_v920_Type.PerDecoder.Instance.Decode(input);
         }
         if (stream2.Read())
         {
             type.s_NonIntraSearch_v920 = s_NonIntraSearch_v920_Type.PerDecoder.Instance.Decode(input);
         }
         if (stream2.Read())
         {
             type.q_QualMin_r9 = input.readBits(5) + -34;
         }
         if (stream2.Read())
         {
             type.threshServingLowQ_r9 = input.readBits(5);
         }
     }
     if (flag)
     {
         stream2 = new BitMaskStream(input, 1);
         if (stream2.Read())
         {
             type.q_QualMinWB_r11 = input.readBits(5) + -34;
         }
     }
     return type;
 }