コード例 #1
0
            public static DeactivationIndication Extension(BitArrayInputStream input)
            {
                int nBits = 1;

                return((DeactivationIndication)input.ReadBits(nBits));
            }
コード例 #2
0
ファイル: LocationInfo.cs プロジェクト: xuhaoa/LtePlatform
                public locationCoordinates_r10_Type Decode(BitArrayInputStream input)
                {
                    int nBits;
                    locationCoordinates_r10_Type type = new locationCoordinates_r10_Type();

                    type.InitDefaults();
                    bool flag = input.ReadBit() != 0;

                    switch (input.ReadBits(3))
                    {
                    case 0:
                        nBits = input.ReadBits(8);
                        type.ellipsoid_Point_r10 = input.readOctetString(nBits);
                        return(type);

                    case 1:
                        nBits = input.ReadBits(8);
                        type.ellipsoidPointWithAltitude_r10 = input.readOctetString(nBits);
                        return(type);

                    case 2:
                        if (flag)
                        {
                            nBits = input.ReadBits(8);
                            type.ellipsoidPointWithUncertaintyCircle_r11 = input.readOctetString(nBits);
                        }
                        return(type);

                    case 3:
                        if (flag)
                        {
                            nBits = input.ReadBits(8);
                            type.ellipsoidPointWithUncertaintyEllipse_r11 = input.readOctetString(nBits);
                        }
                        return(type);

                    case 4:
                        if (flag)
                        {
                            nBits = input.ReadBits(8);
                            type.ellipsoidPointWithAltitudeAndUncertaintyEllipsoid_r11 = input.readOctetString(nBits);
                        }
                        return(type);

                    case 5:
                        if (flag)
                        {
                            nBits = input.ReadBits(8);
                            type.ellipsoidArc_r11 = input.readOctetString(nBits);
                        }
                        return(type);

                    case 6:
                        if (flag)
                        {
                            nBits            = input.ReadBits(8);
                            type.polygon_r11 = input.readOctetString(nBits);
                        }
                        return(type);
                    }
                    throw new Exception(GetType().Name + ":NoChoice had been choose");
                }
コード例 #3
0
 public long Decode(BitArrayInputStream input)
 {
     input.ReadBit();
     return(input.ReadBits(4));
 }
コード例 #4
0
ファイル: PDCP.cs プロジェクト: xuhaoa/LtePlatform
            public PDCP_Parameters Decode(BitArrayInputStream input)
            {
                PDCP_Parameters parameters = new PDCP_Parameters();

                parameters.InitDefaults();
                BitMaskStream stream = (input.ReadBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);

                parameters.supportedROHC_Profiles = supportedROHC_Profiles_Type.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    int nBits = 4;
                    parameters.maxNumberROHC_ContextSessions = (maxNumberROHC_ContextSessions_Enum)input.ReadBits(nBits);
                }
                return(parameters);
            }
コード例 #5
0
 protected override void ProcessConfig(SupportedBandEUTRA config, BitArrayInputStream input)
 {
     config.bandEUTRA  = input.ReadBits(6) + 1;
     config.halfDuplex = input.ReadBit() == 1;
 }
コード例 #6
0
 protected override void ProcessConfig(CountingResponseInfo_r10 config, BitArrayInputStream input)
 {
     input.ReadBit();
     config.countingResponseService_r10 = input.ReadBits(4);
 }
コード例 #7
0
            public RadioResourceConfigCommon Decode(BitArrayInputStream input)
            {
                BitMaskStream             stream2;
                RadioResourceConfigCommon common = new RadioResourceConfigCommon();

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

                if (stream.Read())
                {
                    common.rach_ConfigCommon = RACH_ConfigCommon.PerDecoder.Instance.Decode(input);
                }
                common.prach_Config = PRACH_Config.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    common.pdsch_ConfigCommon = PDSCH_ConfigCommon.PerDecoder.Instance.Decode(input);
                }
                common.pusch_ConfigCommon = PUSCH_ConfigCommon.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    common.phich_Config = PHICH_Config.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    common.pucch_ConfigCommon = PUCCH_ConfigCommon.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    common.soundingRS_UL_ConfigCommon = SoundingRS_UL_ConfigCommon.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    common.uplinkPowerControlCommon = UplinkPowerControlCommon.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    common.antennaInfoCommon = AntennaInfoCommon.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    common.p_Max = input.ReadBits(6) + -30;
                }
                if (stream.Read())
                {
                    common.tdd_Config = TDD_Config.PerDecoder.Instance.Decode(input);
                }
                int nBits = 1;

                common.ul_CyclicPrefixLength = (UL_CyclicPrefixLength)input.ReadBits(nBits);
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 1);
                    if (stream2.Read())
                    {
                        common.uplinkPowerControlCommon_v1020 = UplinkPowerControlCommon_v1020.PerDecoder.Instance.Decode(input);
                    }
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 1);
                    if (stream2.Read())
                    {
                        common.tdd_Config_v1130 = TDD_Config_v1130.PerDecoder.Instance.Decode(input);
                    }
                }
                return(common);
            }
