Esempio n. 1
0
        private List <Angriff> EinlesenAngriffe()
        {
            FileStream    fs  = new FileStream(Protokoll.GetPathAngriffe(), FileMode.Open);
            XmlSerializer xml = new XmlSerializer(typeof(List <Angriff>));

            List <Angriff> la = (List <Angriff>)xml.Deserialize(fs);

            fs.Close();
            return(la);
        }
Esempio n. 2
0
 public Client(string ip, int port)
 {
     this.ip          = ip;
     this.port        = port;
     angriffeComplete = false;
     artenComplete    = false;
     pathArten        = Protokoll.GetPathArten();
     pathAngriffe     = Protokoll.GetPathAngriffe();
     connect();
 }
Esempio n. 3
0
        private List <Monsterart> EinlesenMonsterarten()
        {
            FileStream    fs  = new FileStream(Protokoll.GetPathArten(), FileMode.Open);
            XmlSerializer xml = new XmlSerializer(typeof(List <Monsterart>));

            List <Monsterart> lm = (List <Monsterart>)xml.Deserialize(fs);

            fs.Close();
            return(lm);
        }
Esempio n. 4
0
        /* Die Hauptfunktion / Main  vom backend NOC Portal */
        public static void Main()
        {
            Debuger debuger = new Debuger();

            debuger.routeErmitteln();       /* Roue Ordner Ermitteln */

            string      version            = "1.0";
            Einstellung einstellung        = new Einstellung();
            bool        status_einstellung = einstellung.laden();

            Protokoll protokoll    = new Protokoll();
            string    proto_gruppe = "main";


            AsciiPic asciipic = new AsciiPic();

            protokoll.erstellen(debuger.block(), proto_gruppe, "Noc Portal Backend Version " + version + " wird gestartet.  Auf Rechner: " + Environment.MachineName, debuger.klasse(), debuger.path(), debuger.dateiName(), debuger.funktion(), debuger.zeile(), false);                   /* Protokoll erstellen */
            Console.WriteLine("----------------------------------------------------- \n");
            Console.WriteLine("-- Willkommen im NOC Portal Backend Version " + version + " -- \n");
            Console.WriteLine("----------------------------------------------------- \n\n");

            if (status_einstellung == true)
            {
                Console.WriteLine(" Tastenkombination:  \n");
                Console.WriteLine(" -> AltGr + C = Clary Thread ausschalten zur DB. ( es erfolgt kein neuer Durchlauf Aktueller wird noch abgearbeitet. )  \n");
                Console.WriteLine(" -> AltGr + B = Programm beenden.  \n\n");

                main_run();
            }
            else
            {
                protokoll.erstellen(debuger.block(), proto_gruppe, "Config Datei vom Server war fehlerhaft. Programm wurde abgebrochen.", debuger.klasse(), debuger.path(), debuger.dateiName(), debuger.funktion(), debuger.zeile(), true); /* Protokoll erstellen */
                Console.BackgroundColor = ConsoleColor.Magenta;                                                                                                                                                                              /* Hintergrund Farbe zuweisen */
                Console.ForegroundColor = ConsoleColor.Black;                                                                                                                                                                                /* Text Frabe zuweisen */
                Console.WriteLine("\n\n Fehler in der Config datei! Programm wurde abgebrochen. \n");
                Console.ResetColor();                                                                                                                                                                                                        /* auf Standart Farbzuweisung gehen zurückgehen */
            }

            Console.WriteLine("\n\n  Bitte nicht Ausschalten sichere Daten! Danke. \n\n");

            protokoll.erstellen(debuger.block(), proto_gruppe, "Noc Portal Backend Version " + version + " wurde beendet.  Auf Rechner: " + Environment.MachineName, debuger.klasse(), debuger.path(), debuger.dateiName(), debuger.funktion(), debuger.zeile(), false);                  /* Protokoll erstellen */
            Thread protokoll_speicherung = new Thread(protokoll.rennen);

            protokoll_speicherung.Name         = "Ende_vom_Protokoll_Schreiben"; /* Thread Namen geben */
            protokoll_speicherung.Priority     = ThreadPriority.Highest;         /* Höchste Priorität vergeben was Thread hat */
            protokoll_speicherung.IsBackground = true;
            protokoll_speicherung.Start();
            protokoll.stop();
            protokoll_speicherung.Join();       /* Warte bis Protokolle gespeichert wurden */
            Console.WriteLine("\n----------------------------------------------------- \n");
            Console.WriteLine("--------  Daten wurden gesichert.-------------------- \n");
            Console.WriteLine("-------- NOC Portal Backend wurde Beendet!  --------- \n");
            Console.WriteLine("----------------------------------------------------- \n\n");
            Console.WriteLine(asciipic.computer());
        }
