Пример #1
0
        protected override long decodeConstraintNumber(long min, long max, BitArrayInputStream stream)
        {
            long result = 0;
            long valueRange = max - min;
            // !!! int narrowedVal = value - min; !!!
            int maxBitLen = PERCoderUtils.getMaxBitLength(valueRange);

            if (valueRange == 0)
            {
                return max;
            }
            //For the UNALIGNED variant the value is always encoded in the minimum 
            // number of bits necessary to represent the range (defined in 10.5.3). 
            int currentBit = maxBitLen;
            while (currentBit > 7)
            {
                currentBit -= 8;
                result |= (uint)(stream.ReadByte() << currentBit);
            }
            if (currentBit > 0)
            {
                result |= (uint)(stream.readBits(currentBit));
            }
            result += min;
            return result;
        }
Пример #2
0
            public MobilityFromEUTRACommand_v930_IEs Decode(BitArrayInputStream input)
            {
                MobilityFromEUTRACommand_v930_IEs es = new MobilityFromEUTRACommand_v930_IEs();

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

                if (stream.Read())
                {
                    int nBits = input.readBits(8);
                    es.lateNonCriticalExtension = input.readOctetString(nBits);
                }
                if (stream.Read())
                {
                    es.nonCriticalExtension = MobilityFromEUTRACommand_v960_IEs.PerDecoder.Instance.Decode(input);
                }
                return(es);
            }
            public HandoverPreparationInformation_v9d0_IEs Decode(BitArrayInputStream input)
            {
                HandoverPreparationInformation_v9d0_IEs es = new HandoverPreparationInformation_v9d0_IEs();

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

                if (stream.Read())
                {
                    int nBits = input.readBits(8);
                    es.lateNonCriticalExtension = input.readOctetString(nBits);
                }
                if (stream.Read())
                {
                    es.nonCriticalExtension = HandoverPreparationInformation_v9e0_IEs.PerDecoder.Instance.Decode(input);
                }
                return(es);
            }
            public HandoverPreparationInformation_v920_IEs Decode(BitArrayInputStream input)
            {
                HandoverPreparationInformation_v920_IEs es = new HandoverPreparationInformation_v920_IEs();

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

                if (stream.Read())
                {
                    int nBits = (input.readBit() == 0) ? 3 : 3;
                    es.ue_ConfigRelease_r9 = (ue_ConfigRelease_r9_Enum)input.readBits(nBits);
                }
                if (stream.Read())
                {
                    es.nonCriticalExtension = HandoverPreparationInformation_v9d0_IEs.PerDecoder.Instance.Decode(input);
                }
                return(es);
            }
Пример #5
0
            public MobilityFromEUTRACommand_v960_IEs Decode(BitArrayInputStream input)
            {
                MobilityFromEUTRACommand_v960_IEs es = new MobilityFromEUTRACommand_v960_IEs();

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

                if (stream.Read())
                {
                    const int nBits = 1;
                    es.bandIndicator = (BandIndicatorGERAN)input.readBits(nBits);
                }
                if (stream.Read())
                {
                    es.nonCriticalExtension = nonCriticalExtension_Type.PerDecoder.Instance.Decode(input);
                }
                return(es);
            }
Пример #6
0
            public HandoverCancelAcknowledge Decode(BitArrayInputStream input)
            {
                HandoverCancelAcknowledge acknowledge = new HandoverCancelAcknowledge();

                acknowledge.InitDefaults();
                input.readBit();
                input.skipUnreadedBits();
                acknowledge.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.readBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    acknowledge.protocolIEs.Add(item);
                }
                return(acknowledge);
            }
Пример #7
0
            public ENBConfigurationUpdate Decode(BitArrayInputStream input)
            {
                ENBConfigurationUpdate update = new ENBConfigurationUpdate();

                update.InitDefaults();
                input.readBit();
                input.skipUnreadedBits();
                update.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.readBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    update.protocolIEs.Add(item);
                }
                return(update);
            }