コード例 #8
0
            public PhysicalConfigDedicatedSCell_r10 Decode(BitArrayInputStream input)
            {
                BitMaskStream stream2;
                PhysicalConfigDedicatedSCell_r10 _r = new PhysicalConfigDedicatedSCell_r10();

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

                if (stream.Read())
                {
                    _r.nonUL_Configuration_r10 = nonUL_Configuration_r10_Type.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    _r.ul_Configuration_r10 = ul_Configuration_r10_Type.PerDecoder.Instance.Decode(input);
                }
                if (flag)
                {
                    int num2;
                    stream2 = new BitMaskStream(input, 9);
                    if (stream2.Read())
                    {
                        _r.csi_RS_ConfigNZPToReleaseList_r11 = new List <long>();
                        num2 = 2;
                        int num3 = input.ReadBits(num2) + 1;
                        for (int i = 0; i < num3; i++)
                        {
                            long item = input.ReadBits(2) + 1;
                            _r.csi_RS_ConfigNZPToReleaseList_r11.Add(item);
                        }
                    }
                    if (stream2.Read())
                    {
                        _r.csi_RS_ConfigNZPToAddModList_r11 = new List <CSI_RS_ConfigNZP_r11>();
                        num2 = 2;
                        int num6 = input.ReadBits(num2) + 1;
                        for (int j = 0; j < num6; j++)
                        {
                            CSI_RS_ConfigNZP_r11 _r2 = CSI_RS_ConfigNZP_r11.PerDecoder.Instance.Decode(input);
                            _r.csi_RS_ConfigNZPToAddModList_r11.Add(_r2);
                        }
                    }
                    if (stream2.Read())
                    {
                        _r.csi_RS_ConfigZPToReleaseList_r11 = new List <long>();
                        num2 = 2;
                        int num8 = input.ReadBits(num2) + 1;
                        for (int k = 0; k < num8; k++)
                        {
                            long num10 = input.ReadBits(2) + 1;
                            _r.csi_RS_ConfigZPToReleaseList_r11.Add(num10);
                        }
                    }
                    if (stream2.Read())
                    {
                        _r.csi_RS_ConfigZPToAddModList_r11 = new List <CSI_RS_ConfigZP_r11>();
                        num2 = 2;
                        int num11 = input.ReadBits(num2) + 1;
                        for (int m = 0; m < num11; m++)
                        {
                            CSI_RS_ConfigZP_r11 _r3 = CSI_RS_ConfigZP_r11.PerDecoder.Instance.Decode(input);
                            _r.csi_RS_ConfigZPToAddModList_r11.Add(_r3);
                        }
                    }
                    if (stream2.Read())
                    {
                        _r.epdcch_Config_r11 = EPDCCH_Config_r11.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        _r.pdsch_ConfigDedicated_v1130 = PDSCH_ConfigDedicated_v1130.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        _r.cqi_ReportConfig_v1130 = CQI_ReportConfig_v1130.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        _r.pusch_ConfigDedicated_v1130 = PUSCH_ConfigDedicated_v1130.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        _r.uplinkPowerControlDedicatedSCell_v1130 = UplinkPowerControlDedicated_v1130.PerDecoder.Instance.Decode(input);
                    }
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 1);
                    if (stream2.Read())
                    {
                        _r.antennaInfo_v12xx = AntennaInfoDedicated_v12xx.PerDecoder.Instance.Decode(input);
                    }
                }
                return(_r);
            }
コード例 #9
0
            public LogicalChannelConfig Decode(BitArrayInputStream input)
            {
                LogicalChannelConfig config = new LogicalChannelConfig();

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

                if (stream.Read())
                {
                    config.ul_SpecificParameters = ul_SpecificParameters_Type.PerDecoder.Instance.Decode(input);
                }
                if (flag)
                {
                    BitMaskStream stream2 = new BitMaskStream(input, 1);
                    if (stream2.Read())
                    {
                        const int nBits = 1;
                        config.logicalChannelSR_Mask_r9 = (logicalChannelSR_Mask_r9_Enum)input.ReadBits(nBits);
                    }
                }
                return(config);
            }
コード例 #10
0
            public SystemInformationBlockType8 Decode(BitArrayInputStream input)
            {
                int           num2;
                BitMaskStream stream2;
                var           type = new SystemInformationBlockType8();

                type.InitDefaults();
                var flag = false;

                flag = input.ReadBit() != 0;
                var stream = flag ? new BitMaskStream(input, 5) : new BitMaskStream(input, 4);

                if (stream.Read())
                {
                    type.systemTimeInfo = SystemTimeInfoCDMA2000.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    type.searchWindowSize = (long)input.ReadBits(4);
                }
                if (stream.Read())
                {
                    type.parametersHRPD = parametersHRPD_Type.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    type.parameters1XRTT = parameters1XRTT_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, 5);
                    if (stream2.Read())
                    {
                        type.csfb_SupportForDualRxUEs_r9 = input.ReadBit() == 1;
                    }
                    if (stream2.Read())
                    {
                        type.cellReselectionParametersHRPD_v920 = CellReselectionParametersCDMA2000_v920.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        type.cellReselectionParameters1XRTT_v920 = CellReselectionParametersCDMA2000_v920.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        type.csfb_RegistrationParam1XRTT_v920 = CSFB_RegistrationParam1XRTT_v920.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        type.ac_BarringConfig1XRTT_r9 = AC_BarringConfig1XRTT_r9.PerDecoder.Instance.Decode(input);
                    }
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 1);
                    if (stream2.Read())
                    {
                        num2 = 1;
                        type.csfb_DualRxTxSupport_r10 = (csfb_DualRxTxSupport_r10_Enum)input.ReadBits(num2);
                    }
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 1);
                    if (!stream2.Read())
                    {
                        return(type);
                    }
                    type.sib8_PerPLMN_List_r11 = new List <SIB8_PerPLMN_r11>();
                    num2 = 3;
                    var num3 = input.ReadBits(num2) + 1;
                    for (var i = 0; i < num3; i++)
                    {
                        var item = SIB8_PerPLMN_r11.PerDecoder.Decode(input);
                        type.sib8_PerPLMN_List_r11.Add(item);
                    }
                }
                return(type);
            }
