示例#1
0
        private static void RegisterOnu(OLT olt, Protocol protocol)
        {
            // создать новое телнет подключение в зависиости от заданой ОЛТ
            TelnetConnection tc = Connect(olt);

            // залогиниться и показать ответ сервера
            Console.Write(tc.Login(login, password, timeout));
            Console.Write(tc.Read());

            var output = ShowUncfgONU(tc);

            if (output != null)
            {
                ParseOutput(output, tc, olt, protocol);
                if (slotNumber != 0)
                {
                    SetVlan(olt, protocol);
                    ConfigureOnuProfile(tc);
                    ConfigureOpticalPort(tc, protocol);
                    ConfigureEthernetPort(tc);
                    CheckConfiguration(tc);
                }
            }
            Console.ReadKey(true);
        }
示例#2
0
        private static TelnetConnection Connect(OLT olt)
        {
            TelnetConnection tc = null;

            if (olt == OLT.Kotliarskia)
            {
                tc = new TelnetConnection(kotlIP, port);
            }
            else if (olt == OLT.Zavodskia)
            {
                tc = new TelnetConnection(zavIP, port);
            }
            return(tc);
        }
示例#3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Привiт. Вибiр протоколу. Для вибору PPPoE - 1, IPoE - 2.");
            protocol = (Protocol)Convert.ToInt32(Console.ReadLine());
            if (!Enum.IsDefined(typeof(Protocol), protocol))
            {
                Console.WriteLine("Помилка. Невірний номер ОЛТ.");
            }
            else
            {
                Console.WriteLine("Вибiр ОЛТ. Для вибору Котлярська - 1, Заводська - 2.");
                olt = (OLT)Convert.ToInt32(Console.ReadLine());

                switch (olt)
                {
                case OLT.Kotliarskia: RegisterOnu(olt, protocol); break;

                case OLT.Zavodskia: RegisterOnu(olt, protocol); break;

                default: Console.WriteLine("Помилка. Невірний номер ОЛТ."); break;
                }
            }
        }
示例#4
0
        private static void SetVlan(OLT olt, Protocol protocol)
        {
            Console.WriteLine("Set Vlan!");

            if (protocol == Protocol.PPPoE)
            {
                vlan = (shelfNumber - 1) * 16;
                int ponDif = 16 - ponNumber;

                if (olt == OLT.Kotliarskia)
                {
                    vlan = vlan - ponDif + kotlVlan;
                }
                else if (olt == OLT.Zavodskia)
                {
                    vlan = vlan - ponDif + zavVlan;
                }
            }
            else if (protocol == Protocol.IPoE)
            {
                vlan  = ponNumber - 1;
                vlan *= 128;
                vlan += slotNumber;
                if (olt == OLT.Zavodskia)
                {
                    svlan += shelfNumber - 1;
                }
                else if (olt == OLT.Kotliarskia)
                {
                    svlan += shelfNumber - 1 + 100;
                }
            }

            Console.Write("Влан: ");
            Console.Write(vlan);
            Console.WriteLine();
        }
示例#5
0
        private static void ParseOutput(string output, TelnetConnection tc, OLT olt, Protocol protocol)
        {
            if (output != null)
            {
                // ловим отупут сервера и парсим только инфомрацию о местонахождении ONU и ее серийный номер
                var parseOutput = output.Split(new char[] { ' ', '-' }, StringSplitOptions.RemoveEmptyEntries);

                for (int i = 0; i < parseOutput.Length; i++)
                {
                    if (parseOutput[i].StartsWith("onu_"))
                    {
                        gponInfo = parseOutput[i];                                    // номер олт, платы, пона слота дял ону
                    }
                    // серийный номер ону
                    if (parseOutput[i].StartsWith("ZTEGC") || parseOutput[i].StartsWith("MONU") || parseOutput[i].StartsWith("GPON"))
                    {
                        sn = parseOutput[i];
                    }
                }

                Console.WriteLine(gponInfo);

                // парсим информацию об ONU на номер олт, платы, пона в отдельности
                var parseGponInfo = gponInfo.Split(new char[] { '/', '_', ':' }, StringSplitOptions.RemoveEmptyEntries);
                // приводим String к int

                oltNumber   = Int32.Parse(parseGponInfo[1]); // номера олт в числовом формате
                shelfNumber = Int32.Parse(parseGponInfo[2]); // номера платы в числовом формате
                ponNumber   = Int32.Parse(parseGponInfo[3]); // номер пона в числовом формате

                tc.WriteLine("terminal length 0");           // снимаем ограничение на ввода для терминала

                var showGponOnuState = "show gpon onu state gpon-olt_" + oltNumber + "/"
                                       + shelfNumber + "/" + ponNumber;

                tc.WriteLine(showGponOnuState); // получаем информацию о кол-ве ону и о налчиии свободных слотов на поне
                output = tc.Read();
                Console.Write(output);
                //Console.Write(tc.Read());

                Console.WriteLine("Введiть номер слота на який треба зареєструвати ОНУ:");
                slotNumber = Convert.ToInt32(Console.ReadLine());
                if (protocol == Protocol.IPoE)
                {
                    if (slotNumber > 128 || slotNumber < 1)
                    {
                        Console.WriteLine("Діапазон IPoE: 1 - 128 слоти, ви вибрали " + slotNumber + ". Спробуйте ще раз.");
                        slotNumber = 0;
                    }
                }
                if (slotNumber != 0)
                {
                    Console.Write("Номер ОЛТ: ");
                    Console.Write(oltNumber);
                    Console.WriteLine();
                    Console.Write("Номер плати: ");
                    Console.Write(shelfNumber);
                    Console.WriteLine();
                    Console.Write("Номер пону: ");
                    Console.Write(ponNumber);
                    Console.WriteLine();
                    Console.Write("Номер онушки: ");
                    Console.Write(slotNumber);
                    Console.WriteLine();
                }
            }
        }