From b256298f4b2a9d19ffd2fb6ecbaaa29f1beb97b3 Mon Sep 17 00:00:00 2001 From: Roger Petri <roger@worfelden.de> Date: Thu, 6 Feb 2020 08:42:54 +0100 Subject: [PATCH] Quellcode angefangen zu dokumentieren --- Wetterstation/Form1.cs | 25 +++++++++++++++++++++++-- Wetterstation/SqliteDataAccess.cs | 2 ++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/Wetterstation/Form1.cs b/Wetterstation/Form1.cs index 252690f..e6e8d63 100644 --- a/Wetterstation/Form1.cs +++ b/Wetterstation/Form1.cs @@ -16,16 +16,25 @@ namespace Wetterstation { //Variable fuer den Debugmodues private bool debug = false; + private MqttClient myClient; + + //Objekt für die Settings erstellen SettingsModel WeatherstationSettings = new SettingsModel(); + String graphLastTimestamp = null; + + //Sensorobjekte erstellen (fuer jede Messtelle und fuer Openweathermap) Sensor node1In = new Sensor(); Sensor node1Out = new Sensor(); Sensor owm = new Sensor(); + public Hintergrund() { InitializeComponent(); + + //Settings aus der Datenbank laden WeatherstationSettings = SqliteDataAccess.LoadWeatherstationSettings(); lbCity.Text = WeatherstationSettings.city; @@ -38,6 +47,8 @@ namespace Wetterstation mqttStart(); updateChart(); } + + //Historiediagramm auf den neuesten Stand bringen private void updateChart() { cartesianChart1.Series = new SeriesCollection @@ -117,6 +128,8 @@ namespace Wetterstation //modifying any series values will also animate and update the chart } + + //Uhreit und Datum bestimmen und anzeigen private void t_DateTime(object sender, EventArgs e) { lbUhr.Text = DateTime.Now.ToLongTimeString(); @@ -191,6 +204,7 @@ namespace Wetterstation if (graphLastTimestamp == null) { + //Json String aufdroeseln und Werte rotierend abspeichern int i = 0; foreach (var result in weatherData["results"][0]["series"][0]["values"]) { @@ -212,6 +226,7 @@ namespace Wetterstation } else { + //Prüfen ob sich Timestamp geändert hat if (graphLastTimestamp != weatherData["results"][0]["series"][0]["values"][96][0].ToString()) { cartesianChart1.Series[0].Values.RemoveAt(0); @@ -219,15 +234,17 @@ namespace Wetterstation cartesianChart1.Series[2].Values.RemoveAt(0); cartesianChart1.Series[3].Values.RemoveAt(0); - if (weatherData["results"][0]["series"][0]["values"][96][2] == null) temp = 0; + //prüfen ob Daten geliefert wurden. Wenn icht Wert auf 0 ansonsten auf gelieferten Wert + if (weatherData["results"][0]["series"][0]["values"][96][1] == null) temp = 0; else temp = weatherData["results"][0]["series"][0]["values"][96][1]; - if (weatherData["results"][0]["series"][0]["values"][96][1] == null) humidity = 0; + if (weatherData["results"][0]["series"][0]["values"][96][2] == null) humidity = 0; else humidity = weatherData["results"][0]["series"][0]["values"][96][2]; if (weatherData["results"][0]["series"][0]["values"][96][3] == null) pressure = 0; else pressure = weatherData["results"][0]["series"][0]["values"][96][3]; if (weatherData["results"][0]["series"][0]["values"][96][4] == null) windSpeed = 0; else windSpeed = weatherData["results"][0]["series"][0]["values"][96][4]; + //Container mit Werten fuellen cartesianChart1.Series[0].Values.Add(Math.Round(temp, 1)); cartesianChart1.Series[1].Values.Add(humidity); cartesianChart1.Series[2].Values.Add(pressure); @@ -244,13 +261,17 @@ namespace Wetterstation Console.WriteLine(message); try { + //JSON Daten aufdroesseln dynamic weatherData = JsonConvert.DeserializeObject(message.ToString()); + //Wenn keine Daten von den Sensoren vorliegen nimm die Werte von Openweathermap if (!node1Out.temperature) { lbAussenTemp.Invoke(new Action(() => { lbAussenTemp.Text = weatherData.temp + " °C"; })); lbTempOutMin.Invoke(new Action(() => { lbTempOutMin.Text = weatherData.tempMin + " °C"; })); lbTempOutMax.Invoke(new Action(() => { lbTempOutMax.Text = weatherData.tempMax + " °C"; })); owm.Temperatures = weatherData.temp; + + //Tendenzpfeil entsprechend setzen u.o. ausblenden if (owm.tempTendenz() == -1) pbTendenzTempOut.Invoke(new Action(() => { pbTendenzTempOut.Visible = false; })); else pbTendenzTempOut.Invoke(new Action(() => { pbTendenzTempOut.Visible = true; })); pbTendenzTempOut.Invoke(new Action(() => { pbTendenzTempOut.Image = RotateImage((Bitmap)global::Wetterstation.Properties.Resources.ResourceManager.GetObject("Tendenz"), owm.tempTendenz()); })); diff --git a/Wetterstation/SqliteDataAccess.cs b/Wetterstation/SqliteDataAccess.cs index d9a155b..981fc49 100644 --- a/Wetterstation/SqliteDataAccess.cs +++ b/Wetterstation/SqliteDataAccess.cs @@ -10,6 +10,7 @@ namespace Wetterstation { public static SQLiteConnection _dbConnection; + //Settings aus der Datenbank auslesen public static SettingsModel LoadWeatherstationSettings() { using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) @@ -19,6 +20,7 @@ namespace Wetterstation } } + //Settings in der Datenbank abspeichern public static void SaveWeatherstationSettings(SettingsModel mqttSettings) { using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) -- GitLab