コード例 #11
0
            public PhysicalConfigDedicated Decode(BitArrayInputStream input)
            {
                BitMaskStream           stream2;
                PhysicalConfigDedicated dedicated = new PhysicalConfigDedicated();

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

                if (stream.Read())
                {
                    dedicated.pdsch_ConfigDedicated = PDSCH_ConfigDedicated.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    dedicated.pucch_ConfigDedicated = PUCCH_ConfigDedicated.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    dedicated.pusch_ConfigDedicated = PUSCH_ConfigDedicated.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    dedicated.uplinkPowerControlDedicated = UplinkPowerControlDedicated.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    dedicated.tpc_PDCCH_ConfigPUCCH = TPC_PDCCH_Config.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    dedicated.tpc_PDCCH_ConfigPUSCH = TPC_PDCCH_Config.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    dedicated.cqi_ReportConfig = CQI_ReportConfig.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    dedicated.soundingRS_UL_ConfigDedicated = SoundingRS_UL_ConfigDedicated.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    dedicated.antennaInfo = antennaInfo_Type.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    dedicated.schedulingRequestConfig = SchedulingRequestConfig.PerDecoder.Instance.Decode(input);
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 2);
                    if (stream2.Read())
                    {
                        dedicated.cqi_ReportConfig_v920 = CQI_ReportConfig_v920.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        dedicated.antennaInfo_v920 = AntennaInfoDedicated_v920.PerDecoder.Instance.Decode(input);
                    }
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 11);
                    if (stream2.Read())
                    {
                        dedicated.antennaInfo_r10 = antennaInfo_r10_Type.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        dedicated.antennaInfoUL_r10 = AntennaInfoUL_r10.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        dedicated.cif_Presence_r10 = input.ReadBit() == 1;
                    }
                    if (stream2.Read())
                    {
                        dedicated.cqi_ReportConfig_r10 = CQI_ReportConfig_r10.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        dedicated.csi_RS_Config_r10 = CSI_RS_Config_r10.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        dedicated.pucch_ConfigDedicated_v1020 = PUCCH_ConfigDedicated_v1020.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        dedicated.pusch_ConfigDedicated_v1020 = PUSCH_ConfigDedicated_v1020.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        dedicated.schedulingRequestConfig_v1020 = SchedulingRequestConfig_v1020.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        dedicated.soundingRS_UL_ConfigDedicated_v1020 = SoundingRS_UL_ConfigDedicated_v1020.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        dedicated.soundingRS_UL_ConfigDedicatedAperiodic_r10 = SoundingRS_UL_ConfigDedicatedAperiodic_r10.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        dedicated.uplinkPowerControlDedicated_v1020 = UplinkPowerControlDedicated_v1020.PerDecoder.Instance.Decode(input);
                    }
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 1);
                    if (stream2.Read())
                    {
                        dedicated.additionalSpectrumEmissionCA_r10 = additionalSpectrumEmissionCA_r10_Type.PerDecoder.Instance.Decode(input);
                    }
                }
                if (flag)
                {
                    int num2;
                    stream2 = new BitMaskStream(input, 10);
                    if (stream2.Read())
                    {
                        dedicated.csi_RS_ConfigNZPToReleaseList_r11 = new List <long>();
                        num2 = 2;
                        int num3 = input.ReadBits(num2) + 1;
                        for (int i = 0; i < num3; i++)
                        {
                            long item = input.ReadBits(2) + 1;
                            dedicated.csi_RS_ConfigNZPToReleaseList_r11.Add(item);
                        }
                    }
                    if (stream2.Read())
                    {
                        dedicated.csi_RS_ConfigNZPToAddModList_r11 = new List <CSI_RS_ConfigNZP_r11>();
                        num2 = 2;
                        int num6 = input.ReadBits(num2) + 1;
                        for (int j = 0; j < num6; j++)
                        {
                            CSI_RS_ConfigNZP_r11 _r = CSI_RS_ConfigNZP_r11.PerDecoder.Instance.Decode(input);
                            dedicated.csi_RS_ConfigNZPToAddModList_r11.Add(_r);
                        }
                    }
                    if (stream2.Read())
                    {
                        dedicated.csi_RS_ConfigZPToReleaseList_r11 = new List <long>();
                        num2 = 2;
                        int num8 = input.ReadBits(num2) + 1;
                        for (int k = 0; k < num8; k++)
                        {
                            long num10 = input.ReadBits(2) + 1;
                            dedicated.csi_RS_ConfigZPToReleaseList_r11.Add(num10);
                        }
                    }
                    if (stream2.Read())
                    {
                        dedicated.csi_RS_ConfigZPToAddModList_r11 = new List <CSI_RS_ConfigZP_r11>();
                        num2 = 2;
                        int num11 = input.ReadBits(num2) + 1;
                        for (int m = 0; m < num11; m++)
                        {
                            CSI_RS_ConfigZP_r11 _r2 = CSI_RS_ConfigZP_r11.PerDecoder.Instance.Decode(input);
                            dedicated.csi_RS_ConfigZPToAddModList_r11.Add(_r2);
                        }
                    }
                    if (stream2.Read())
                    {
                        dedicated.epdcch_Config_r11 = EPDCCH_Config_r11.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        dedicated.pdsch_ConfigDedicated_v1130 = PDSCH_ConfigDedicated_v1130.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        dedicated.cqi_ReportConfig_v1130 = CQI_ReportConfig_v1130.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        dedicated.pucch_ConfigDedicated_v1130 = PUCCH_ConfigDedicated_v1130.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        dedicated.pusch_ConfigDedicated_v1130 = PUSCH_ConfigDedicated_v1130.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        dedicated.uplinkPowerControlDedicated_v1130 = UplinkPowerControlDedicated_v1130.PerDecoder.Instance.Decode(input);
                    }
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 1);
                    if (stream2.Read())
                    {
                        dedicated.antennaInfo_v12xx = AntennaInfoDedicated_v12xx.PerDecoder.Instance.Decode(input);
                    }
                }
                return(dedicated);
            }
コード例 #12
0
                protected override void ProcessConfig(c1_Type config, BitArrayInputStream input)
                {
                    InitDefaults();
                    switch (input.ReadBits(4))
                    {
                    case 0:
                        config.csfbParametersResponseCDMA2000
                            = CSFBParametersResponseCDMA2000.PerDecoder.Instance.Decode(input);
                        return;

                    case 1:
                        config.dlInformationTransfer = DLInformationTransfer.PerDecoder.Instance.Decode(input);
                        return;

                    case 2:
                        config.handoverFromEUTRAPreparationRequest
                            = HandoverFromEUTRAPreparationRequest.PerDecoder.Instance.Decode(input);
                        return;

                    case 3:
                        config.mobilityFromEUTRACommand = MobilityFromEUTRACommand.PerDecoder.Instance.Decode(input);
                        return;

                    case 4:
                        config.rrcConnectionReconfiguration
                            = RRCConnectionReconfiguration.PerDecoder.Instance.Decode(input);
                        return;

                    case 5:
                        config.rrcConnectionRelease = RRCConnectionRelease.PerDecoder.Instance.Decode(input);
                        return;

                    case 6:
                        config.securityModeCommand = SecurityModeCommand.PerDecoder.Instance.Decode(input);
                        return;

                    case 7:
                        config.ueCapabilityEnquiry = UECapabilityEnquiry.PerDecoder.Instance.Decode(input);
                        return;

                    case 8:
                        config.counterCheck = CounterCheck.PerDecoder.Instance.Decode(input);
                        return;

                    case 9:
                        config.ueInformationRequest_r9 = UEInformationRequest_r9.PerDecoder.Instance.Decode(input);
                        return;

                    case 10:
                        config.loggedMeasurementConfiguration_r10 = LoggedMeasurementConfiguration_r10.PerDecoder.Instance.Decode(input);
                        return;

                    case 11:
                        config.rnReconfiguration_r10 = RNReconfiguration_r10.PerDecoder.Instance.Decode(input);
                        return;

                    case 12:
                    case 13:
                    case 14:
                    case 15:
                        return;
                    }
                    throw new Exception(GetType().Name + ":NoChoice had been choose");
                }
