Beispiel #1
0
            public MAC_MainConfig Decode(BitArrayInputStream input)
            {
                BitMaskStream  stream2;
                MAC_MainConfig config = new MAC_MainConfig();

                config.InitDefaults();
                bool          flag   = input.ReadBit() != 0;
                BitMaskStream stream = new BitMaskStream(input, 3);

                if (stream.Read())
                {
                    config.ul_SCH_Config = ul_SCH_Config_Type.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    config.drx_Config = DRX_Config.PerDecoder.Instance.Decode(input);
                }
                int nBits = 3;

                config.timeAlignmentTimerDedicated = (TimeAlignmentTimer)input.ReadBits(nBits);
                if (stream.Read())
                {
                    config.phr_Config = phr_Config_Type.PerDecoder.Instance.Decode(input);
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 1);
                    if (stream2.Read())
                    {
                        config.sr_ProhibitTimer_r9 = input.ReadBits(3);
                    }
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 1);
                    if (stream2.Read())
                    {
                        config.mac_MainConfig_v1020 = mac_MainConfig_v1020_Type.PerDecoder.Instance.Decode(input);
                    }
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 3);
                    if (stream2.Read())
                    {
                        config.stag_ToReleaseList_r11 = new List <long>();
                        nBits = 2;
                        int num3 = input.ReadBits(nBits) + 1;
                        for (int i = 0; i < num3; i++)
                        {
                            long item = input.ReadBits(2) + 1;
                            config.stag_ToReleaseList_r11.Add(item);
                        }
                    }
                    if (stream2.Read())
                    {
                        config.stag_ToAddModList_r11 = new List <STAG_ToAddMod_r11>();
                        nBits = 2;
                        int num6 = input.ReadBits(nBits) + 1;
                        for (int j = 0; j < num6; j++)
                        {
                            STAG_ToAddMod_r11 _r = STAG_ToAddMod_r11.PerDecoder.Instance.Decode(input);
                            config.stag_ToAddModList_r11.Add(_r);
                        }
                    }
                    if (stream2.Read())
                    {
                        config.drx_Config_v1130 = DRX_Config_v1130.PerDecoder.Instance.Decode(input);
                    }
                }
                return(config);
            }
Beispiel #2
0
 public MAC_MainConfig Decode(BitArrayInputStream input)
 {
     BitMaskStream stream2;
     MAC_MainConfig config = new MAC_MainConfig();
     config.InitDefaults();
     bool flag = input.readBit() != 0;
     BitMaskStream stream = new BitMaskStream(input, 3);
     if (stream.Read())
     {
         config.ul_SCH_Config = ul_SCH_Config_Type.PerDecoder.Instance.Decode(input);
     }
     if (stream.Read())
     {
         config.drx_Config = DRX_Config.PerDecoder.Instance.Decode(input);
     }
     int nBits = 3;
     config.timeAlignmentTimerDedicated = (TimeAlignmentTimer)input.readBits(nBits);
     if (stream.Read())
     {
         config.phr_Config = phr_Config_Type.PerDecoder.Instance.Decode(input);
     }
     if (flag)
     {
         stream2 = new BitMaskStream(input, 1);
         if (stream2.Read())
         {
             config.sr_ProhibitTimer_r9 = input.readBits(3);
         }
     }
     if (flag)
     {
         stream2 = new BitMaskStream(input, 1);
         if (stream2.Read())
         {
             config.mac_MainConfig_v1020 = mac_MainConfig_v1020_Type.PerDecoder.Instance.Decode(input);
         }
     }
     if (flag)
     {
         stream2 = new BitMaskStream(input, 3);
         if (stream2.Read())
         {
             config.stag_ToReleaseList_r11 = new List<long>();
             nBits = 2;
             int num3 = input.readBits(nBits) + 1;
             for (int i = 0; i < num3; i++)
             {
                 long item = input.readBits(2) + 1;
                 config.stag_ToReleaseList_r11.Add(item);
             }
         }
         if (stream2.Read())
         {
             config.stag_ToAddModList_r11 = new List<STAG_ToAddMod_r11>();
             nBits = 2;
             int num6 = input.readBits(nBits) + 1;
             for (int j = 0; j < num6; j++)
             {
                 STAG_ToAddMod_r11 _r = STAG_ToAddMod_r11.PerDecoder.Instance.Decode(input);
                 config.stag_ToAddModList_r11.Add(_r);
             }
         }
         if (stream2.Read())
         {
             config.drx_Config_v1130 = DRX_Config_v1130.PerDecoder.Instance.Decode(input);
         }
     }
     return config;
 }