コード例 #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;
                    portCloud   = 10100;
                    portLRM     = 10101;
                    portControl = 10102;
                }
                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_Init   Network  = new Siec_Init(ip, portSZ, portCloud, idW);
            SiecControl NetworkC = new SiecControl(ip, ip, portLRM, portControl, idW);

            new Agent(Network);
            new AgentControl(NetworkC);
        }
コード例 #2
0
        //private Siec_Data data = null;


        public Test(Siec_Init 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);
        }
コード例 #3
0
ファイル: Komutator.cs プロジェクト: piotrmalecki/TSST
        private Siec_Init Network;                  //  standardowy obiekt komunikacyjny


        public Komutator(Siec_Init 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();
        }
コード例 #4
0
ファイル: Siec_Data.cs プロジェクト: piotrmalecki/TSST
 public Siec_Data(Siec_Init Network)
 {
     this.Network = Network;
     //this.gniazdo = Network.gniazdo;
 }
コード例 #5
0
ファイル: Agent.cs プロジェクト: piotrmalecki/TSST
        /**  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_Init Network)
        {
            this.Network = Network;
            connections  = 0;

            Boolean connCC = false;
            Boolean connSZ = false;

            communicationT = new Sygnal_Text();
            kom            = new Komutator(Network);

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

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


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

            if (Network.connectService(false))
            {
                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(true);
            }

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

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

            if (connSZ && connCC)                                  //jeśli sa polaczenia rozpocznij logowanie do systemów
            {
                if (Loguj(true))
                {
                    Console.WriteLine("gitara. Logowanie do Systemu Zarządzania zakończone sukcesem."); //jesli logowanie zakonczone sukcesem, kontynuuj, jesli nie, zakoncz nasluch.
                    if (Loguj(false))
                    {
                        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 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        }