コード例 #13
0
            public InterFreqCarrierFreqInfo Decode(BitArrayInputStream input)
            {
                BitMaskStream            stream3;
                InterFreqCarrierFreqInfo info = new InterFreqCarrierFreqInfo();

                info.InitDefaults();
                bool          flag    = input.ReadBit() != 0;
                BitMaskStream stream  = new BitMaskStream(input, 1);
                BitMaskStream stream2 = new BitMaskStream(input, 5);

                info.dl_CarrierFreq = input.ReadBits(0x10);
                info.q_RxLevMin     = input.ReadBits(6) + -70;
                if (stream2.Read())
                {
                    info.p_Max = input.ReadBits(6) + -30;
                }
                info.t_ReselectionEUTRA = input.ReadBits(3);
                if (stream2.Read())
                {
                    info.t_ReselectionEUTRA_SF = SpeedStateScaleFactors.PerDecoder.Instance.Decode(input);
                }
                info.threshX_High = input.ReadBits(5);
                info.threshX_Low  = input.ReadBits(5);
                int nBits = 3;

                info.allowedMeasBandwidth = (AllowedMeasBandwidth)input.ReadBits(nBits);
                info.presenceAntennaPort1 = input.ReadBit() == 1;
                if (stream2.Read())
                {
                    info.cellReselectionPriority = input.ReadBits(3);
                }
                info.neighCellConfig = input.ReadBitString(2);
                if (stream.Read())
                {
                    nBits             = 5;
                    info.q_OffsetFreq = (Q_OffsetRange)input.ReadBits(nBits);
                }
                if (stream2.Read())
                {
                    info.interFreqNeighCellList = new List <InterFreqNeighCellInfo>();
                    nBits = 4;
                    int num3 = input.ReadBits(nBits) + 1;
                    for (int i = 0; i < num3; i++)
                    {
                        InterFreqNeighCellInfo item = InterFreqNeighCellInfo.PerDecoder.Instance.Decode(input);
                        info.interFreqNeighCellList.Add(item);
                    }
                }
                if (stream2.Read())
                {
                    info.interFreqBlackCellList = new List <PhysCellIdRange>();
                    nBits = 4;
                    int num5 = input.ReadBits(nBits) + 1;
                    for (int j = 0; j < num5; j++)
                    {
                        PhysCellIdRange range = PhysCellIdRange.PerDecoder.Instance.Decode(input);
                        info.interFreqBlackCellList.Add(range);
                    }
                }
                if (flag)
                {
                    stream3 = new BitMaskStream(input, 2);
                    if (stream3.Read())
                    {
                        info.q_QualMin_r9 = input.ReadBits(5) + -34;
                    }
                    if (stream3.Read())
                    {
                        info.threshX_Q_r9 = threshX_Q_r9_Type.PerDecoder.Instance.Decode(input);
                    }
                }
                if (flag)
                {
                    stream3 = new BitMaskStream(input, 1);
                    if (stream3.Read())
                    {
                        info.q_QualMinWB_r11 = input.ReadBits(5) + -34;
                    }
                }
                return(info);
            }
コード例 #14
0
            public ProtocolIE_FieldPair Decode(BitArrayInputStream input)
            {
                int  nBits = 0;
                long num3  = 0L;
                ProtocolIE_FieldPair pair = new ProtocolIE_FieldPair();

                pair.InitDefaults();
                int num4 = input.ReadBits(1) + 1;

                input.skipUnreadedBits();
                pair.id = input.ReadBits(num4 * 8);
                num4    = 2;
                pair.firstCriticality = (Criticality)input.ReadBits(num4);
                input.skipUnreadedBits();
                nBits = 0;
                while (true)
                {
                    switch (input.ReadBit())
                    {
                    case 0:
                        nBits += input.ReadBits(7);
                        goto Label_00DD;

                    case 1:
                        switch (input.ReadBit())
                        {
                        case 0:
                            nBits += input.ReadBits(14);
                            goto Label_00DD;

                        case 1:
                            input.ReadBits(2);
                            nBits += input.ReadBits(4) * 0x400;
                            break;
                        }
                        break;
                    }
                }
Label_00DD:
                num3 = input.Position;
                try
                {
                    pair.firstValue = X2AP_PROTOCOL_IES_PAIR.Switcher(pair.id, "FirstValue", input);
                    input.skipUnreadedBits();
                }
                catch (Exception)
                {
                    input.skipUnreadedBits();
                    input.Position  = num3;
                    pair.firstValue = input.readOctetString(nBits);
                }
                if (input.Position != (num3 + nBits))
                {
                    input.Position = num3 + nBits;
                }
                num4 = 2;
                pair.secondCriticality = (Criticality)input.ReadBits(num4);
                input.skipUnreadedBits();
                nBits = 0;
                while (true)
                {
                    switch (input.ReadBit())
                    {
                    case 0:
                        nBits += input.ReadBits(7);
                        goto Label_01ED;

                    case 1:
                        switch (input.ReadBit())
                        {
                        case 0:
                            nBits += input.ReadBits(14);
                            goto Label_01ED;

                        case 1:
                            input.ReadBits(2);
                            nBits += input.ReadBits(4) * 0x400;
                            break;
                        }
                        break;
                    }
                }
Label_01ED:
                num3 = input.Position;
                try
                {
                    pair.secondValue = X2AP_PROTOCOL_IES_PAIR.Switcher(pair.id, "SecondValue", input);
                    input.skipUnreadedBits();
                }
                catch (Exception)
                {
                    input.skipUnreadedBits();
                    input.Position   = num3;
                    pair.secondValue = input.readOctetString(nBits);
                }
                if (input.Position != (num3 + nBits))
                {
                    input.Position = num3 + nBits;
                }
                return(pair);
            }
コード例 #15
0
            public ReportConfigEUTRA Decode(BitArrayInputStream input)
            {
                BitMaskStream     stream;
                ReportConfigEUTRA geutra = new ReportConfigEUTRA();

                geutra.InitDefaults();
                bool flag = input.ReadBit() != 0;

                geutra.triggerType = triggerType_Type.PerDecoder.Instance.Decode(input);
                int nBits = 1;

                geutra.triggerQuantity = (triggerQuantity_Enum)input.ReadBits(nBits);
                nBits = 1;
                geutra.reportQuantity = (reportQuantity_Enum)input.ReadBits(nBits);
                geutra.maxReportCells = input.ReadBits(3) + 1;
                nBits = 4;
                geutra.reportInterval = (ReportInterval)input.ReadBits(nBits);
                nBits = 3;
                geutra.reportAmount = (reportAmount_Enum)input.ReadBits(nBits);
                if (flag)
                {
                    stream = new BitMaskStream(input, 8);
                    bool flag2 = input.ReadBit() != 0;//verExt3Present
                    stream = new BitMaskStream(input, 6);
                    stream = new BitMaskStream(input, 2);
                    if (stream.Read())
                    {
                        nBits = 1;
                        geutra.si_RequestForHO_r9 = (si_RequestForHO_r9_Enum)input.ReadBits(nBits);
                    }
                    if (stream.Read())
                    {
                        nBits = 1;
                        geutra.ue_RxTxTimeDiffPeriodical_r9 = (ue_RxTxTimeDiffPeriodical_r9_Enum)input.ReadBits(nBits);
                    }
                    stream = new BitMaskStream(input, 7);
                    if (flag2)
                    {
                        stream = new BitMaskStream(input, 8);
                        stream = new BitMaskStream(input, 2);
                        if (stream.Read())
                        {
                            nBits = 1;
                            geutra.includeLocationInfo_r10 = (includeLocationInfo_r10_Enum)input.ReadBits(nBits);
                        }
                        if (stream.Read())
                        {
                            nBits = 1;
                            geutra.reportAddNeighMeas_r10 = (reportAddNeighMeas_r10_Enum)input.ReadBits(nBits);
                        }
                        stream = new BitMaskStream(input, 4);
                        bool flag3 = input.ReadBit() != 0; //verExt4Present
                        if (flag3)
                        {
                            stream = new BitMaskStream(input, 1);
                            if (stream.Read())
                            {
                                nBits = 4;
                                geutra.alternativeTimeToTrigger_r12 = (TimeToTrigger)input.ReadBits(nBits);
                            }
                        }
                    }
                }
                return(geutra);
            }
コード例 #16
0
            public PrivateIE_Field Decode(BitArrayInputStream input)
            {
                PrivateIE_Field field = new PrivateIE_Field();

                field.InitDefaults();
                input.skipUnreadedBits();
                int nBits = 0;

                while (true)
                {
                    switch (input.ReadBit())
                    {
                    case 0:
                        nBits += input.ReadBits(7);
                        goto Label_00A5;

                    case 1:
                        switch (input.ReadBit())
                        {
                        case 0:
                            nBits += input.ReadBits(14);
                            goto Label_00A5;

                        case 1:
                            input.ReadBits(2);
                            nBits += input.ReadBits(4) * 0x400;
                            break;
                        }
                        break;
                    }
                }
Label_00A5:
                long num3 = input.Position;

                try
                {
                    field.id = PrivateIE_ID.PerDecoder.Instance.Decode(input);
                    input.skipUnreadedBits();
                }
                catch (Exception)
                {
                    input.skipUnreadedBits();
                    input.Position  = num3;
                    field.id.global = input.readOctetString(nBits);
                }
                if (input.Position != (num3 + nBits))
                {
                    input.Position = num3 + nBits;
                }
                int num4 = 2;

                field.criticality = (Criticality)input.ReadBits(num4);
                input.skipUnreadedBits();
                nBits = 0;
                while (true)
                {
                    switch (input.ReadBit())
                    {
                    case 0:
                        nBits += input.ReadBits(7);
                        goto Label_01AE;

                    case 1:
                        switch (input.ReadBit())
                        {
                        case 0:
                            nBits += input.ReadBits(14);
                            goto Label_01AE;

                        case 1:
                            input.ReadBits(2);
                            nBits += input.ReadBits(4) * 0x400;
                            break;
                        }
                        break;
                    }
                }
Label_01AE:
                num3 = input.Position;
                try
                {
                    field.value = S1AP_PRIVATE_IES.Switcher(field.id, "Value", input);
                    input.skipUnreadedBits();
                }
                catch (Exception)
                {
                    input.skipUnreadedBits();
                    input.Position = num3;
                    field.value    = input.readOctetString(nBits);
                }
                if (input.Position != (num3 + nBits))
                {
                    input.Position = num3 + nBits;
                }
                return(field);
            }
コード例 #17
0
 protected override void ProcessConfig(CounterCheckResponse config, BitArrayInputStream input)
 {
     config.rrc_TransactionIdentifier = input.ReadBits(2);
     config.criticalExtensions        = criticalExtensions_Type.PerDecoder.Instance.Decode(input);
 }
