using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO.Ports; using System.Management; namespace Technikerarbeit { public partial class LiveStream : Form { double wert1_neu; double wert2_neu; double wert1_anzeigen; double wert2_anzeigen; double wert3_anzeigen; int Ports; //Anzahl Ports string hilfe; string wert1_live; string wert2_live; string[] schnittstellen = SerialPort.GetPortNames(); //Ports im Array speichern public LiveStream() { InitializeComponent(); foreach (string Schnittstelle in schnittstellen) //COM Ports-Anzahl ermitteln { Ports++; } int p = 0; serialPort1.ReadTimeout = 100; //Wartezeit in ms auf Antwort des µC bevor der Lesevorgang abgebrochen wird while ((p != Ports) && (hilfe != "a")) //Alle COM Ports { //jeder COM PORT öffnet und eine "a" übermitteln try { //Schaltschrank antwortet dann auch mit a. serialPort1.PortName = schnittstellen[p]; serialPort1.Open(); serialPort1.Write("a"); //Sendezeichen an µC nicht mit WriteLine hilfe= serialPort1.ReadTo(";"); //einlesen bis zum ";" Trennzeichen serialPort1.Close(); } catch { try { serialPort1.Close(); } catch { } p++; } } serialPort1.ReadTimeout = 500; if (hilfe != "a") { MessageBox.Show("Fehler bei Verbindung aufgetreten.","Keine Verbindung"); } } /************************ Timer1 starten ********************************************************/ private void LiveStream_Load(object sender, EventArgs e) { timer2.Start(); //Startet Timer 1 sobald Form Livestream geöffnet wird } /************************ Anzeige alle 3min neuanzeigen *****************************************/ private void Anzeigen(object sender, EventArgs e) timerFunktion { try { anzeigen(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } public void anzeigen() { serialPort1.Open(); //Serielle Schnittstelle öffnen serialPort1.Write("b"); //Zeichen auf serielle Schnittstelle legen wert1_live = serialPort1.ReadTo(";"); //Wert1 einlesen bis ";" wert1_neu = Convert.ToDouble(wert1_live); //Wert1 wandeln in Double wert1_anzeigen = wert1_neu * 0.013333; //Wert1 mit fakor multiplizieren textBox1.Text = Convert.ToString(wert1_anzeigen); //Wert1 in TextBox1 anteigen wert2_live = serialPort1.ReadTo(";"); //Wert2 einlesen bis ";" wert2_neu = Convert.ToDouble(wert2_live); //Wert2 wandeln in Double wert2_anzeigen = wert2_neu * 0.013333; //Wert2 mit Faktor multiplizieren textBox2.Text = Convert.ToString(wert2_anzeigen); //Wert2 in Textbox2 anzeigen wert3_anzeigen = wert1_anzeigen - wert2_anzeigen; //Wert2 von Wert1 subtrahieren um 3ten Wert zu bekommen textBox3.Text = Convert.ToString(wert3_anzeigen); //Wert3 in TextBox3 anzeigen serialPort1.Close(); } } }