private void uebertragen(object sender, EventArgs e) //Daten übertragen alle Messwerte eines Zählers //von der seriellen Schnittstelle lesen und im Array speichern { try { if (Uebertragen == true) //Wenn Daten bereits übermittelt wurden { DialogResult ergebnis = MessageBox.Show("Daten wurden bereits übermittelt", "Achtung", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (ergebnis == DialogResult.Yes) { MessageBox.Show("Bitte Ende des Jahres ausführen", "Warten"); } } else { übermitteln(); } } catch(Exception ex) { MessageBox.Show(ex.Message); } } private void übermitteln() { string help; try { if (verbunden == true) { serialPort1.Open(); serialPort1.Write("s"); //Startzeichen für Atmega zum übertragen der EEPROM Daten == s\n /***** Uhr stellen über serielle Schnittstelle *****/ help = Time.Substring(0, 2); serialPort1.Write(help + "\n"); help = Time.Substring(3, 2); serialPort1.Write(help + "\n"); help = serialPort1.ReadTo("\n"); /***** Alle Werte übertragen und umrechnen *****/ for (int i = 0; i < 364; i++) //alle Werte einlesen (365) { wert1 = serialPort1.ReadTo(";"); //Wert1 einlesen neu_wert1 = Convert.ToDouble(wert1); //Wandeln Wert String in double if (neu_wert1 == 65535.00) { zwert1 = 0; } else { zwert1 = neu_wert1 * 0.013333; //Wert1 umrechnen eine Umdrehung = 0.013333 kW/h } zaehlwert1.Add(zwert1); //Wert Speichern im Array } for (int i = 0; i < 364; i++) //alle Werte einlesen (365) { wert2 = serialPort1.ReadTo(";"); //Wert2 einlesen neu_wert2 = Convert.ToDouble(wert2); //Wandeln Wert String in double if (neu_wert2 == 65535.00) { zwert2 = 0; } else { zwert2 = neu_wert2 * 0.013333; //Wert2 umrechnen eine Umdrehung = 0.013333 kW/h } zaehlwert2.Add(zwert2); //Wert2 Speichern im Array } for (int i = 0; i < 364; i++) //Wert3 berechnen für Wohnung_2 { zwert3 = zaehlwert1[i] - zaehlwert2[i]; zaehlwert3.Add(zwert3); } serialPort1.Close(); //Schliesen der Verbindung } //************************************* Daten speichern in CSV-Datei **************************************** int jahr = DateTime.Now.Year; Directory.CreateDirectory("D:\\Jahresstromverbrauch"); //Ordner anlegen StreamWriter datei = new StreamWriter(@"D:\Jahresstromverbrauch\Stromverbrauch_" + jahr + ".csv"); datei.Write("Hauptverbrauch"+";"+"Wohnung_1"+";"+"Wohnung_2"); datei.WriteLine(""); for (int i = 0; i < zaehlwert1.Count; i++) { datei.Write(zaehlwert1[i]+";"+zaehlwert2[i]+";"+zaehlwert3[i]); datei.WriteLine(); } datei.Close(); } catch(Exception ex) { MessageBox.Show(ex.Message); } }