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