static void Main(string[] args) { try { Console.WriteLine("Temperaturserver by Simon.\nBeginne mit dem Einrichtungsvorgang."); Thread.Sleep(3000); Console.Clear(); //Serielle Schnittstelle Console.WriteLine("Geben Sie zuerst die erforderlichen Informationen für die Verbindung via serieller Schnittstelle ein."); // Einlesen der Daten string portName = SerialPortReader.getPortName(); int baudRate = SerialPortReader.getBaudRate(); Parity parity = SerialPortReader.getParity(); int dataBits = SerialPortReader.getDataBits(); StopBits stopBits = SerialPortReader.getStopBits(); // Konfiguration der seriellen Schnittstelle SerialPortReader.setSerialSettings(portName, baudRate, parity, dataBits, stopBits); Console.WriteLine("Initialisierung der seriellen Schnittstelle abgeschlossen. Weiter gehts mit der Verbindung zum SQL-Server."); Thread.Sleep(3000); // MySQL-Anbindung while (!dbSetup()) { } // Stellt die Verbindung zum MySql Server her. Console.WriteLine("Erfolgreich! Ab jetzt werden die Temperaturwerte in der Datenbank gespeichert."); Thread.Sleep(3000); Console.Clear(); // Empfangen der Temperaturen und Speicherung in der DB (in eigenem Thread) Thread readAndSave = new Thread(new ThreadStart(readTempAndSaveToDB)); readAndSave.Start(); // Socket Server starten SocketServer.startServer(); } catch (Exception ex) { Console.WriteLine("Ein Fehler ist aufgetregen, drücke eine beliebige Taste, um das Programm zu schließen.\nFehlermeldung: {0}", ex.Message); Console.ReadKey(); Environment.Exit(0); } }
private static void readTempAndSaveToDB() { //Empfangen und speichern in DB int counter = 0; while (true) { if (counter == 9) // Nur jede 10. Messung in DB speichern aufgrund der Auslastung { SQLConnector.insertToDB(SerialPortReader.read()); counter = 0; Console.WriteLine("(" + DateTime.Now.ToString("hh:mm:ss") + ") Neuer Wert empfangen und in Datenbank gespeichert."); } else { SerialPortReader.read(); counter++; } } }