Esempio n. 5
0
        public async Task <CNCMessage> JogZ(double Z, double Feed)
        {
            CNCMessage tmp = null;
            await Task.Run(() =>
            {
                CNCMessage message = Protokoll.GetJogByYMessage(Z, Feed);
                Interface.SendMessage(message);
                tmp = Interface.ReceiveMessage(100);
            });

            return(tmp);
        }
Esempio n. 6
0
        public async Task <CNCMessage> SendSetZero()
        {
            CNCMessage tmp = null;
            await Task.Run(() =>
            {
                CNCMessage message = Protokoll.GetSetZeroMessage();
                Interface.SendMessage(message);
                tmp = Interface.ReceiveMessage(100);
            });

            return(tmp);
        }
Esempio n. 7
0
        /// <summary>
        /// Private Function which is deriving the current Z in the cnc-controller
        /// </summary>
        /// <returns></returns>
        public async Task <float> GetCurrentZ()
        {
            float r = 0;
            await Task.Run(() =>
            {
                CNCMessage message = Protokoll.GetCurrentZMessage();
                Interface.SendMessage(message);
                CNCMessage output = Interface.ReceiveMessage(100);
                var tmp           = Regex.Match(output.Message, @"(WPos:([-0-9]+.[0-9]+),([-0-9]+.[0-9]+),([-0-9]+.[0-9]+))").Groups[4].Value;
                r = Convert.ToSingle(tmp, CultureInfo.InvariantCulture);
            });

            return(r);
        }
Esempio n. 8
0
        public async Task <float[]> GetCurrentXYZ()
        {
            float[] r = new float[3];
            await Task.Run(() =>
            {
                CNCMessage message = Protokoll.GetCurrentXYZMessage();
                if (ConsoleViewModel.Verbose)
                {
                    Interface.SendMessage(message);
                }
                else
                {
                    Interface.SendMessage(message, false);
                }

                CNCMessage output;
                CNCMessage outokerror;
                List <string> outarray = new List <string>();
                outarray.Add("ok");
                outarray.Add("error");


                if (ConsoleViewModel.Verbose)
                {
                    output     = Interface.WaitReceiveMessageContaining(100, "WPos", 100);
                    outokerror = Interface.WaitReceiveMessageContainingMultible(100, outarray, 100);
                }
                else
                {
                    output     = Interface.WaitReceiveMessageContaining(100, "WPos", 100, logging: false);
                    outokerror = Interface.WaitReceiveMessageContainingMultible(100, outarray, 100, logging: false);
                }


                try
                {
                    r[0] = Convert.ToSingle(Regex.Match(output.Message, @"(WPos:([-0-9]+.[0-9]+),([-0-9]+.[0-9]+),([-0-9]+.[0-9]))").Groups[2].Value, CultureInfo.InvariantCulture);
                    r[1] = Convert.ToSingle(Regex.Match(output.Message, @"(WPos:([-0-9]+.[0-9]+),([-0-9]+.[0-9]+),([-0-9]+.[0-9]))").Groups[3].Value, CultureInfo.InvariantCulture);
                    r[2] = Convert.ToSingle(Regex.Match(output.Message, @"(WPos:([-0-9]+.[0-9]+),([-0-9]+.[0-9]+),([-0-9]+.[0-9]))").Groups[4].Value, CultureInfo.InvariantCulture);
                }
                catch (Exception ex)
                {
                    r[0] = CurrentX;
                    r[1] = CurrentY;
                    r[2] = CurrentZ;
                }
            });

            return(r);
        }
Esempio n. 9
0
 private List <Angriff> EinlesenAngriffe()
 {
     try
     {
         FileStream     fs  = new FileStream(Protokoll.GetPathAngriffe(), FileMode.Open);
         XmlSerializer  xml = new XmlSerializer(typeof(List <Angriff>));
         List <Angriff> la  = (List <Angriff>)xml.Deserialize(fs);
         fs.Close();
         return(la);
     }catch (Exception e)
     {
         Log.Debug("ActMap", e.StackTrace);
     }
     return(null);
 }
