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); }
/** * 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(); }
//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); }
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(); }
public Siec_Data(Siec Network) { this.Network = Network; //this.gniazdo = Network.gniazdo; }
/** 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 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! }