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); }
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; }