Esempio n. 10
0
        public async Task <CNCMessage> MoveByXYZ(double X, double Y, double Z, double F)
        {
            CNCMessage tmp = null;
            await Task.Run(() =>
            {
                CNCMessage message = Protokoll.GetMoveByXYZMessage(X, Y, Z, F);
                Interface.SendMessage(message);
                CNCMessage t = new CNCMessage()
                {
                    Message = "ok"
                };
                tmp = Interface.WaitReceiveMessage(100, t, 1000);
            });

            return(tmp);
        }
Esempio n. 11
0
        public async Task <CNCMessage> MoveByX(double X, double F)
        {
            CNCMessage tmp = null;
            await Task.Run(() =>
            {
                CNCMessage message = Protokoll.GetMoveByXMessage(X, F);
                Interface.SendMessage(message);
                CNCMessage t = new CNCMessage()
                {
                    Message = "ok"
                };
                tmp = (Interface as SerialGRBLInterface).WaitReceiveMessage(100, t, 1000);
            });

            return(tmp);
        }
Esempio n. 12
0
        private List <Monsterart> EinlesenMonsterarten()
        {
            try
            {
                FileStream        fs  = new FileStream(Protokoll.GetPathArten(), FileMode.Open);
                XmlSerializer     xml = new XmlSerializer(typeof(List <Monsterart>));
                List <Monsterart> lm  = (List <Monsterart>)xml.Deserialize(fs);
                fs.Close();
                return(lm);
            }catch (Exception e)
            {
                Log.Debug("ActMap Arten", e.StackTrace);
            }

            return(null);
        }
Esempio n. 13
0
        public async Task <CNCMessage> SetSpindleSpeed(double RPM, string Direction)
        {
            CNCMessage tmp = null;

            await Task.Run(() =>
            {
                CNCMessage message = Protokoll.GetSpindelSetRPMMessage(RPM, Direction);
                Interface.SendMessage(message);
                CNCMessage t = new CNCMessage()
                {
                    Message = "ok"
                };
                tmp = Interface.WaitReceiveMessage(100, t, 1000);
            });

            return(tmp);
        }
Esempio n. 14
0
        public async Task <CNCMessage> RelativeJogZ(double Z, double F)
        {
            CNCMessage tmp = null;

            await Task.Run(() =>
            {
                CNCMessage message = Protokoll.GetRelativeJogByZMessage(Z, F);
                Interface.SendMessage(message);
                CNCMessage t = new CNCMessage()
                {
                    Message = "ok"
                };
                tmp = Interface.WaitReceiveMessage(100, t, 1000);
            });

            return(tmp);
        }
Esempio n. 15
0
        public async Task <CNCMessage> KillAlarm()
        {
            CNCMessage tmp = null;

            await Task.Run(() =>
            {
                CNCMessage message = Protokoll.GetKillAlarmMessage();
                Interface.SendMessage(message);
                CNCMessage t = new CNCMessage()
                {
                    Message = "ok"
                };
                tmp = Interface.WaitReceiveMessage(100, t, 1000);
            });

            return(tmp);
        }
Esempio n. 16
0
        public async Task <CNCMessage> JogX(double X, double Feed)
        {
            CNCMessage tmp = null;

            await Task.Run(() =>


            {
                CNCMessage message = Protokoll.GetJogByXMessage(X, Feed);
                CNCMessage t       = new CNCMessage()
                {
                    Message = "ok"
                };
                Interface.SendMessage(message);
                tmp = Interface.WaitReceiveMessage(100, t, 1000);
            });


            return(tmp);
        }
Esempio n. 17
0
        public async Task <CNCMessage> JogY(double Y, double Feed)
        {
            CNCMessage tmp = null;
            await Task.Run(() =>
            {
                GRBLProtokoll pr = new GRBLProtokoll();
                CNCMessage m     = pr.GetCurrentFeedMessage();
                //CNCMessage start = new CNCMessage() { Message = "Grbl 1.1g ['$' for help]" };
                //var an = Interface.WaitReceiveMessage(100, start, 2000);

                CNCMessage message = Protokoll.GetJogByYMessage(Y, Feed);
                Interface.SendMessage(message);
                CNCMessage t = new CNCMessage()
                {
                    Message = "ok"
                };
                tmp = Interface.WaitReceiveMessage(100, t, 1000);
            });

            return(tmp);
        }
Esempio n. 18
0
        /// <summary>
        /// Private Function which is deriving the current X in the cnc-controller
        /// </summary>
        /// <returns></returns>
        public async Task <float> GetCurrentX()
        {
            float r = 0;
            await Task.Run(() =>
            {
                CNCMessage message = Protokoll.GetCurrentXMessage();
                Interface.SendMessage(message);

                CNCMessage output = Interface.WaitReceiveMessageContaining(100, "WPos", 1000);
                var tmp           = Regex.Match(output.Message, @"(WPos:([-0-9]+.[0-9]+),([-0-9]+.[0-9]+),([-0-9]+.[0-9]))").Groups[2].Value;
                try
                {
                    r = Convert.ToSingle(tmp, CultureInfo.InvariantCulture);
                }
                catch (FormatException ex)
                {
                    r = 0;
                }
            });

            return(r);
        }
Esempio n. 19
0
        private void Loggout(Protokoll protokoll)
        {
            bool disconnectAll = false;

            if(protokoll == Protokoll.ALL)
            {
                disconnectAll = true;
                menuItem2.Enabled = false;
            }

            if(dgpMessenger != null && (disconnectAll || protokoll == Protokoll.DGP))
            {
                dgpMessenger.Disconnect();
                //Contacts.Clear();
                loggingInDGP = false;
                menuItemLoggOfDGP.Enabled = false;
                for(int i = 0; i < Contacts.Count; i++)
                {
                    DGPContact con = Contacts[i] as DGPContact;
                    if(con.IsMSNContact == false)
                    {
                        Contacts.Remove(con);
                        i--;
                    }
                }
            }

            if(chatMessenger != null && (disconnectAll || protokoll == Protokoll.CHAT))
            {
                chatMessenger.Disconnect();
                loggingInChat = false;
                //menuItemLoggOfDGP.Enabled = false;
                /*for(int i = 0; i < Contacts.Count; i++)
                {
                    DGPContact con = Contacts[i] as DGPContact;
                    if(con.IsMSNContact == false)
                    {
                        Contacts.Remove(con);
                        i--;
                    }
                }*/
            }

            if(msnMessenger != null && (disconnectAll || protokoll == Protokoll.MSN))
            {
                msnMessenger.CloseConnection();
                loggingInMSN = false;
                menuItemLoggOfMSN.Enabled = false;
                for(int i = 0; i < Contacts.Count; i++)
                {
                    DGPContact con = Contacts[i] as DGPContact;
                    if(con.IsMSNContact)
                    {
                        Contacts.Remove(con);
                        i--;
                    }
                }
            }

            foreach(MessageForm mf in messageForms)
            {
                mf.SocketDisconnect();
            }

            if( disconnectAll	||
                ((msnMessenger == null	|| msnMessenger.Connected == false)		&&
                (dgpMessenger == null	|| dgpMessenger.Connected == false)		&&
                (chatMessenger == null	|| chatMessenger.Connected == false)		&&
                loggingInMSN == false && loggingInDGP == false	&& loggingInChat == false))
            {
                Contacts.Clear();
                this.SuspendLayout();
                label1.Hide();
                label2.Hide();
                listBox1.Hide();
                roundedcornerPanel1.Hide();
                listBox1.Items.Clear();
                LogginButton.Show();
                LogginButton.BringToFront();
                label3.Show();
                label3.BringToFront();
                this.ResumeLayout();

                mainMenu1.MenuItems[0].MenuItems[0].Enabled = false;
                mainMenu1.MenuItems[0].MenuItems[1].Enabled = false;
                mainMenu1.MenuItems[1].Enabled = false;
                mainMenu1.MenuItems[2].Enabled = false;

                //NotifyIconConntextMenu
                menuItem7.Enabled = false;
                menuItem28.Enabled = false;
                menuItem31.Enabled = false;

                //messageForms.Clear();	// Is this really good ?
            }
            this.SortListBox();
            this.UpdateLogginLabel();
        }
Esempio n. 20
0
 public Calculator(Protokoll protokoll, ValueProvider valueProvider)
 {
     _protokoll     = protokoll;
     _valueProvider = valueProvider;
 }
