Skip to content
Snippets Groups Projects
Commit b256298f authored by Roger Petri's avatar Roger Petri
Browse files

Quellcode angefangen zu dokumentieren

parent dc33ea9b
No related branches found
No related tags found
No related merge requests found
......@@ -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()); }));
......
......@@ -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()))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment