Example #1
0
        public static void Main(string[] args)
        {
            String ip;
            int    portSZ      = 0;
            int    portCloud   = 0;
            int    portControl = 0;
            int    portLRM     = 0;

            int idW = 0;

            Console.Title = ("Węzeł Sieciowy");

            if (args.Length == 6)
            {
                idW         = Convert.ToInt32(args[0]);
                ip          = args[1];
                portSZ      = Convert.ToInt32(args[2]);
                portCloud   = Convert.ToInt32(args[3]);
                portControl = Convert.ToInt32(args[4]);
                portLRM     = Convert.ToInt32(args[5]);
            }
            else
            {
                Console.Write("Podaj ip Systemu Zarządzania lub wybierz zestaw: ");

                ip = Console.ReadLine();

                if (ip[0].Equals('g'))
                {
                    idW         = Convert.ToInt32(ip.Substring(1, 1));
                    ip          = "127.0.0.1";
                    portSZ      = 10000;        // port do ap. Zarządzania
                    portCloud   = 10100;        // port do Clouda data
                    portControl = 10102;        // port do Gienka
                    portLRM     = 10101;        // port do Clouda LRM
                }
                else
                {
                    Console.Write("Podaj port Systemu Zarządzania: ");
                    portSZ = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Podaj port Chmury Kablowej: ");
                    portCloud = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Podaj port Systemu Sterowania: ");
                    portControl = Convert.ToInt32(Console.ReadLine());
                }
            }


            Console.Title = ("Węzeł Sieciowy, Id: " + (idW.ToString()));  //ustawienie tekstu belki tytulowej

            Siec Network  = new Siec(ip, portCloud, portSZ, idW);
            Siec NetworkC = new Siec(ip, portLRM, portControl, idW);

            Komutator pole_Kom = new Komutator(Network);

            new Agent(Network, pole_Kom);
            new AgentControl(NetworkC, pole_Kom);
        }
Example #2
0
        /**
         *  LRM id_połączenia(01) zakres_lambd_f1f2(0101)
         *  Gienerał id_połączenia(01) snppA(11) snppB(12)
         * **/

        public AgentControl(Siec Network, Komutator kom)
        {
            this.Network = Network;
            this.kom     = kom;
            ControlList  = new List <ModelControl>(); //lista rozkazow polaczen od CC
            //LRMList = new List<ModelLRM>();         //lista rozkazow polaczen od LRM, jesli ktores sie pokryje, polaczenie jest zestawiane
            listaZajetosciLambd = new List <int>();

            ControlList.Add(new ModelControl());    //generuje zerową porządkową pozycję(na potrzeby obslugi bledow)
            init();
        }
Example #3
0
        //private Siec_Data data = null;


        public Test(Siec Network)
        {
            czlonek = null;

            //czlonek.Insert(0, "010203");
            //czlonek[1].Insert(0, "kikakikakiaka");
            //czlonek[2].Insert(0, "balcer ma slaba glowe");
            //czlonek[3].Insert(0, "piter ma zla deserializacje");
            //czlonek[4].Insert(0, "karolina jest najladniejsza na swiecie");

            Siec_Data data = new Siec_Data(Network);

            this.Network = Network;

            //data.Send_Data(czlonek);
        }
Example #4
0
        private Siec Network;                    //  standardowy obiekt komunikacyjny


        public Komutator(Siec Network)
        {
            this.Network = Network;
            this.idW     = Network.idW;

            connTable = new String[5];                  //inicjalizacja tablicy kierowania
            for (int i = 0; i < connTable.Length; i++)
            {
                connTable[i] = "000000000000";
            }

            conversionTable = new String[5];
            for (int i = 0; i < conversionTable.Length; i++)
            {
                conversionTable[i] = "000000000000";
            }

            connected = false;

            krosowanieT = new Thread(Krosuj); //wątek odpowiedzialny za forwarding danych
            krosowanieT.Start();
        }
Example #5
0
 public Siec_Data(Siec Network)
 {
     this.Network = Network;
     //this.gniazdo = Network.gniazdo;
 }
Example #6
0
        /**  command[10]:
         * logowanie nasluchuje odpowiedzi na 0 - conf
         * polaczenie nr 1 na 1. np. 23 - 2 in 3 out
         *            nr 2 na 2 itd max 5 polaczen
         *            nr 3
         *            nr 4
         *            nr 5
         *
         * konwersja portów nr 6.
         * disconnect na 9
         *
         * bledy na 10
         **/

        public Agent(Siec Network, Komutator kom)
        {
            this.Network = Network;
            this.kom     = kom;
            connections  = 0;

            Boolean connCC = false;
            Boolean connSZ = false;

            communicationT = new Sygnal_Text();

            //Thread closerT = new Thread(Maintenance.closer);
            //closerT.Start();

            for (int i = 0; i < command.Length; i++)
            {
                command[i] = null;
            }


            //if (Network.connectService(false))
            //{
            //    Console.WriteLine("Nawiązano połączenie z Systemem Zarządzania.");
            //    connSZ = true;
            //}
            //else
            //    Console.WriteLine("\nSystem Zarządzania niedostępny.");

            if (Network.connectService(true))
            {
                Console.WriteLine("Nawiązano połączenie z Chmurą Kablową.");
                connCC = true;
            }
            else
            {
                Console.WriteLine("\nChmura Kablowa niedostępna.");
            }

            //if (connSZ)
            //{
            //    listenSZ = new Thread(new ParameterizedThreadStart(Listen_Text));
            //    listenSZ.Start(false);
            //}

            if (connCC)
            {
                listenCC = new Thread(new ParameterizedThreadStart(Listen_Text)); //przypisanie watka
                listenCC.Start(true);                                             //rozpoczecie nasluchiwania CC
            }

            Console.Write("\n------------------------------\n\n"); //robi odstęp dla czystości w oknie

            connSZ = true;                                         //wywalic

            if (connSZ && connCC)                                  //jeśli sa polaczenia rozpocznij logowanie do systemów
            {
                //if (Loguj(false))
                //{
                //    Console.WriteLine("gitara. Logowanie do Systemu Zarządzania zakończone sukcesem."); //jesli logowanie zakonczone sukcesem, kontynuuj, jesli nie, zakoncz nasluch.
                if (Loguj(true))
                {
                    Console.WriteLine("gitara. Logowanie do Chmury Kablowej zakończone sukcesem.");
                }
                //    else
                //        Console.WriteLine("\nLogowanie do Chmury Kablowej zakończone porażką. bęben.");
                //}
                ////else
                //    Console.WriteLine("\nLogowanie do Systemu Zarządzania zakończone porażką. bęben. Węzeł na złom.");
            }
            else //zamyka połączenia, nasłuch wyłącza program.
            {
                try
                {
                    listenSZ.Abort();
                    listenCC.Abort();
                }
                catch (ThreadStateException e) { }
                catch (NullReferenceException e) { }

                Network.DisconnectService(true);
                Network.DisconnectService(false);

                Console.WriteLine("\n\nWystąpiły błedy, naciśnij dowolny klawisz aby zakończyć.");
                Console.ReadKey();
                Environment.Exit(0);
            }

            Console.Write("\n------------------------------\n\n"); //robi odstęp dla czystości w oknie

            try
            {
                listenCC.Abort(); //wylaczenie nasluchu tekstowego na CC

                Thread.Sleep(1500);
                //Network.inputCC.Close();
                //Network.outputCC.Close();
                Network.inputCloud  = null;
                Network.outputCloud = null;
                Console.WriteLine("Wyłączono nasluch tekstowy CC.");
            }
            catch (NullReferenceException e) { Console.WriteLine("Nie wyłączono nasłuchu."); }
            catch (EncoderFallbackException e) { Console.WriteLine("Nie wyłączono nasłuchu."); }

            Console.Write("\n------------------------------\n\n"); //robi odstęp dla czystości w oknie
            //if (Console.ReadLine().Equals("x"))
            //{
            //    Test testuj = new Test(Network);
            //}
            //Loguj(true);


            //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KONIEC KONSTRUKTORA !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        }