示例#1
0
            public TraceActivation Decode(BitArrayInputStream input)
            {
                TraceActivation activation = new TraceActivation();

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

                input.skipUnreadedBits();
                activation.e_UTRAN_Trace_ID  = input.readOctetString(8);
                activation.interfacesToTrace = input.readBitString(8);
                int nBits = (input.readBit() == 0) ? 3 : 3;

                activation.traceDepth = (TraceDepth)input.readBits(nBits);
                input.readBit();
                int num = input.readBits(8);

                input.skipUnreadedBits();
                activation.traceCollectionEntityIPAddress = input.readBitString(num + 1);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    activation.iE_Extensions = new List <ProtocolExtensionField>();
                    nBits = 0x10;
                    int num5 = input.readBits(nBits) + 1;
                    for (int i = 0; i < num5; i++)
                    {
                        ProtocolExtensionField item = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        activation.iE_Extensions.Add(item);
                    }
                }
                return(activation);
            }
示例#2
0
                public cgi_Info_Type Decode(BitArrayInputStream input)
                {
                    cgi_Info_Type type = new cgi_Info_Type();

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

                    type.cellGlobalId = CellGlobalIdUTRA.PerDecoder.Instance.Decode(input);
                    if (stream.Read())
                    {
                        type.locationAreaCode = input.readBitString(0x10);
                    }
                    if (stream.Read())
                    {
                        type.routingAreaCode = input.readBitString(8);
                    }
                    if (stream.Read())
                    {
                        type.plmn_IdentityList = new List <PLMN_Identity>();
                        int nBits = 3;
                        int num3  = input.readBits(nBits) + 1;
                        for (int i = 0; i < num3; i++)
                        {
                            PLMN_Identity item = PLMN_Identity.PerDecoder.Instance.Decode(input);
                            type.plmn_IdentityList.Add(item);
                        }
                    }
                    return(type);
                }
                public cellAccessRelatedInfo_Type Decode(BitArrayInputStream input)
                {
                    var type = new cellAccessRelatedInfo_Type();

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

                    type.plmn_IdentityList = new List <PLMN_IdentityInfo>();
                    var nBits = 3;
                    var num3  = input.readBits(nBits) + 1;

                    for (var i = 0; i < num3; i++)
                    {
                        var item = PLMN_IdentityInfo.PerDecoder.Instance.Decode(input);
                        type.plmn_IdentityList.Add(item);
                    }
                    type.trackingAreaCode = input.readBitString(0x10);
                    type.cellIdentity     = input.readBitString(0x1c);
                    nBits                     = 1;
                    type.cellBarred           = (cellBarred_Enum)input.readBits(nBits);
                    nBits                     = 1;
                    type.intraFreqReselection = (intraFreqReselection_Enum)input.readBits(nBits);
                    type.csg_Indication       = input.readBit() == 1;
                    if (stream.Read())
                    {
                        type.csg_Identity = input.readBitString(0x1b);
                    }
                    return(type);
                }
            public SystemInformationBlockType11 Decode(BitArrayInputStream input)
            {
                var type = new SystemInformationBlockType11();

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

                type.messageIdentifier = input.readBitString(0x10);
                type.serialNumber      = input.readBitString(0x10);
                const int num2 = 1;

                type.warningMessageSegmentType   = (warningMessageSegmentType_Enum)input.readBits(num2);
                type.warningMessageSegmentNumber = input.readBits(6);
                var nBits = input.readBits(8);

                type.warningMessageSegment = input.readOctetString(nBits);
                if (stream.Read())
                {
                    type.dataCodingScheme = input.readOctetString(1);
                }
                if (flag && stream.Read())
                {
                    nBits = input.readBits(8);
                    type.lateNonCriticalExtension = input.readOctetString(nBits);
                }
                return(type);
            }
示例#5
0
            public SystemInformationBlockType12_r9 Decode(BitArrayInputStream input)
            {
                var _r = new SystemInformationBlockType12_r9();

                _r.InitDefaults();
                var stream = (input.readBit() != 0) ? new BitMaskStream(input, 2) : new BitMaskStream(input, 2);

                _r.messageIdentifier_r9 = input.readBitString(0x10);
                _r.serialNumber_r9      = input.readBitString(0x10);
                const int num2 = 1;

                _r.warningMessageSegmentType_r9   = (warningMessageSegmentType_r9_Enum)input.readBits(num2);
                _r.warningMessageSegmentNumber_r9 = input.readBits(6);
                var nBits = input.readBits(8);

                _r.warningMessageSegment_r9 = input.readOctetString(nBits);
                if (stream.Read())
                {
                    _r.dataCodingScheme_r9 = input.readOctetString(1);
                }
                if (stream.Read())
                {
                    nBits = input.readBits(8);
                    _r.lateNonCriticalExtension = input.readOctetString(nBits);
                }
                return(_r);
            }
示例#6
0
            public UESecurityCapabilities Decode(BitArrayInputStream input)
            {
                UESecurityCapabilities capabilities = new UESecurityCapabilities();

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

                input.readBit();
                capabilities.encryptionAlgorithms = input.readBitString(0x10);
                input.readBit();
                capabilities.integrityProtectionAlgorithms = input.readBitString(0x10);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    capabilities.iE_Extensions = new List <ProtocolExtensionField>();
                    int nBits = 0x10;
                    int num5  = input.readBits(nBits) + 1;
                    for (int i = 0; i < num5; i++)
                    {
                        ProtocolExtensionField item = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        capabilities.iE_Extensions.Add(item);
                    }
                }
                return(capabilities);
            }
示例#7
0
            public PhysCellIdGERAN Decode(BitArrayInputStream input)
            {
                PhysCellIdGERAN dgeran = new PhysCellIdGERAN();

                dgeran.InitDefaults();
                dgeran.networkColourCode     = input.readBitString(3);
                dgeran.baseStationColourCode = input.readBitString(3);
                return(dgeran);
            }
示例#8
0
                    public aperiodicCSI_Trigger_r10_Type Decode(BitArrayInputStream input)
                    {
                        aperiodicCSI_Trigger_r10_Type type = new aperiodicCSI_Trigger_r10_Type();

                        type.InitDefaults();
                        type.trigger1_r10 = input.readBitString(8);
                        type.trigger2_r10 = input.readBitString(8);
                        return(type);
                    }
示例#9
0
            public S_TMSI Decode(BitArrayInputStream input)
            {
                S_TMSI s_tmsi = new S_TMSI();

                s_tmsi.InitDefaults();
                s_tmsi.mmec   = input.readBitString(8);
                s_tmsi.m_TMSI = input.readBitString(0x20);
                return(s_tmsi);
            }
示例#10
0
            public AdditionalReestabInfo Decode(BitArrayInputStream input)
            {
                AdditionalReestabInfo info = new AdditionalReestabInfo();

                info.InitDefaults();
                info.cellIdentity    = input.readBitString(0x1c);
                info.key_eNodeB_Star = input.readBitString(0x100);
                info.shortMAC_I      = input.readBitString(0x10);
                return(info);
            }
示例#11
0
            public CellGlobalIdGERAN Decode(BitArrayInputStream input)
            {
                CellGlobalIdGERAN dgeran = new CellGlobalIdGERAN();

                dgeran.InitDefaults();
                dgeran.plmn_Identity    = PLMN_Identity.PerDecoder.Instance.Decode(input);
                dgeran.locationAreaCode = input.readBitString(0x10);
                dgeran.cellIdentity     = input.readBitString(0x10);
                return(dgeran);
            }
示例#12
0
            public ReestabUE_Identity Decode(BitArrayInputStream input)
            {
                ReestabUE_Identity identity = new ReestabUE_Identity();

                identity.InitDefaults();
                identity.c_RNTI     = input.readBitString(0x10);
                identity.physCellId = input.readBits(9);
                identity.shortMAC_I = input.readBitString(0x10);
                return(identity);
            }
示例#13
0
            public E_RABAdmittedItem Decode(BitArrayInputStream input)
            {
                E_RABAdmittedItem item = new E_RABAdmittedItem();

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

                input.readBit();
                item.e_RAB_ID = input.readBits(4);
                input.readBit();
                int num = input.readBits(8);

                input.skipUnreadedBits();
                item.transportLayerAddress = input.readBitString(num + 1);
                input.skipUnreadedBits();
                item.gTP_TEID = input.readOctetString(4);
                if (stream.Read())
                {
                    input.readBit();
                    num = input.readBits(8);
                    input.skipUnreadedBits();
                    item.dL_transportLayerAddress = input.readBitString(num + 1);
                }
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    item.dL_gTP_TEID = input.readOctetString(4);
                }
                if (stream.Read())
                {
                    input.readBit();
                    num = input.readBits(8);
                    input.skipUnreadedBits();
                    item.uL_TransportLayerAddress = input.readBitString(num + 1);
                }
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    item.uL_GTP_TEID = input.readOctetString(4);
                }
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    item.iE_Extensions = new List <ProtocolExtensionField>();
                    int nBits = 0x10;
                    int num5  = input.readBits(nBits) + 1;
                    for (int i = 0; i < num5; i++)
                    {
                        ProtocolExtensionField field = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        item.iE_Extensions.Add(field);
                    }
                }
                return(item);
            }
示例#14
0
            public MasterInformationBlock Decode(BitArrayInputStream input)
            {
                MasterInformationBlock block = new MasterInformationBlock();

                block.InitDefaults();
                const int nBits = 3;

                block.dl_Bandwidth      = (dl_Bandwidth_Enum)input.readBits(nBits);
                block.phich_Config      = PHICH_Config.PerDecoder.Instance.Decode(input);
                block.systemFrameNumber = input.readBitString(8);
                block.spare             = input.readBitString(10);
                return(block);
            }
示例#15
0
            public LogMeasReport_r10 Decode(BitArrayInputStream input)
            {
                LogMeasReport_r10 _r = new LogMeasReport_r10();

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

                _r.absoluteTimeStamp_r10        = input.readBitString(0x30);
                _r.traceReference_r10           = TraceReference_r10.PerDecoder.Instance.Decode(input);
                _r.traceRecordingSessionRef_r10 = input.readOctetString(2);
                _r.tce_Id_r10          = input.readOctetString(1);
                _r.logMeasInfoList_r10 = new List <LogMeasInfo_r10>();
                int nBits = 10;
                int num3  = input.readBits(nBits) + 1;

                for (int i = 0; i < num3; i++)
                {
                    LogMeasInfo_r10 item = LogMeasInfo_r10.PerDecoder.Instance.Decode(input);
                    _r.logMeasInfoList_r10.Add(item);
                }
                if (stream.Read())
                {
                    nBits = 1;
                    _r.logMeasAvailable_r10 = (logMeasAvailable_r10_Enum)input.readBits(nBits);
                }
                return(_r);
            }
示例#16
0
            public GTPtunnelEndpoint Decode(BitArrayInputStream input)
            {
                GTPtunnelEndpoint endpoint = new GTPtunnelEndpoint();

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

                input.readBit();
                int num = input.readBits(8);

                input.skipUnreadedBits();
                endpoint.transportLayerAddress = input.readBitString(num + 1);
                input.skipUnreadedBits();
                endpoint.gTP_TEID = input.readOctetString(4);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    endpoint.iE_Extensions = new List <ProtocolExtensionField>();
                    const int nBits = 0x10;
                    int       num5  = input.readBits(nBits) + 1;
                    for (int i = 0; i < num5; i++)
                    {
                        ProtocolExtensionField item = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        endpoint.iE_Extensions.Add(item);
                    }
                }
                return(endpoint);
            }
            public UE_EUTRA_Capability_v9a0_IEs Decode(BitArrayInputStream input)
            {
                UE_EUTRA_Capability_v9a0_IEs es = new UE_EUTRA_Capability_v9a0_IEs();

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

                if (stream.Read())
                {
                    es.featureGroupIndRel9Add_r9 = input.readBitString(0x20);
                }
                if (stream.Read())
                {
                    es.fdd_Add_UE_EUTRA_Capabilities_r9 = UE_EUTRA_CapabilityAddXDD_Mode_r9.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    es.tdd_Add_UE_EUTRA_Capabilities_r9 = UE_EUTRA_CapabilityAddXDD_Mode_r9.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    es.nonCriticalExtension = UE_EUTRA_Capability_v9c0_IEs.PerDecoder.Instance.Decode(input);
                }
                return(es);
            }
            public UE_EUTRA_CapabilityAddXDD_Mode_v1060 Decode(BitArrayInputStream input)
            {
                UE_EUTRA_CapabilityAddXDD_Mode_v1060 _v = new UE_EUTRA_CapabilityAddXDD_Mode_v1060();

                _v.InitDefaults();
                bool          flag   = input.readBit() != 0;
                BitMaskStream stream = new BitMaskStream(input, 4);

                if (stream.Read())
                {
                    _v.phyLayerParameters_v1060 = PhyLayerParameters_v1020.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    _v.featureGroupIndRel10_v1060 = input.readBitString(0x20);
                }
                if (stream.Read())
                {
                    _v.interRAT_ParametersCDMA2000_v1060 = IRAT_ParametersCDMA2000_1XRTT_v1020.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    _v.interRAT_ParametersUTRA_TDD_v1060 = IRAT_ParametersUTRA_TDD_v1020.PerDecoder.Instance.Decode(input);
                }
                if (flag)
                {
                    BitMaskStream stream2 = new BitMaskStream(input, 1);
                    if (stream2.Read())
                    {
                        _v.otdoa_PositioningCapabilities_r10 = OTDOA_PositioningCapabilities_r10.PerDecoder.Instance.Decode(input);
                    }
                }
                return(_v);
            }
示例#19
0
            public X2TNLConfigurationInfo Decode(BitArrayInputStream input)
            {
                X2TNLConfigurationInfo info = new X2TNLConfigurationInfo();

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

                info.eNBX2TransportLayerAddresses = new List <string>();
                int nBits = 1;
                int num5  = input.readBits(nBits) + 1;

                for (int i = 0; i < num5; i++)
                {
                    input.readBit();
                    int num = input.readBits(8);
                    input.skipUnreadedBits();
                    string item = input.readBitString(num + 1);
                    info.eNBX2TransportLayerAddresses.Add(item);
                }
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    info.iE_Extensions = new List <ProtocolExtensionField>();
                    nBits = 0x10;
                    int num7 = input.readBits(nBits) + 1;
                    for (int j = 0; j < num7; j++)
                    {
                        ProtocolExtensionField field = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        info.iE_Extensions.Add(field);
                    }
                }
                return(info);
            }
示例#20
0
            public UL_HighInterferenceIndicationInfo_Item Decode(BitArrayInputStream input)
            {
                UL_HighInterferenceIndicationInfo_Item item = new UL_HighInterferenceIndicationInfo_Item();

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

                item.target_Cell_ID = ECGI.PerDecoder.Instance.Decode(input);
                input.readBit();
                int num = input.readBits(7);

                input.skipUnreadedBits();
                item.ul_interferenceindication = input.readBitString(num + 1);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    item.iE_Extensions = new List <ProtocolExtensionField>();
                    const int nBits = 0x10;
                    int       num5  = input.readBits(nBits) + 1;
                    for (int i = 0; i < num5; i++)
                    {
                        ProtocolExtensionField field = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        item.iE_Extensions.Add(field);
                    }
                }
                return(item);
            }
示例#21
0
            public RelativeNarrowbandTxPower Decode(BitArrayInputStream input)
            {
                RelativeNarrowbandTxPower power = new RelativeNarrowbandTxPower();

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

                input.readBit();
                int num = input.readBits(7);

                input.skipUnreadedBits();
                power.rNTP_PerPRB = input.readBitString(num + 6);
                int nBits = (input.readBit() == 0) ? 4 : 4;

                power.rNTP_Threshold = (RNTP_Threshold)input.readBits(nBits);
                nBits = (input.readBit() == 0) ? 2 : 2;
                power.numberOfCellSpecificAntennaPorts = (numberOfCellSpecificAntennaPorts_Enum)input.readBits(nBits);
                power.p_B = input.readBits(2);
                power.pDCCH_InterferenceImpact = input.readBits(3);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    power.iE_Extensions = new List <ProtocolExtensionField>();
                    nBits = 0x10;
                    int num5 = input.readBits(nBits) + 1;
                    for (int i = 0; i < num5; i++)
                    {
                        ProtocolExtensionField item = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        power.iE_Extensions.Add(item);
                    }
                }
                return(power);
            }
示例#22
0
            public RegisteredMME Decode(BitArrayInputStream input)
            {
                RegisteredMME dmme = new RegisteredMME();

                dmme.InitDefaults();
                bool          flag   = false;
                BitMaskStream stream = flag ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);

                if (stream.Read())
                {
                    dmme.plmn_Identity = PLMN_Identity.PerDecoder.Instance.Decode(input);
                }
                dmme.mmegi = input.readBitString(0x10);
                dmme.mmec  = input.readBitString(8);
                return(dmme);
            }
示例#23
0
            public LoggedMeasurementConfiguration_r10_IEs Decode(BitArrayInputStream input)
            {
                LoggedMeasurementConfiguration_r10_IEs es = new LoggedMeasurementConfiguration_r10_IEs();

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

                es.traceReference_r10           = TraceReference_r10.PerDecoder.Instance.Decode(input);
                es.traceRecordingSessionRef_r10 = input.readOctetString(2);
                es.tce_Id_r10           = input.readOctetString(1);
                es.absoluteTimeInfo_r10 = input.readBitString(0x30);
                if (stream.Read())
                {
                    es.areaConfiguration_r10 = AreaConfiguration_r10.PerDecoder.Instance.Decode(input);
                }
                int nBits = 3;

                es.loggingDuration_r10 = (LoggingDuration_r10)input.readBits(nBits);
                nBits = 3;
                es.loggingInterval_r10 = (LoggingInterval_r10)input.readBits(nBits);
                if (stream.Read())
                {
                    es.nonCriticalExtension = LoggedMeasurementConfiguration_v1080_IEs.PerDecoder.Instance.Decode(input);
                }
                return(es);
            }
                public intraFreqCellReselectionInfo_Type Decode(BitArrayInputStream input)
                {
                    var type = new intraFreqCellReselectionInfo_Type();

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

                    type.q_RxLevMin = input.readBits(6) + -70;
                    if (stream.Read())
                    {
                        type.p_Max = input.readBits(6) + -30;
                    }
                    if (stream.Read())
                    {
                        type.s_IntraSearch = input.readBits(5);
                    }
                    if (stream.Read())
                    {
                        var nBits = 3;
                        type.allowedMeasBandwidth = (AllowedMeasBandwidth)input.readBits(nBits);
                    }
                    type.presenceAntennaPort1 = input.readBit() == 1;
                    type.neighCellConfig      = input.readBitString(2);
                    type.t_ReselectionEUTRA   = input.readBits(3);
                    if (stream.Read())
                    {
                        type.t_ReselectionEUTRA_SF = SpeedStateScaleFactors.PerDecoder.Instance.Decode(input);
                    }
                    return(type);
                }
示例#25
0
            public E_RABSetupItemCtxtSURes Decode(BitArrayInputStream input)
            {
                E_RABSetupItemCtxtSURes res = new E_RABSetupItemCtxtSURes();

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

                input.readBit();
                res.e_RAB_ID = input.readBits(4);
                input.readBit();
                int num = input.readBits(8);

                input.skipUnreadedBits();
                res.transportLayerAddress = input.readBitString(num + 1);
                input.skipUnreadedBits();
                res.gTP_TEID = input.readOctetString(4);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    res.iE_Extensions = new List <ProtocolExtensionField>();
                    int nBits = 0x10;
                    int num5  = input.readBits(nBits) + 1;
                    for (int i = 0; i < num5; i++)
                    {
                        ProtocolExtensionField item = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        res.iE_Extensions.Add(item);
                    }
                }
                return(res);
            }
示例#26
0
            public E_RABToBeSetupItemHOReq Decode(BitArrayInputStream input)
            {
                E_RABToBeSetupItemHOReq req = new E_RABToBeSetupItemHOReq();

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

                input.readBit();
                req.e_RAB_ID = input.readBits(4);
                input.readBit();
                int num = input.readBits(8);

                input.skipUnreadedBits();
                req.transportLayerAddress = input.readBitString(num + 1);
                input.skipUnreadedBits();
                req.gTP_TEID = input.readOctetString(4);
                req.e_RABlevelQosParameters = E_RABLevelQoSParameters.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    req.iE_Extensions = new List <ProtocolExtensionField>();
                    int nBits = 0x10;
                    int num5  = input.readBits(nBits) + 1;
                    for (int i = 0; i < num5; i++)
                    {
                        ProtocolExtensionField item = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        req.iE_Extensions.Add(item);
                    }
                }
                return(req);
            }
            public UE_EUTRA_Capability Decode(BitArrayInputStream input)
            {
                UE_EUTRA_Capability capability = new UE_EUTRA_Capability();

                capability.InitDefaults();
                BitMaskStream stream = new BitMaskStream(input, 2);
                int           nBits  = (input.readBit() == 0) ? 3 : 3;

                capability.accessStratumRelease = (AccessStratumRelease)input.readBits(nBits);
                capability.ue_Category          = input.readBits(3) + 1;
                capability.pdcp_Parameters      = PDCP_Parameters.PerDecoder.Instance.Decode(input);
                capability.phyLayerParameters   = PhyLayerParameters.PerDecoder.Instance.Decode(input);
                capability.rf_Parameters        = RF_Parameters.PerDecoder.Instance.Decode(input);
                capability.measParameters       = MeasParameters.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    capability.featureGroupIndicators = input.readBitString(0x20);
                }
                capability.interRAT_Parameters = interRAT_Parameters_Type.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    capability.nonCriticalExtension = UE_EUTRA_Capability_v920_IEs.PerDecoder.Instance.Decode(input);
                }
                return(capability);
            }
示例#28
0
            public Bearers_SubjectToStatusTransfer_Item Decode(BitArrayInputStream input)
            {
                Bearers_SubjectToStatusTransfer_Item item = new Bearers_SubjectToStatusTransfer_Item();

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

                input.readBit();
                item.e_RAB_ID      = input.readBits(4);
                item.uL_COUNTvalue = COUNTvalue.PerDecoder.Instance.Decode(input);
                item.dL_COUNTvalue = COUNTvalue.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    item.receiveStatusofULPDCPSDUs = input.readBitString(0x1000);
                }
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    item.iE_Extensions = new List <ProtocolExtensionField>();
                    int nBits = 0x10;
                    int num5  = input.readBits(nBits) + 1;
                    for (int i = 0; i < num5; i++)
                    {
                        ProtocolExtensionField field = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        item.iE_Extensions.Add(field);
                    }
                }
                return(item);
            }
示例#29
0
            public string Decode(BitArrayInputStream input)
            {
                input.readBit();
                int num = input.readBits(8);

                return(input.readBitString(num + 1));
            }
示例#30
0
            public CellGlobalIdCDMA2000 Decode(BitArrayInputStream input)
            {
                CellGlobalIdCDMA2000 dcdma = new CellGlobalIdCDMA2000();

                dcdma.InitDefaults();
                switch (input.readBits(1))
                {
                case 0:
                    dcdma.cellGlobalId1XRTT = input.readBitString(0x2f);
                    return(dcdma);

                case 1:
                    dcdma.cellGlobalIdHRPD = input.readBitString(0x80);
                    return(dcdma);
                }
                throw new Exception(GetType().Name + ":NoChoice had been choose");
            }