Пример #8
0
            public SystemInformationBlockType14_r11 Decode(BitArrayInputStream input)
            {
                var _r = new SystemInformationBlockType14_r11();

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

                if (stream.Read())
                {
                    _r.eab_Param_r11 = eab_Param_r11_Type.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    var nBits = input.readBits(8);
                    _r.lateNonCriticalExtension = input.readOctetString(nBits);
                }
                return(_r);
            }
            public UE_EUTRA_Capability_v940_IEs Decode(BitArrayInputStream input)
            {
                UE_EUTRA_Capability_v940_IEs es = new UE_EUTRA_Capability_v940_IEs();

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

                if (stream.Read())
                {
                    int nBits = input.readBits(8);
                    es.lateNonCriticalExtension = input.readOctetString(nBits);
                }
                if (stream.Read())
                {
                    es.nonCriticalExtension = UE_EUTRA_Capability_v1020_IEs.PerDecoder.Instance.Decode(input);
                }
                return(es);
            }
Пример #10
0
            public MobilityChangeRequest Decode(BitArrayInputStream input)
            {
                MobilityChangeRequest request = new MobilityChangeRequest();

                request.InitDefaults();
                input.readBit();
                input.skipUnreadedBits();
                request.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.readBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    request.protocolIEs.Add(item);
                }
                return(request);
            }
Пример #11
0
            public NASNonDeliveryIndication Decode(BitArrayInputStream input)
            {
                NASNonDeliveryIndication indication = new NASNonDeliveryIndication();

                indication.InitDefaults();
                input.readBit();
                input.skipUnreadedBits();
                indication.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.readBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    indication.protocolIEs.Add(item);
                }
                return(indication);
            }
Пример #12
0
            public DownlinkUEAssociatedLPPaTransport Decode(BitArrayInputStream input)
            {
                DownlinkUEAssociatedLPPaTransport transport = new DownlinkUEAssociatedLPPaTransport();

                transport.InitDefaults();
                input.readBit();
                input.skipUnreadedBits();
                transport.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.readBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    transport.protocolIEs.Add(item);
                }
                return(transport);
            }
Пример #13
0
            public HandoverCommand Decode(BitArrayInputStream input)
            {
                HandoverCommand command = new HandoverCommand();

                command.InitDefaults();
                input.readBit();
                input.skipUnreadedBits();
                command.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.readBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    command.protocolIEs.Add(item);
                }
                return(command);
            }
Пример #14
0
            public HandoverPreparationFailure Decode(BitArrayInputStream input)
            {
                HandoverPreparationFailure failure = new HandoverPreparationFailure();

                failure.InitDefaults();
                input.readBit();
                input.skipUnreadedBits();
                failure.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.readBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    failure.protocolIEs.Add(item);
                }
                return(failure);
            }
Пример #15
0
            public OverloadStop Decode(BitArrayInputStream input)
            {
                OverloadStop stop = new OverloadStop();

                stop.InitDefaults();
                input.readBit();
                input.skipUnreadedBits();
                stop.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.readBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    stop.protocolIEs.Add(item);
                }
                return(stop);
            }
Пример #16
0
            public MMEStatusTransfer Decode(BitArrayInputStream input)
            {
                MMEStatusTransfer transfer = new MMEStatusTransfer();

                transfer.InitDefaults();
                input.readBit();
                input.skipUnreadedBits();
                transfer.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.readBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    transfer.protocolIEs.Add(item);
                }
                return(transfer);
            }
Пример #17
0
            public DLInformationTransfer_v8a0_IEs Decode(BitArrayInputStream input)
            {
                DLInformationTransfer_v8a0_IEs es = new DLInformationTransfer_v8a0_IEs();

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

                if (stream.Read())
                {
                    int nBits = input.readBits(8);
                    es.lateNonCriticalExtension = input.readOctetString(nBits);
                }
                if (stream.Read())
                {
                    es.nonCriticalExtension = nonCriticalExtension_Type.PerDecoder.Instance.Decode(input);
                }
                return(es);
            }
Пример #18
0
            public MeasResultServFreq_r10 Decode(BitArrayInputStream input)
            {
                MeasResultServFreq_r10 _r = new MeasResultServFreq_r10();

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

                _r.servFreqId_r10 = input.readBits(3);
                if (stream.Read())
                {
                    _r.measResultSCell_r10 = measResultSCell_r10_Type.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    _r.measResultBestNeighCell_r10 = measResultBestNeighCell_r10_Type.PerDecoder.Instance.Decode(input);
                }
                return(_r);
            }
Пример #19
0
            public RadioResourceConfigCommonSCell_r10 Decode(BitArrayInputStream input)
            {
                BitMaskStream stream2;
                RadioResourceConfigCommonSCell_r10 _r = new RadioResourceConfigCommonSCell_r10();

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

                _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)
                {
                    stream2 = new BitMaskStream(input, 1);
                    if (stream2.Read())
                    {
                        _r.ul_CarrierFreq_v1090 = input.readBits(0x12) + 0x10000;
                    }
                }
                if (flag)
                {
                    stream2 = new BitMaskStream(input, 4);
                    if (stream2.Read())
                    {
                        _r.rach_ConfigCommonSCell_r11 = RACH_ConfigCommonSCell_r11.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        _r.prach_ConfigSCell_r11 = PRACH_Config.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        _r.tdd_Config_v1130 = TDD_Config_v1130.PerDecoder.Instance.Decode(input);
                    }
                    if (stream2.Read())
                    {
                        _r.uplinkPowerControlCommonSCell_v1130 = UplinkPowerControlCommonSCell_v1130.PerDecoder.Instance.Decode(input);
                    }
                }
                return(_r);
            }
                public A21MobileSubscriptionInformation Decode(BitArrayInputStream input)
                {
                    A21MobileSubscriptionInformation information = new A21MobileSubscriptionInformation {
                        A21ElementIdentifier = input.readOctetString(1),
                        Length                 = input.readBits(8),
                        RecordIdentifier       = input.readOctetString(1),
                        RecordLength           = input.readBits(8),
                        AllBandClassesIncluded = input.readBits(1),
                        CurrentBandSubclass    = input.readBits(7),
                        BandClassList          = new List <BandClass>()
                    };

                    for (int i = 1; i < information.RecordLength; i++)
                    {
                        BandClass item = new BandClass {
                            BandClassValue         = input.readBits(8),
                            AllBandClassesIncluded = input.readBits(1)
                        };
                        input.readBits(3);
                        item.BandSubclassLength = input.readBits(4);
                        i += 2;
                        item.SubClassesList = new List <SubClasses>();
                        for (int j = 0; j < item.BandSubclassLength; j++)
                        {
                            SubClasses classes = new SubClasses {
                                SC7 = input.readBit(),
                                SC6 = input.readBit(),
                                SC5 = input.readBit(),
                                SC4 = input.readBit(),
                                SC3 = input.readBit(),
                                SC2 = input.readBit(),
                                SC1 = input.readBit(),
                                SC0 = input.readBit()
                            };
                            item.SubClassesList.Add(classes);
                            i++;
                        }
                        information.BandClassList.Add(item);
                    }
                    return(information);
                }
        public void Test_RemoveMeasList(string source, string description)
        {
            BitArrayInputStream stream = source.GetInputStream();

            Assert.AreEqual(stream.readBits(5), 4);
            RRCConnectionReconfiguration result = RRCConnectionReconfiguration.PerDecoder.Instance.Decode(stream);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.criticalExtensions);
            Assert.IsNotNull(result.criticalExtensions.c1);
            Assert.IsNull(result.criticalExtensions.criticalExtensionsFuture);
            Assert.IsNotNull(result.criticalExtensions.c1.rrcConnectionReconfiguration_r8);
            MeasConfig config = result.criticalExtensions.c1.rrcConnectionReconfiguration_r8.measConfig;

            Assert.IsNotNull(config);
            Assert.IsNotNull(config.measObjectToRemoveList);
            Assert.IsNotNull(config.reportConfigToRemoveList);
            Assert.AreEqual(config.GetMaintainousOutputs(), description);
        }
        public void Test_Primary_And_Neighbors(string source, int measId, string pDescription, string[] neighbors)
        {
            BitArrayInputStream stream = source.GetInputStream();

            Assert.AreEqual(stream.readBits(5), 1);
            MeasurementReport signal  = MeasurementReport.PerDecoder.Instance.Decode(stream);
            MeasResults       results = signal.criticalExtensions.c1.measurementReport_r8.measResults;

            Assert.IsNotNull(results);
            Assert.AreEqual(results.measId, measId);
            Assert.AreEqual(results.measResultPCell.GetOutputs(), pDescription);
            List <MeasResultEUTRA> measResultEutras =
                signal.criticalExtensions.c1.measurementReport_r8.measResults.measResultNeighCells.measResultListEUTRA;

            for (int i = 0; i < measResultEutras.Count; i++)
            {
                Assert.AreEqual(measResultEutras[i].GetOutputs(), neighbors[i]);
            }
        }
