コード例 #1
0
            public BlackCellsToAddMod Decode(BitArrayInputStream input)
            {
                BlackCellsToAddMod mod = new BlackCellsToAddMod();

                mod.InitDefaults();
                mod.cellIndex       = input.readBits(5) + 1;
                mod.physCellIdRange = PhysCellIdRange.PerDecoder.Instance.Decode(input);
                return(mod);
            }
コード例 #2
0
ファイル: CellsToAddMod.cs プロジェクト: ouyh18/LteTools
 public BlackCellsToAddMod Decode(BitArrayInputStream input)
 {
     BlackCellsToAddMod mod = new BlackCellsToAddMod();
     mod.InitDefaults();
     mod.cellIndex = input.readBits(5) + 1;
     mod.physCellIdRange = PhysCellIdRange.PerDecoder.Instance.Decode(input);
     return mod;
 }
コード例 #3
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);
            }