コード例 #18
0
                public cellInfoList_r9_Type Decode(BitArrayInputStream input)
                {
                    int num2;
                    cellInfoList_r9_Type type = new cellInfoList_r9_Type();

                    type.InitDefaults();
                    bool flag = input.ReadBit() != 0;

                    switch (input.ReadBits(2))
                    {
                    case 0:
                    {
                        type.geran_r9 = new List <CellInfoGERAN_r9>();
                        num2          = 5;
                        int num4 = input.ReadBits(num2) + 1;
                        for (int i = 0; i < num4; i++)
                        {
                            CellInfoGERAN_r9 item = CellInfoGERAN_r9.PerDecoder.Instance.Decode(input);
                            type.geran_r9.Add(item);
                        }
                        return(type);
                    }

                    case 1:
                    {
                        type.utra_FDD_r9 = new List <CellInfoUTRA_FDD_r9>();
                        num2             = 4;
                        int num6 = input.ReadBits(num2) + 1;
                        for (int j = 0; j < num6; j++)
                        {
                            CellInfoUTRA_FDD_r9 _r2 = CellInfoUTRA_FDD_r9.PerDecoder.Instance.Decode(input);
                            type.utra_FDD_r9.Add(_r2);
                        }
                        return(type);
                    }

                    case 2:
                    {
                        type.utra_TDD_r9 = new List <CellInfoUTRA_TDD_r9>();
                        num2             = 4;
                        int num8 = input.ReadBits(num2) + 1;
                        for (int k = 0; k < num8; k++)
                        {
                            CellInfoUTRA_TDD_r9 _r3 = CellInfoUTRA_TDD_r9.PerDecoder.Instance.Decode(input);
                            type.utra_TDD_r9.Add(_r3);
                        }
                        return(type);
                    }

                    case 3:
                        if (flag)
                        {
                            type.utra_TDD_r10 = new List <CellInfoUTRA_TDD_r10>();
                            num2 = 4;
                            int num10 = input.ReadBits(num2) + 1;
                            for (int m = 0; m < num10; m++)
                            {
                                CellInfoUTRA_TDD_r10 _r4 = CellInfoUTRA_TDD_r10.PerDecoder.Instance.Decode(input);
                                type.utra_TDD_r10.Add(_r4);
                            }
                        }
                        return(type);
                    }
                    throw new Exception(GetType().Name + ":NoChoice had been choose");
                }
コード例 #19
0
            public RadioResourceConfigDedicated Decode(BitArrayInputStream input)
            {
                int           num2;
                BitMaskStream stream2;
                RadioResourceConfigDedicated dedicated = new RadioResourceConfigDedicated();

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

                if (stream.Read())
                {
                    dedicated.srb_ToAddModList = new List <SRB_ToAddMod>();
                    num2 = 1;
                    int num3 = input.ReadBits(num2) + 1;
                    for (int i = 0; i < num3; i++)
                    {
                        SRB_ToAddMod item = SRB_ToAddMod.PerDecoder.Instance.Decode(input);
                        dedicated.srb_ToAddModList.Add(item);
                    }
                }
                if (stream.Read())
                {
                    dedicated.drb_ToAddModList = new List <DRB_ToAddMod>();
                    num2 = 4;
                    int num5 = input.ReadBits(num2) + 1;
                    for (int j = 0; j < num5; j++)
                    {
                        DRB_ToAddMod mod2 = DRB_ToAddMod.PerDecoder.Instance.Decode(input);
                        dedicated.drb_ToAddModList.Add(mod2);
                    }
                }
                if (stream.Read())
                {
                    dedicated.drb_ToReleaseList = new List <long>();
                    num2 = 4;
                    int num7 = input.ReadBits(num2) + 1;
                    for (int k = 0; k < num7; k++)
                    {
                        long num9 = input.ReadBits(5) + 1;
                        dedicated.drb_ToReleaseList.Add(num9);
                    }
                }
                if (stream.Read())
                {
                    dedicated.mac_MainConfig = mac_MainConfig_Type.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    dedicated.sps_Config = SPS_Config.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    dedicated.physicalConfigDedicated = PhysicalConfigDedicated.PerDecoder.Instance.Decode(input);
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 1);
                    if (stream2.Read())
                    {
                        dedicated.rlf_TimersAndConstants_r9 = RLF_TimersAndConstants_r9.PerDecoder.Instance.Decode(input);
                    }
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 1);
                    if (stream2.Read())
                    {
                        dedicated.measSubframePatternPCell_r10 = MeasSubframePatternPCell_r10.PerDecoder.Instance.Decode(input);
                    }
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 1);
                    if (stream2.Read())
                    {
                        dedicated.neighCellsCRS_Info_r11 = NeighCellsCRS_Info_r11.PerDecoder.Instance.Decode(input);
                    }
                }
                return(dedicated);
            }
コード例 #20
0
            public E_RABToBeSetupItemCtxtSUReq Decode(BitArrayInputStream input)
            {
                E_RABToBeSetupItemCtxtSUReq req = new E_RABToBeSetupItemCtxtSUReq();

                req.InitDefaults();
                BitMaskStream stream = (input.ReadBit() != 0) ? new BitMaskStream(input, 2) : new BitMaskStream(input, 2);

                input.ReadBit();
                req.e_RAB_ID = input.ReadBits(4);
                req.e_RABlevelQoSParameters = E_RABLevelQoSParameters.PerDecoder.Instance.Decode(input);
                input.ReadBit();
                int nBits = input.ReadBits(8);

                input.skipUnreadedBits();
                req.transportLayerAddress = input.ReadBitString(nBits + 1);
                input.skipUnreadedBits();
                req.gTP_TEID = input.readOctetString(4);
                if (!stream.Read())
                {
                    goto Label_0154;
                }
                input.skipUnreadedBits();
                nBits = 0;
                while (true)
                {
                    switch (input.ReadBit())
                    {
                    case 0:
                        nBits += input.ReadBits(7);
                        goto Label_0144;

                    case 1:
                        switch (input.ReadBit())
                        {
                        case 0:
                            nBits += input.ReadBits(14);
                            goto Label_0144;

                        case 1:
                            input.ReadBits(2);
                            nBits += input.ReadBits(4) * 0x400;
                            break;
                        }
                        break;
                    }
                }
Label_0144:
                req.nAS_PDU = input.readOctetString(nBits);
Label_0154:
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    req.iE_Extensions = new List <ProtocolExtensionField>();
                    int num4 = 0x10;
                    int num5 = input.ReadBits(num4) + 1;
                    for (int i = 0; i < num5; i++)
                    {
                        ProtocolExtensionField item = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        req.iE_Extensions.Add(item);
                    }
                }
                return(req);
            }
