Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • wetterstation/frontend
  • d.eisold/frontend
  • Fuzzy/frontend
  • Klaus/frontend
4 results
Show changes
Commits on Source (27)
<?xml version="1.0" encoding="utf-8"?>
<ClassDiagram MajorVersion="1" MinorVersion="1">
<Class Name="Wetterstation.Hintergrund">
<Position X="3.5" Y="3.75" Width="1.5" />
<Compartments>
<Compartment Name="Fields" Collapsed="true" />
<Compartment Name="Methods" Collapsed="true" />
</Compartments>
<TypeIdentifier>
<HashCode>/wAJLFBCp76AADEgVLGAAcgWgHDRVBiAMgRYRGCgSrg=</HashCode>
<FileName>Form1.cs</FileName>
</TypeIdentifier>
<ShowAsAssociation>
<Property Name="Resources" />
</ShowAsAssociation>
</Class>
<Class Name="Wetterstation.Program">
<Position X="7" Y="1.25" Width="1.5" />
<Compartments>
<Compartment Name="Methods" Collapsed="true" />
</Compartments>
<TypeIdentifier>
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAABBAAAAA=</HashCode>
<FileName>Program.cs</FileName>
</TypeIdentifier>
<ShowAsAssociation>
<Property Name="Settings" />
<Property Name="SettingsModel" />
</ShowAsAssociation>
</Class>
<Class Name="Wetterstation.Sensor">
<Position X="10.25" Y="1.25" Width="1.5" />
<Compartments>
<Compartment Name="Fields" Collapsed="true" />
<Compartment Name="Properties" Collapsed="true" />
</Compartments>
<TypeIdentifier>
<HashCode>CAEgIAAgAAAAAAIAAAAKAUAAAQCEAAgCgAwAAggEAgA=</HashCode>
<FileName>Sensor.cs</FileName>
</TypeIdentifier>
<ShowAsAssociation>
<Property Name="Settings" />
</ShowAsAssociation>
</Class>
<Class Name="Wetterstation.Settings">
<Position X="7" Y="2.75" Width="1.5" />
<Compartments>
<Compartment Name="Fields" Collapsed="true" />
<Compartment Name="Methods" Collapsed="true" />
</Compartments>
<TypeIdentifier>
<HashCode>QBQUABAAADAQABAAAhCAAAIGEASERFBgAAHBAAJBBAQ=</HashCode>
<FileName>Settings.cs</FileName>
</TypeIdentifier>
</Class>
<Class Name="Wetterstation.SettingsModel">
<Position X="3.5" Y="1.25" Width="1.5" />
<Compartments>
<Compartment Name="Properties" Collapsed="true" />
</Compartments>
<TypeIdentifier>
<HashCode>AgEgAAAIIQAAAAAAEABACAAAACAAAIIAgAAgQAAAAAA=</HashCode>
<FileName>SettingsModel.cs</FileName>
</TypeIdentifier>
<ShowAsAssociation>
<Property Name="Hintergrund" />
<Property Name="Resources" />
</ShowAsAssociation>
</Class>
<Class Name="Wetterstation.SqliteDataAccess">
<Position X="10" Y="4" Width="1.5" />
<Compartments>
<Compartment Name="Fields" Collapsed="true" />
<Compartment Name="Methods" Collapsed="true" />
</Compartments>
<TypeIdentifier>
<HashCode>QAAAAAAAAQAAAAAAAAAAAAAAgAAAAAAghAAAAAAAAAA=</HashCode>
<FileName>SqliteDataAccess.cs</FileName>
</TypeIdentifier>
<ShowAsAssociation>
<Property Name="Settings" />
<Property Name="Sensor" />
</ShowAsAssociation>
</Class>
<Class Name="Wetterstation.Properties.Resources">
<Position X="1" Y="1.25" Width="1.5" />
<Compartments>
<Compartment Name="Fields" Collapsed="true" />
<Compartment Name="Properties" Collapsed="true" />
<Compartment Name="Methods" Collapsed="true" />
</Compartments>
<TypeIdentifier>
<HashCode>CAAAAABEAgEAAAAAAEABUABBAQAAAgAgAAAAgACAAYA=</HashCode>
</TypeIdentifier>
</Class>
<Font Name="Segoe UI" Size="9" />
</ClassDiagram>
\ No newline at end of file
This diff is collapsed.
......@@ -7,7 +7,6 @@ using uPLibrary.Networking.M2Mqtt.Messages;
using Newtonsoft.Json;
using System.Globalization;
using LiveCharts;
using LiveCharts.WinForms;
using LiveCharts.Wpf;
namespace Wetterstation
......@@ -16,16 +15,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 +46,16 @@ namespace Wetterstation
mqttStart();
updateChart();
}
internal Properties.Resources Resources
{
get => default;
set
{
}
}
//Historiediagramm auf den neuesten Stand bringen
private void updateChart()
{
cartesianChart1.Series = new SeriesCollection
......@@ -117,6 +135,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 +211,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 +233,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 +241,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 +268,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()); }));
......@@ -480,5 +508,10 @@ namespace Wetterstation
this.myClient.Disconnect();
Application.Exit();
}
private void LbLuftFeuchtInnen_Click(object sender, EventArgs e)
{
}
}
}
......@@ -118,7 +118,7 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="pbTendenzPressure.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="lbTendenzHumidityIn.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAArwAAANLCAYAAACjWk5WAAABgmlDQ1BJQ0MgcHJvZmlsZQAAKM+VkTlI
A0EYhb9sIh4oFqYQtdhCrSKIilhKFEVQkBjBq3B3Y6KQXcNuxMZSsBUsPBqvwsZaWwtbQRA8QKwsrRRt
......@@ -1591,7 +1591,7 @@
rkJggg==
</value>
</data>
<data name="pbTendenzPressure.InitialImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="lbTendenzHumidityIn.InitialImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
Qk02DQAAAAAAADYEAAAoAAAAMAAAADAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAA/wAA
gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+ZqKz/2Ons/wAgQP8AIGD/ACCA/wAgoP8AIMD/ACDg/wBA
......@@ -1652,7 +1652,7 @@
/////////////////////////////w==
</value>
</data>
<data name="pictureBox2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="lbTendenzHumidityOut.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAArwAAANLCAYAAACjWk5WAAABgmlDQ1BJQ0MgcHJvZmlsZQAAKM+VkTlI
A0EYhb9sIh4oFqYQtdhCrSKIilhKFEVQkBjBq3B3Y6KQXcNuxMZSsBUsPBqvwsZaWwtbQRA8QKwsrRRt
......@@ -3125,7 +3125,68 @@
rkJggg==
</value>
</data>
<data name="pbTendenzTempOut.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="lbTendenzHumidityOut.InitialImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
Qk02DQAAAAAAADYEAAAoAAAAMAAAADAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAA/wAA
gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+ZqKz/2Ons/wAgQP8AIGD/ACCA/wAgoP8AIMD/ACDg/wBA
AP8AQCD/AEBA/wBAYP8AQID/AECg/wBAwP8AQOD/AGAA/wBgIP8AYED/AGBg/wBggP8AYKD/AGDA/wBg
4P8AgAD/AIAg/wCAQP8AgGD/AICA/wCAoP8AgMD/AIDg/wCgAP8AoCD/AKBA/wCgYP8AoID/AKCg/wCg
wP8AoOD/AMAA/wDAIP8AwED/AMBg/wDAgP8AwKD/AMDA/wDA4P8A4AD/AOAg/wDgQP8A4GD/AOCA/wDg
oP8A4MD/AODg/0AAAP9AACD/QABA/0AAYP9AAID/QACg/0AAwP9AAOD/QCAA/0AgIP9AIED/QCBg/0Ag
gP9AIKD/QCDA/0Ag4P9AQAD/QEAg/0BAQP9AQGD/QECA/0BAoP9AQMD/QEDg/0BgAP9AYCD/QGBA/0Bg
YP9AYID/QGCg/0BgwP9AYOD/QIAA/0CAIP9AgED/QIBg/0CAgP9AgKD/QIDA/0CA4P9AoAD/QKAg/0Cg
QP9AoGD/QKCA/0CgoP9AoMD/QKDg/0DAAP9AwCD/QMBA/0DAYP9AwID/QMCg/0DAwP9AwOD/QOAA/0Dg
IP9A4ED/QOBg/0DggP9A4KD/QODA/0Dg4P+AAAD/gAAg/4AAQP+AAGD/gACA/4AAoP+AAMD/gADg/4Ag
AP+AICD/gCBA/4AgYP+AIID/gCCg/4AgwP+AIOD/gEAA/4BAIP+AQED/gEBg/4BAgP+AQKD/gEDA/4BA
4P+AYAD/gGAg/4BgQP+AYGD/gGCA/4BgoP+AYMD/gGDg/4CAAP+AgCD/gIBA/4CAYP+AgID/gICg/4CA
wP+AgOD/gKAA/4CgIP+AoED/gKBg/4CggP+AoKD/gKDA/4Cg4P+AwAD/gMAg/4DAQP+AwGD/gMCA/4DA
oP+AwMD/gMDg/4DgAP+A4CD/gOBA/4DgYP+A4ID/gOCg/4DgwP+A4OD/wAAA/8AAIP/AAED/wABg/8AA
gP/AAKD/wADA/8AA4P/AIAD/wCAg/8AgQP/AIGD/wCCA/8AgoP/AIMD/wCDg/8BAAP/AQCD/wEBA/8BA
YP/AQID/wECg/8BAwP/AQOD/wGAA/8BgIP/AYED/wGBg/8BggP/AYKD/wGDA/8Bg4P/AgAD/wIAg/8CA
QP/AgGD/wICA/8CAoP/AgMD/wIDg/8CgAP/AoCD/wKBA/8CgYP/AoID/wKCg/8CgwP/AoOD/wMAA/8DA
IP/AwED/wMBg/8DAgP/AwKD/8Pv//5hOAP+AgID/AAD//wD/AP8A/////wAA//8A/////wD/////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////w==
</value>
</data>
<data name="pbTendenzTempIn.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAArwAAANLCAYAAACjWk5WAAABgmlDQ1BJQ0MgcHJvZmlsZQAAKM+VkTlI
A0EYhb9sIh4oFqYQtdhCrSKIilhKFEVQkBjBq3B3Y6KQXcNuxMZSsBUsPBqvwsZaWwtbQRA8QKwsrRRt
......@@ -4598,7 +4659,7 @@
rkJggg==
</value>
</data>
<data name="pbTendenzTempOut.InitialImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="pbTendenzTempIn.InitialImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
Qk02DQAAAAAAADYEAAAoAAAAMAAAADAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAA/wAA
gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+ZqKz/2Ons/wAgQP8AIGD/ACCA/wAgoP8AIMD/ACDg/wBA
......@@ -4659,7 +4720,7 @@
/////////////////////////////w==
</value>
</data>
<data name="pbTendenzTempIn.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="pbTendenzTempOut.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAArwAAANLCAYAAACjWk5WAAABgmlDQ1BJQ0MgcHJvZmlsZQAAKM+VkTlI
A0EYhb9sIh4oFqYQtdhCrSKIilhKFEVQkBjBq3B3Y6KQXcNuxMZSsBUsPBqvwsZaWwtbQRA8QKwsrRRt
......@@ -6132,7 +6193,7 @@
rkJggg==
</value>
</data>
<data name="pbTendenzTempIn.InitialImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="pbTendenzTempOut.InitialImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
Qk02DQAAAAAAADYEAAAoAAAAMAAAADAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAA/wAA
gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+ZqKz/2Ons/wAgQP8AIGD/ACCA/wAgoP8AIMD/ACDg/wBA
......@@ -6193,7 +6254,7 @@
/////////////////////////////w==
</value>
</data>
<data name="lbTendenzHumidityOut.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="pictureBox2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAArwAAANLCAYAAACjWk5WAAABgmlDQ1BJQ0MgcHJvZmlsZQAAKM+VkTlI
A0EYhb9sIh4oFqYQtdhCrSKIilhKFEVQkBjBq3B3Y6KQXcNuxMZSsBUsPBqvwsZaWwtbQRA8QKwsrRRt
......@@ -7666,68 +7727,7 @@
rkJggg==
</value>
</data>
<data name="lbTendenzHumidityOut.InitialImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
Qk02DQAAAAAAADYEAAAoAAAAMAAAADAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAA/wAA
gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+ZqKz/2Ons/wAgQP8AIGD/ACCA/wAgoP8AIMD/ACDg/wBA
AP8AQCD/AEBA/wBAYP8AQID/AECg/wBAwP8AQOD/AGAA/wBgIP8AYED/AGBg/wBggP8AYKD/AGDA/wBg
4P8AgAD/AIAg/wCAQP8AgGD/AICA/wCAoP8AgMD/AIDg/wCgAP8AoCD/AKBA/wCgYP8AoID/AKCg/wCg
wP8AoOD/AMAA/wDAIP8AwED/AMBg/wDAgP8AwKD/AMDA/wDA4P8A4AD/AOAg/wDgQP8A4GD/AOCA/wDg
oP8A4MD/AODg/0AAAP9AACD/QABA/0AAYP9AAID/QACg/0AAwP9AAOD/QCAA/0AgIP9AIED/QCBg/0Ag
gP9AIKD/QCDA/0Ag4P9AQAD/QEAg/0BAQP9AQGD/QECA/0BAoP9AQMD/QEDg/0BgAP9AYCD/QGBA/0Bg
YP9AYID/QGCg/0BgwP9AYOD/QIAA/0CAIP9AgED/QIBg/0CAgP9AgKD/QIDA/0CA4P9AoAD/QKAg/0Cg
QP9AoGD/QKCA/0CgoP9AoMD/QKDg/0DAAP9AwCD/QMBA/0DAYP9AwID/QMCg/0DAwP9AwOD/QOAA/0Dg
IP9A4ED/QOBg/0DggP9A4KD/QODA/0Dg4P+AAAD/gAAg/4AAQP+AAGD/gACA/4AAoP+AAMD/gADg/4Ag
AP+AICD/gCBA/4AgYP+AIID/gCCg/4AgwP+AIOD/gEAA/4BAIP+AQED/gEBg/4BAgP+AQKD/gEDA/4BA
4P+AYAD/gGAg/4BgQP+AYGD/gGCA/4BgoP+AYMD/gGDg/4CAAP+AgCD/gIBA/4CAYP+AgID/gICg/4CA
wP+AgOD/gKAA/4CgIP+AoED/gKBg/4CggP+AoKD/gKDA/4Cg4P+AwAD/gMAg/4DAQP+AwGD/gMCA/4DA
oP+AwMD/gMDg/4DgAP+A4CD/gOBA/4DgYP+A4ID/gOCg/4DgwP+A4OD/wAAA/8AAIP/AAED/wABg/8AA
gP/AAKD/wADA/8AA4P/AIAD/wCAg/8AgQP/AIGD/wCCA/8AgoP/AIMD/wCDg/8BAAP/AQCD/wEBA/8BA
YP/AQID/wECg/8BAwP/AQOD/wGAA/8BgIP/AYED/wGBg/8BggP/AYKD/wGDA/8Bg4P/AgAD/wIAg/8CA
QP/AgGD/wICA/8CAoP/AgMD/wIDg/8CgAP/AoCD/wKBA/8CgYP/AoID/wKCg/8CgwP/AoOD/wMAA/8DA
IP/AwED/wMBg/8DAgP/AwKD/8Pv//5hOAP+AgID/AAD//wD/AP8A/////wAA//8A/////wD/////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////w==
</value>
</data>
<data name="lbTendenzHumidityIn.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="pbTendenzPressure.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAArwAAANLCAYAAACjWk5WAAABgmlDQ1BJQ0MgcHJvZmlsZQAAKM+VkTlI
A0EYhb9sIh4oFqYQtdhCrSKIilhKFEVQkBjBq3B3Y6KQXcNuxMZSsBUsPBqvwsZaWwtbQRA8QKwsrRRt
......@@ -9200,7 +9200,7 @@
rkJggg==
</value>
</data>
<data name="lbTendenzHumidityIn.InitialImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="pbTendenzPressure.InitialImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
Qk02DQAAAAAAADYEAAAoAAAAMAAAADAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAA/wAA
gP8AgAD/AICA/4AAAP+AAID/gIAA/8DAwP+ZqKz/2Ons/wAgQP8AIGD/ACCA/wAgoP8AIMD/ACDg/wBA
......
......@@ -11,6 +11,22 @@ namespace Wetterstation
{
static class Program
{
public static Settings Settings
{
get => default;
set
{
}
}
public static SettingsModel SettingsModel
{
get => default;
set
{
}
}
/// <summary>
/// Der Haupteinstiegspunkt für die Anwendung.
/// </summary>
......
using System;
using System;
using System.Collections.Generic;
namespace Wetterstation
{
/*
* Diese Klasse erstellt ein Sensor Object.
* Hiermit kann definiert werden welche Werte erfasst werden
* und Tendenzen berechnen.
*/
public class Sensor
{
public String host { get; set; }
......@@ -20,6 +25,10 @@ namespace Wetterstation
private List<double> _temperatures = new List<double>();
private List<double> _pressures = new List<double>();
private List<double> _humiditys = new List<double>();
/*
* Temperaturen in eine Liste schreiben. Nach zehn Werten,
* den aeltesten loeschen und den neuen anhaengen
*/
public double Temperatures
{
set
......@@ -31,6 +40,10 @@ namespace Wetterstation
_temperatures.Add(value);
}
}
/*
* Luftdruck in eine Liste schreiben. Nach zehn Werten,
* den aeltesten loeschen und den neuen anhaengen
*/
public double Pressures
{
set
......@@ -42,6 +55,10 @@ namespace Wetterstation
_pressures.Add(value);
}
}
/*
* Luftfeuchtigkeit in eine Liste schreiben. Nach zehn Werten,
* den aeltesten loeschen und den neuen anhaengen
*/
public double Humiditys
{
set
......@@ -53,6 +70,13 @@ namespace Wetterstation
_humiditys.Add(value);
}
}
/*
* Temperatur Tendenz berechnen
* In dieser Methode wird geschaut wie oft die Werte steigen (up),
* fallen (down) oder gleich (same) bleiben.
* Anhand dieser Werte wird berechnet ob die Temperatur eher steigen,
* fallen oder gleich bleiben wird.
*/
public float tempTendenz()
{
int up = 0;
......@@ -78,7 +102,7 @@ namespace Wetterstation
oldTemp = temp;
}
}
if ((up > 5 || down > 5) && _temperatures.Count == 10)
if ((up > 2 || down > 2) && _temperatures.Count == 10)
{
if (up > down) return 180;
else if (down > up) return 0;
......@@ -86,6 +110,13 @@ namespace Wetterstation
}
else return -1;
}
/*
* Luftdruck Tendenz berechnen
* In dieser Methode wird geschaut wie oft die Werte steigen (up),
* fallen (down) oder gleich (same) bleiben.
* Anhand dieser Werte wird berechnet ob dir Luftdruck eher steigen,
* fallen oder gleich bleiben wird.
*/
public float pressureTendenz()
{
int up = 0;
......@@ -112,13 +143,20 @@ namespace Wetterstation
}
}
if ((up > 5 || down > 5) && _pressures.Count == 10) {
if ((up > 2 || down > 2) && _pressures.Count == 10) {
if (up > down) return 180;
else if (down > up) return 0;
else return -1;
}
else return -1;
}
/*
* Luftfeuchtigkeit Tendenz berechnen
* In dieser Methode wird geschaut wie oft die Werte steigen (up),
* fallen (down) oder gleich (same) bleiben.
* Anhand dieser Werte wird berechnet ob die Luftfeuchtigkeit eher
* steigen, fallen oder gleich bleiben wird.
*/
public float humidityTendenz()
{
int up = 0;
......@@ -144,7 +182,7 @@ namespace Wetterstation
oldHumidity = humidity;
}
}
if ((up > 5 || down > 5) && _humiditys.Count == 10)
if ((up > 2 || down > 2) && _humiditys.Count == 10)
{
if (up > down) return 180;
else if (down > up) return 0;
......@@ -152,5 +190,12 @@ namespace Wetterstation
}
else return -1;
}
public Settings Settings
{
get => default;
set
{
}
}
}
}
......@@ -13,6 +13,7 @@ namespace Wetterstation
{
SettingsModel WeatherstationSettings = new SettingsModel();
// Initialisieren der Klasse
public Settings()
{
InitializeComponent();
......@@ -22,6 +23,7 @@ namespace Wetterstation
WeatherstationSettings = SqliteDataAccess.LoadWeatherstationSettings();
}
// Einstellungen aus dem Settings Objekt laden und Form ausfuellen
private void LoadWeatherstationSettings()
{
tbHost.Text = WeatherstationSettings.mqtt_host;
......@@ -40,6 +42,11 @@ namespace Wetterstation
tbNode1SensorAussen.Text = WeatherstationSettings.node1Aussen;
}
/*
* Eine einmalige ID erstellen um das Frontend im Backend zuweisen zu
* koennen. Hier wird die CPU Seriennummer ausgelesen, der angemeldete
* Benutzer angehaengt und daraus eine MD5 Summe gebildet.
*/
private String generateId()
{
String result = "Could not found id";
......@@ -60,6 +67,7 @@ namespace Wetterstation
}
}
// Erstellt aus dem uebergebenen String eine MD5 Summe und gibt sie zurueck
private string GetMd5Hash(MD5 md5Hash, string input)
{
// Convert the input string to a byte array and compute the hash.
......@@ -78,6 +86,7 @@ namespace Wetterstation
return sBuilder.ToString();
}
// Laedt die Einstellungen aus dem Settings Object
private void Settings_Load(object sender, EventArgs e)
{
Console.WriteLine("Bin in Settings_Load !!!!!!!");
......@@ -85,6 +94,7 @@ namespace Wetterstation
acPlz();
}
// Ruft die PLZ und Ort Liste aus der SQLite ab fuer die autocompletion Textbox
public void acPlz()
{
using (SQLiteConnection con = new SQLiteConnection(ConfigurationManager.ConnectionStrings["Default"].ConnectionString))
......@@ -129,6 +139,7 @@ namespace Wetterstation
this.Close();
}
// Nach jedem Tastendruck, das Textfeld mit der Ort/PLZ Liste vergleichen
private void tbCity_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Enter)
......
namespace Wetterstation
{
//Klasse fuer die Datenbankeintraege
public class SettingsModel
{
public string mqtt_host { get; set; }
......@@ -31,5 +32,21 @@
public string node1Innen { get; set; }
public string node1Aussen { get; set; }
public Hintergrund Hintergrund
{
get => default;
set
{
}
}
internal Properties.Resources Resources
{
get => default;
set
{
}
}
}
}
......@@ -6,10 +6,28 @@ using System.Linq;
namespace Wetterstation
{
//Hier werden die Datenbankzugriffe fuer die frontend.db geregelt
public static class SqliteDataAccess
{
public static SQLiteConnection _dbConnection;
public static Settings Settings
{
get => default;
set
{
}
}
public static Sensor Sensor
{
get => default;
set
{
}
}
//Settings aus der Datenbank auslesen
public static SettingsModel LoadWeatherstationSettings()
{
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
......@@ -19,6 +37,7 @@ namespace Wetterstation
}
}
//Settings in der Datenbank abspeichern
public static void SaveWeatherstationSettings(SettingsModel mqttSettings)
{
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
......
......@@ -15,6 +15,22 @@
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>1</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
......@@ -35,6 +51,18 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ManifestCertificateThumbprint>E92626C81C3EFE74A0B14B4F00C3EFD049AAE0AC</ManifestCertificateThumbprint>
</PropertyGroup>
<PropertyGroup>
<ManifestKeyFile>Wetterstation_TemporaryKey.pfx</ManifestKeyFile>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>true</GenerateManifests>
</PropertyGroup>
<PropertyGroup>
<SignManifests>true</SignManifests>
</PropertyGroup>
<ItemGroup>
<Reference Include="Dapper, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapper.2.0.30\lib\net461\Dapper.dll</HintPath>
......@@ -108,6 +136,7 @@
<Compile Include="Settings.Designer.cs">
<DependentUpon>Settings.cs</DependentUpon>
</Compile>
<None Include="ClassDiagram1.cd" />
<None Include="Resources\Tendenz.bmp" />
<None Include="Resources\pfeil_quer.png" />
<None Include="Resources\pfeil_oben.png" />
......@@ -142,6 +171,7 @@
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<None Include="Wetterstation_TemporaryKey.pfx" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
......@@ -188,6 +218,18 @@
<None Include="Resources\Zahnrad1.png" />
<None Include="Resources\Zahnrad.png" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.7.2">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4.7.2 %28x86 und x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\System.Data.SQLite.Core.1.0.112.0\build\net46\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.112.0\build\net46\System.Data.SQLite.Core.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
......
......@@ -2,5 +2,16 @@
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ProjectFiles</ProjectView>
<PublishUrlHistory />
<InstallUrlHistory />
<SupportUrlHistory />
<UpdateUrlHistory />
<BootstrapperUrlHistory />
<ErrorReportUrlHistory />
<FallbackCulture>de-DE</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
</PropertyGroup>
<PropertyGroup>
<EnableSecurityDebugging>false</EnableSecurityDebugging>
</PropertyGroup>
</Project>
\ No newline at end of file
File added