예제 #1
0
            public RedirectedCarrierInfo Decode(BitArrayInputStream input)
            {
                RedirectedCarrierInfo info = new RedirectedCarrierInfo();

                info.InitDefaults();
                bool flag = input.ReadBit() != 0;

                switch (input.ReadBits(3))
                {
                case 0:
                    info.eutra = input.ReadBits(0x10);
                    return(info);

                case 1:
                    info.geran = CarrierFreqsGERAN.PerDecoder.Instance.Decode(input);
                    return(info);

                case 2:
                    info.utra_FDD = input.ReadBits(14);
                    return(info);

                case 3:
                    info.utra_TDD = input.ReadBits(14);
                    return(info);

                case 4:
                    info.cdma2000_HRPD = CarrierFreqCDMA2000.PerDecoder.Instance.Decode(input);
                    return(info);

                case 5:
                    info.cdma2000_1xRTT = CarrierFreqCDMA2000.PerDecoder.Instance.Decode(input);
                    return(info);

                case 6:
                    if (flag)
                    {
                        info.utra_TDD_r10 = new List <long>();
                        int nBits = 3;
                        int num4  = input.ReadBits(nBits) + 1;
                        for (int i = 0; i < num4; i++)
                        {
                            long item = input.ReadBits(14);
                            info.utra_TDD_r10.Add(item);
                        }
                    }
                    return(info);
                }
                throw new Exception(GetType().Name + ":NoChoice had been choose");
            }
예제 #2
0
            public RedirectedCarrierInfo Decode(BitArrayInputStream input)
            {
                RedirectedCarrierInfo info = new RedirectedCarrierInfo();
                info.InitDefaults();
                bool flag = input.readBit() != 0;
                switch (input.readBits(3))
                {
                    case 0:
                        info.eutra = input.readBits(0x10);
                        return info;

                    case 1:
                        info.geran = CarrierFreqsGERAN.PerDecoder.Instance.Decode(input);
                        return info;

                    case 2:
                        info.utra_FDD = input.readBits(14);
                        return info;

                    case 3:
                        info.utra_TDD = input.readBits(14);
                        return info;

                    case 4:
                        info.cdma2000_HRPD = CarrierFreqCDMA2000.PerDecoder.Instance.Decode(input);
                        return info;

                    case 5:
                        info.cdma2000_1xRTT = CarrierFreqCDMA2000.PerDecoder.Instance.Decode(input);
                        return info;

                    case 6:
                        if (flag)
                        {
                            info.utra_TDD_r10 = new List<long>();
                            int nBits = 3;
                            int num4 = input.readBits(nBits) + 1;
                            for (int i = 0; i < num4; i++)
                            {
                                long item = input.readBits(14);
                                info.utra_TDD_r10.Add(item);
                            }
                        }
                        return info;
                }
                throw new Exception(GetType().Name + ":NoChoice had been choose");
            }