Пример #23
0
            public Paging_v890_IEs Decode(BitArrayInputStream input)
            {
                Paging_v890_IEs es = new Paging_v890_IEs();

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

                if (stream.Read())
                {
                    int nBits = input.readBits(8);
                    es.lateNonCriticalExtension = input.readOctetString(nBits);
                }
                if (stream.Read())
                {
                    es.nonCriticalExtension = Paging_v920_IEs.PerDecoder.Instance.Decode(input);
                }
                return(es);
            }
Пример #24
0
            public SecurityModeComplete_v8a0_IEs Decode(BitArrayInputStream input)
            {
                SecurityModeComplete_v8a0_IEs es = new SecurityModeComplete_v8a0_IEs();

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

                if (stream.Read())
                {
                    int nBits = input.readBits(8);
                    es.lateNonCriticalExtension = input.readOctetString(nBits);
                }
                if (stream.Read())
                {
                    es.nonCriticalExtension = nonCriticalExtension_Type.PerDecoder.Instance.Decode(input);
                }
                return(es);
            }
 public setup_Type Decode(BitArrayInputStream input)
 {
     setup_Type type = new setup_Type();
     type.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 1);
     type.measSubframePatternNeigh_r10 = MeasSubframePattern_r10.PerDecoder.Instance.Decode(input);
     if (stream.Read())
     {
         type.measSubframeCellList_r10 = new List<PhysCellIdRange>();
         const int nBits = 5;
         int num3 = input.readBits(nBits) + 1;
         for (int i = 0; i < num3; i++)
         {
             PhysCellIdRange item = PhysCellIdRange.PerDecoder.Instance.Decode(input);
             type.measSubframeCellList_r10.Add(item);
         }
     }
     return type;
 }
Пример #26
0
            public InterFreqRSTDMeasurementIndication_r10_IEs Decode(BitArrayInputStream input)
            {
                InterFreqRSTDMeasurementIndication_r10_IEs es = new InterFreqRSTDMeasurementIndication_r10_IEs();

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

                es.rstd_InterFreqIndication_r10 = rstd_InterFreqIndication_r10_Type.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    int nBits = input.readBits(8);
                    es.lateNonCriticalExtension = input.readOctetString(nBits);
                }
                if (stream.Read())
                {
                    es.nonCriticalExtension = nonCriticalExtension_Type.PerDecoder.Instance.Decode(input);
                }
                return(es);
            }