コード例 #21
0
            public MeasObjectEUTRA Decode(BitArrayInputStream input)
            {
                int             num3;
                int             num4;
                long            num5;
                BitMaskStream   stream3;
                MeasObjectEUTRA teutra = new MeasObjectEUTRA();

                teutra.InitDefaults();
                bool          flag    = input.ReadBit() != 0;
                BitMaskStream stream  = new BitMaskStream(input, 1);
                BitMaskStream stream2 = new BitMaskStream(input, 5);

                teutra.carrierFreq = input.ReadBits(0x10);
                int nBits = 3;

                teutra.allowedMeasBandwidth = (AllowedMeasBandwidth)input.ReadBits(nBits);
                teutra.presenceAntennaPort1 = input.ReadBit() == 1;
                teutra.neighCellConfig      = input.ReadBitString(2);
                if (stream.Read())
                {
                    nBits             = 5;
                    teutra.offsetFreq = (Q_OffsetRange)input.ReadBits(nBits);
                }
                if (stream2.Read())
                {
                    teutra.cellsToRemoveList = new List <long>();
                    nBits = 5;
                    num3  = input.ReadBits(nBits) + 1;
                    for (num4 = 0; num4 < num3; num4++)
                    {
                        num5 = input.ReadBits(5) + 1;
                        teutra.cellsToRemoveList.Add(num5);
                    }
                }
                if (stream2.Read())
                {
                    teutra.cellsToAddModList = new List <CellsToAddMod>();
                    nBits = 5;
                    int num6 = input.ReadBits(nBits) + 1;
                    for (int i = 0; i < num6; i++)
                    {
                        CellsToAddMod item = CellsToAddMod.PerDecoder.Instance.Decode(input);
                        teutra.cellsToAddModList.Add(item);
                    }
                }
                if (stream2.Read())
                {
                    teutra.blackCellsToRemoveList = new List <long>();
                    nBits = 5;
                    num3  = input.ReadBits(nBits) + 1;
                    for (num4 = 0; num4 < num3; num4++)
                    {
                        num5 = input.ReadBits(5) + 1;
                        teutra.blackCellsToRemoveList.Add(num5);
                    }
                }
                if (stream2.Read())
                {
                    teutra.blackCellsToAddModList = new List <BlackCellsToAddMod>();
                    nBits = 5;
                    int num8 = input.ReadBits(nBits) + 1;
                    for (int j = 0; j < num8; j++)
                    {
                        BlackCellsToAddMod mod2 = BlackCellsToAddMod.PerDecoder.Instance.Decode(input);
                        teutra.blackCellsToAddModList.Add(mod2);
                    }
                }
                if (stream2.Read())
                {
                    teutra.cellForWhichToReportCGI = input.ReadBits(9);
                }
                if (flag)
                {
                    stream3 = new BitMaskStream(input, 2);
                    if (stream3.Read())
                    {
                        nBits = 3;
                        teutra.measCycleSCell_r10 = (MeasCycleSCell_r10)input.ReadBits(nBits);
                    }
                    if (stream3.Read())
                    {
                        teutra.measSubframePatternConfigNeigh_r10 = MeasSubframePatternConfigNeigh_r10.PerDecoder.Instance.Decode(input);
                    }
                }
                if (flag)
                {
                    stream3 = new BitMaskStream(input, 1);
                    if (stream3.Read())
                    {
                        teutra.widebandRSRQ_Meas_r11 = input.ReadBit() == 1;
                    }
                }
                if (flag)
                {
                    stream3 = new BitMaskStream(input, 2);
                    if (stream3.Read())
                    {
                        teutra.altTTT_CellsToRemoveList_r12 = new List <long>();
                        nBits = 5;
                        num3  = input.ReadBits(nBits) + 1;
                        for (num4 = 0; num4 < num3; num4++)
                        {
                            num5 = input.ReadBits(5) + 1;
                            teutra.altTTT_CellsToRemoveList_r12.Add(num5);
                        }
                    }
                    if (!stream3.Read())
                    {
                        return(teutra);
                    }
                    teutra.altTTT_CellsToAddModList_r12 = new List <AltTTT_CellsToAddMod_r12>();
                    nBits = 5;
                    int num10 = input.ReadBits(nBits) + 1;
                    for (int k = 0; k < num10; k++)
                    {
                        AltTTT_CellsToAddMod_r12 _r = AltTTT_CellsToAddMod_r12.PerDecoder.Instance.Decode(input);
                        teutra.altTTT_CellsToAddModList_r12.Add(_r);
                    }
                }
                return(teutra);
            }
コード例 #22
0
                    public longDRX_CycleStartOffset_Type Decode(BitArrayInputStream input)
                    {
                        longDRX_CycleStartOffset_Type type = new longDRX_CycleStartOffset_Type();

                        type.InitDefaults();
                        switch (input.ReadBits(4))
                        {
                        case 0:
                            type.sf10 = input.ReadBits(4);
                            return(type);

                        case 1:
                            type.sf20 = input.ReadBits(5);
                            return(type);

                        case 2:
                            type.sf32 = input.ReadBits(5);
                            return(type);

                        case 3:
                            type.sf40 = input.ReadBits(6);
                            return(type);

                        case 4:
                            type.sf64 = input.ReadBits(6);
                            return(type);

                        case 5:
                            type.sf80 = input.ReadBits(7);
                            return(type);

                        case 6:
                            type.sf128 = input.ReadBits(7);
                            return(type);

                        case 7:
                            type.sf160 = input.ReadBits(8);
                            return(type);

                        case 8:
                            type.sf256 = input.ReadBits(8);
                            return(type);

                        case 9:
                            type.sf320 = input.ReadBits(9);
                            return(type);

                        case 10:
                            type.sf512 = input.ReadBits(9);
                            return(type);

                        case 11:
                            type.sf640 = input.ReadBits(10);
                            return(type);

                        case 12:
                            type.sf1024 = input.ReadBits(10);
                            return(type);

                        case 13:
                            type.sf1280 = input.ReadBits(11);
                            return(type);

                        case 14:
                            type.sf2048 = input.ReadBits(11);
                            return(type);

                        case 15:
                            type.sf2560 = input.ReadBits(12);
                            return(type);
                        }
                        throw new Exception(GetType().Name + ":NoChoice had been choose");
                    }
コード例 #23
0
 protected override void ProcessConfig(BCCH_Config config, BitArrayInputStream input)
 {
     InitDefaults();
     config.modificationPeriodCoeff = (modificationPeriodCoeff_Enum)input.ReadBits(2);
 }
コード例 #24
0
 public long Decode(BitArrayInputStream input)
 {
     input.skipUnreadedBits();
     return(input.ReadBits(8) + 1);
 }
コード例 #25
0
 protected override void ProcessConfig(BandClassPriorityHRPD config, BitArrayInputStream input)
 {
     input.ReadBit();
     config.bandClass = (BandclassCDMA2000)input.ReadBits(5);
     config.cellReselectionPriority = input.ReadBits(3);
 }