Esempio n. 21
0
        public static void main_run()
        {
            Protokoll protokoll    = new Protokoll();
            Debuger   debuger      = new Debuger();
            string    proto_gruppe = "main";

            /* Hier werden die gesamten Thread gstartet was benötigt werden im Backend */
            Host   host    = new Host();
            NocRun noc_run = new NocRun();

            PortZuweisung portzuweisung = new PortZuweisung();

            portzuweisung.portlist();        /* Port Liste erstellen */

            /* Netzwerk Daten Bereitstellen */
            Thread netzwerkDatenHolen = new Thread(host.netzwerk_daten_holen);

            netzwerkDatenHolen.Name         = "Netzwerk_Daten_Holen"; /* Thread Namen geben */
            netzwerkDatenHolen.Priority     = ThreadPriority.Highest; /* Höchste Priorität vergeben was Thread hat */
            netzwerkDatenHolen.IsBackground = true;
            netzwerkDatenHolen.Start();
            netzwerkDatenHolen.Join();                   /* Warte bis Alle Daten gesammelt wurden vom Netzwerk  */

            int port_anzahl = PortZuweisung.liste.Count; /* Anzahl ermitteln wieviel Port es gibt */

            int th_anzahl = 0;                           /* Variable spiegelt die Anzahl der Threads wieder */

            if (Einstellung.ip_adresse == "alle")
            {                                                          /* jetzt werden alle gefundenen IP adressen genommen was im System vorhanden waren */
                th_anzahl = (Host.netzwDaten.Count + 3) * port_anzahl; /* Wieviel Thread erzeugt werden sollen ermitteln plus standart Threads die immer aktiviert werden * der Port Adressen die benötigt werden  */
            }
            else                                                       /* Es wurde eine IP Adresse über die Config Datei eingetragen */
            {
                th_anzahl = (2 + 3) * port_anzahl;                     /* Wieviel Thread erzeugt werden sollen ermitteln plus standart Threads die immer aktiviert werden * der Port Adressen die benötigt werden  */
            }
            portlistener = new PortListener[th_anzahl];
            noc_thread   = new Thread[th_anzahl];          /* Threads erstellen */


            protokoll.erstellen(debuger.block(), proto_gruppe, "Thread werden vorbereitet.", debuger.klasse(), debuger.path(), debuger.dateiName(), debuger.funktion(), debuger.zeile(), false); /* Protokoll erstellen */

            noc_thread[0]              = new Thread(noc_run.rennen);                                                                                                                             /* Thread Objekt erzeugen  aus Klasse - Standart Thread - */
            noc_thread[0].Name         = "Hauptfunktion_main_run";                                                                                                                               /* Thread Namen geben */
            noc_thread[0].Priority     = ThreadPriority.Highest;                                                                                                                                 /* Höchste Priorität vergeben was Thread hat */
            noc_thread[0].IsBackground = true;                                                                                                                                                   /* Thread läuft im Backround  deklarieren ( System räumt bei nicht beenden des Thread selber diesen auf )  */
            noc_thread[1]              = new Thread(mysqldatenimport.rennen);                                                                                                                    /* Thread Objekt erzeugen  aus Klasse - Standart Thread - */
            noc_thread[1].Name         = "CFY_zu_Mysql_Datenimport";                                                                                                                             /* Thread Namen geben */
            noc_thread[1].Priority     = ThreadPriority.BelowNormal;                                                                                                                             /* eine stufe unter Normale Priorität vergeben was Thread hat */
            noc_thread[1].IsBackground = true;                                                                                                                                                   /* Thread läuft im Backround  deklarieren ( System räumt bei nicht beenden des Thread selber diesen auf )  */
            noc_thread[2]              = new Thread(protokoll.rennen);                                                                                                                           /* Thread Objekt erzeugen  aus Klasse - Standart Thread - */
            noc_thread[2].Name         = "Protokoll_in_Daten_Schreiben";                                                                                                                         /* Thread Namen geben */
            noc_thread[2].Priority     = ThreadPriority.Highest;                                                                                                                                 /* Höchste Priorität vergeben was Thread hat */
            noc_thread[2].IsBackground = true;                                                                                                                                                   /* Thread läuft im Backround  deklarieren ( System räumt bei nicht beenden des Thread selber diesen auf )  */

            int    port_i      = 0;
            int    pos         = 3;
            string thread_name = string.Empty;

            /* Port Schleife */
            Thread.Sleep(1000);
            foreach (PortZuweisung.Port_List port_liste in PortZuweisung.liste)
            {
                if (Einstellung.ip_adresse == "alle")
                {    /* Alle gefundene IP Adressen vom System nehmen */
                    /* Aktive Verbindungen lauschen lassen  - Start - */
                    foreach (Host.Neztwerk_List netz in Host.netzwDaten)
                    {
                        if (netz.aktiv_ip == "ja")
                        {
                            protokoll.erstellen(debuger.block(), proto_gruppe, "TCP Vorbereitung für " + netz.ip_adresse + ":" + port_liste.port + " zum Lauschen.", debuger.klasse(), debuger.path(), debuger.dateiName(), debuger.funktion(), debuger.zeile(), false); /* Protokoll erstellen */
                            thread_name          = "PortListener_" + netz.ip_adresse + ":" + port_liste.port;                                                                                                                                                            /* Thread Namen zuweisen */
                            portlistener[port_i] = new PortListener();
                            portlistener[port_i].ipport(netz.ip_adresse, port_liste.port, port_liste.bezeichnung, port_liste.max_verbindung, thread_name);
                            noc_thread[pos]              = new Thread(portlistener[port_i].rennen);
                            noc_thread[pos].Name         = thread_name;
                            noc_thread[pos].Priority     = ThreadPriority.AboveNormal; /* eine Stufe unter Höchste Priorität vergeben was Thread hat */
                            noc_thread[pos].IsBackground = true;                       /* Thread läuft im Backround  deklarieren ( System räumt bei nicht beenden des Thread selber diesen auf )  */
                            pos++;
                            port_i++;
                        }
                        else
                        {
                        }
                    }
                    /* Aktive Verbindungen lauschen lassen  - Ende - */
                }
                else
                {
                    thread_name          = "PortListener_" + Einstellung.ip_adresse + ":" + port_liste.port;        /* Thread Namen zuweisen */
                    portlistener[port_i] = new PortListener();
                    portlistener[port_i].ipport(Einstellung.ip_adresse, port_liste.port, port_liste.bezeichnung, port_liste.max_verbindung, thread_name);
                    noc_thread[pos]              = new Thread(portlistener[port_i].rennen);
                    noc_thread[pos].Name         = thread_name;
                    noc_thread[pos].Priority     = ThreadPriority.AboveNormal; /* eine Stufe unter Höchste Priorität vergeben was Thread hat */
                    noc_thread[pos].IsBackground = true;                       /* Thread läuft im Backround  deklarieren ( System räumt bei nicht beenden des Thread selber diesen auf )  */
                    pos++;
                    port_i++;
                }
            }


            protokoll.erstellen(debuger.block(), proto_gruppe, "Thread werden jetzt alle gestartet. Anzahl: " + pos, debuger.klasse(), debuger.path(), debuger.dateiName(), debuger.funktion(), debuger.zeile(), false);                   /* Protokoll erstellen */

            for (int i = 0; i < pos; i++)
            {
                noc_thread[i].Start();         /* Alle Thread starten */
            }

            protokoll.erstellen(debuger.block(), proto_gruppe, "Thread werden alle jetzt Überwacht bis diese Beendet werden. ( Join() )", debuger.klasse(), debuger.path(), debuger.dateiName(), debuger.funktion(), debuger.zeile(), false); /* Protokoll erstellen */

            Thread.Sleep(2000);                                                                                                                                                                                                               /* 2 Secunden Warden bis Überwachung erneut gestartet wird */

            for (int i = 0; i < pos; i++)
            {
                if (noc_thread[i].IsAlive == false)
                {                                                                                                                                                                                                                        /* Fehlerhafte Thread finden und Protokolieren und Info ausgeben */
                    Console.BackgroundColor = ConsoleColor.Magenta;                                                                                                                                                                      /* Hintergrund Farbe zuweisen */
                    Console.ForegroundColor = ConsoleColor.Black;                                                                                                                                                                        /* Text Frabe zuweisen */
                    Console.WriteLine("\n\n Thread wure unerwartet Beendet. Name: " + noc_thread[i].Name + "\n");
                    Console.ResetColor();                                                                                                                                                                                                /* auf Standart Farbzuweisung gehen zurückgehen */
                    protokoll.erstellen(debuger.block(), proto_gruppe, "Thread wure unerwartet Beendet. Name: " + noc_thread[i].Name, debuger.klasse(), debuger.path(), debuger.dateiName(), debuger.funktion(), debuger.zeile(), true); /* Protokoll erstellen */
                }
                else
                {
                }
            }

            for (int i = 0; i < pos; i++)
            {
                if (noc_thread[i].IsAlive)
                {                         /* Nur Aktive überwachen wo alles OK war */
                    noc_thread[i].Join(); /* Prüft ob Thread beendet wurden wenn nicht Wartet System bis Threads ALLE beendet wurden  */
                }
                else
                {
                }
            }
        }