Пример #27
0
        public void Test_RadioResource_PhysicalConfigDecicated(string source, string description)
        {
            BitArrayInputStream stream = source.GetInputStream();

            Assert.AreEqual(stream.readBits(5), 4);
            RRCConnectionReconfiguration result = RRCConnectionReconfiguration.PerDecoder.Instance.Decode(stream);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.criticalExtensions);
            Assert.IsNotNull(result.criticalExtensions.c1);
            Assert.IsNull(result.criticalExtensions.criticalExtensionsFuture);
            Assert.IsNotNull(result.criticalExtensions.c1.rrcConnectionReconfiguration_r8);
            RadioResourceConfigDedicated config =
                result.criticalExtensions.c1.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated;

            Assert.IsNotNull(config);
            Assert.IsNotNull(config.physicalConfigDedicated);
            Assert.AreEqual(config.physicalConfigDedicated.GetOutputs(), description);
        }
Пример #28
0
            public SubframeAllocation Decode(BitArrayInputStream input)
            {
                SubframeAllocation allocation = new SubframeAllocation();

                allocation.InitDefaults();
                input.readBit();
                switch (input.readBits(1))
                {
                case 0:
                    allocation.oneframe = input.readBitString(6);
                    return(allocation);

                case 1:
                    input.skipUnreadedBits();
                    allocation.fourframes = input.readBitString(0x18);
                    return(allocation);
                }
                throw new Exception(GetType().Name + ":NoChoice had been choose");
            }
Пример #29
0
            public PhyLayerParameters_v1130 Decode(BitArrayInputStream input)
            {
                int num2;
                PhyLayerParameters_v1130 _v = new PhyLayerParameters_v1130();

                _v.InitDefaults();
                BitMaskStream stream = new BitMaskStream(input, 7);

                if (stream.Read())
                {
                    num2 = 1;
                    _v.crs_InterfHandl_r11 = (crs_InterfHandl_r11_Enum)input.readBits(num2);
                }
                if (stream.Read())
                {
                    num2          = 1;
                    _v.ePDCCH_r11 = (ePDCCH_r11_Enum)input.readBits(num2);
                }
                if (stream.Read())
                {
                    num2 = 1;
                    _v.multiACK_CSI_Reporting_r11 = (multiACK_CSI_Reporting_r11_Enum)input.readBits(num2);
                }
                if (stream.Read())
                {
                    num2 = 1;
                    _v.ss_CCH_InterfHandl_r11 = (ss_CCH_InterfHandl_r11_Enum)input.readBits(num2);
                }
                if (stream.Read())
                {
                    num2 = 1;
                    _v.tdd_SpecialSubframe_r11 = (tdd_SpecialSubframe_r11_Enum)input.readBits(num2);
                }
                if (stream.Read())
                {
                    num2 = 1;
                    _v.txDiv_PUCCH1b_ChSelect_r11 = (txDiv_PUCCH1b_ChSelect_r11_Enum)input.readBits(num2);
                }
                if (stream.Read())
                {
                    num2           = 1;
                    _v.ul_CoMP_r11 = (ul_CoMP_r11_Enum)input.readBits(num2);
                }
                return(_v);
            }
Пример #30
0
            public RLFIndication Decode(BitArrayInputStream input)
            {
                RLFIndication indication = new RLFIndication();

                indication.InitDefaults();
                bool flag = false;

                flag = input.readBit() != 0;
                input.skipUnreadedBits();
                indication.protocolIEs = new List <ProtocolIE_Field>();
                int nBits = 0x10;
                int num5  = input.readBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    indication.protocolIEs.Add(item);
                }
                return(indication);
            }
Пример #31
0
            public ReportProximityConfig_r9 Decode(BitArrayInputStream input)
            {
                int num2;
                ReportProximityConfig_r9 _r = new ReportProximityConfig_r9();

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

                if (stream.Read())
                {
                    num2 = 1;
                    _r.proximityIndicationEUTRA_r9 = (proximityIndicationEUTRA_r9_Enum)input.readBits(num2);
                }
                if (stream.Read())
                {
                    num2 = 1;
                    _r.proximityIndicationUTRA_r9 = (proximityIndicationUTRA_r9_Enum)input.readBits(num2);
                }
                return(_r);
            }