コード例 #26
0
                public measResultNeighCells_r10_Type Decode(BitArrayInputStream input)
                {
                    int num2;
                    measResultNeighCells_r10_Type type = new measResultNeighCells_r10_Type();

                    type.InitDefaults();
                    BitMaskStream stream = new BitMaskStream(input, 4);

                    if (stream.Read())
                    {
                        type.measResultListEUTRA_r10 = new List <MeasResult2EUTRA_r9>();
                        num2 = 3;
                        int num3 = input.ReadBits(num2) + 1;
                        for (int i = 0; i < num3; i++)
                        {
                            MeasResult2EUTRA_r9 item = MeasResult2EUTRA_r9.PerDecoder.Instance.Decode(input);
                            type.measResultListEUTRA_r10.Add(item);
                        }
                    }
                    if (stream.Read())
                    {
                        type.measResultListUTRA_r10 = new List <MeasResult2UTRA_r9>();
                        num2 = 3;
                        int num5 = input.ReadBits(num2) + 1;
                        for (int j = 0; j < num5; j++)
                        {
                            MeasResult2UTRA_r9 _r2 = MeasResult2UTRA_r9.PerDecoder.Instance.Decode(input);
                            type.measResultListUTRA_r10.Add(_r2);
                        }
                    }
                    if (stream.Read())
                    {
                        type.measResultListGERAN_r10 = new List <List <MeasResultGERAN> >();
                        num2 = 2;
                        int num7 = input.ReadBits(num2) + 1;
                        for (int k = 0; k < num7; k++)
                        {
                            List <MeasResultGERAN> list = new List <MeasResultGERAN>();
                            num2 = 3;
                            int num9 = input.ReadBits(num2) + 1;
                            for (int m = 0; m < num9; m++)
                            {
                                MeasResultGERAN tgeran = MeasResultGERAN.PerDecoder.Instance.Decode(input);
                                list.Add(tgeran);
                            }
                            type.measResultListGERAN_r10.Add(list);
                        }
                    }
                    if (stream.Read())
                    {
                        type.measResultListCDMA2000_r10 = new List <MeasResult2CDMA2000_r9>();
                        num2 = 3;
                        int num11 = input.ReadBits(num2) + 1;
                        for (int n = 0; n < num11; n++)
                        {
                            MeasResult2CDMA2000_r9 _r3 = MeasResult2CDMA2000_r9.PerDecoder.Instance.Decode(input);
                            type.measResultListCDMA2000_r10.Add(_r3);
                        }
                    }
                    return(type);
                }
コード例 #27
0
            public RRCConnectionReestablishmentComplete_v1130_IEs Decode(BitArrayInputStream input)
            {
                RRCConnectionReestablishmentComplete_v1130_IEs es = new RRCConnectionReestablishmentComplete_v1130_IEs();

                es.InitDefaults();
                BitMaskStream stream = new BitMaskStream(input, 2);

                if (stream.Read())
                {
                    const int nBits = 1;
                    es.connEstFailInfoAvailable_r11 = (connEstFailInfoAvailable_r11_Enum)input.ReadBits(nBits);
                }
                if (stream.Read())
                {
                    es.nonCriticalExtension = nonCriticalExtension_Type.PerDecoder.Instance.Decode(input);
                }
                return(es);
            }
コード例 #28
0
            public HandoverRestrictionList Decode(BitArrayInputStream input)
            {
                int num4;
                HandoverRestrictionList list = new HandoverRestrictionList();

                list.InitDefaults();
                BitMaskStream stream = (input.ReadBit() != 0) ? new BitMaskStream(input, 5) : new BitMaskStream(input, 5);

                input.skipUnreadedBits();
                list.servingPLMN = input.readOctetString(3);
                if (stream.Read())
                {
                    list.equivalentPLMNs = new List <string>();
                    num4 = 4;
                    int num5 = input.ReadBits(num4) + 1;
                    for (int i = 0; i < num5; i++)
                    {
                        input.skipUnreadedBits();
                        string str = input.readOctetString(3);
                        list.equivalentPLMNs.Add(str);
                    }
                }
                if (stream.Read())
                {
                    list.forbiddenTAs = new List <ForbiddenTAs_Item>();
                    num4 = 4;
                    int num7 = input.ReadBits(num4) + 1;
                    for (int j = 0; j < num7; j++)
                    {
                        ForbiddenTAs_Item item = ForbiddenTAs_Item.PerDecoder.Instance.Decode(input);
                        list.forbiddenTAs.Add(item);
                    }
                }
                if (stream.Read())
                {
                    list.forbiddenLAs = new List <ForbiddenLAs_Item>();
                    num4 = 4;
                    int num9 = input.ReadBits(num4) + 1;
                    for (int k = 0; k < num9; k++)
                    {
                        ForbiddenLAs_Item item2 = ForbiddenLAs_Item.PerDecoder.Instance.Decode(input);
                        list.forbiddenLAs.Add(item2);
                    }
                }
                if (stream.Read())
                {
                    num4 = (input.ReadBit() == 0) ? 3 : 3;
                    list.forbiddenInterRATs = (ForbiddenInterRATs)input.ReadBits(num4);
                }
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    list.iE_Extensions = new List <ProtocolExtensionField>();
                    num4 = 0x10;
                    int num11 = input.ReadBits(num4) + 1;
                    for (int m = 0; m < num11; m++)
                    {
                        ProtocolExtensionField field = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        list.iE_Extensions.Add(field);
                    }
                }
                return(list);
            }
コード例 #29
0
            public NonContiguousUL_RA_WithinCC_r10 Decode(BitArrayInputStream input)
            {
                NonContiguousUL_RA_WithinCC_r10 _r = new NonContiguousUL_RA_WithinCC_r10();

                _r.InitDefaults();
                BitMaskStream stream = new BitMaskStream(input, 1);

                if (stream.Read())
                {
                    const int nBits = 1;
                    _r.nonContiguousUL_RA_WithinCC_Info_r10 = (nonContiguousUL_RA_WithinCC_Info_r10_Enum)input.ReadBits(nBits);
                }
                return(_r);
            }
コード例 #30
0
            public static TimeToWait Value(BitArrayInputStream input)
            {
                int nBits = (input.ReadBit() == 0) ? 3 : 3;

                return((TimeToWait)input.ReadBits(nBits));
            }