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 (43)
<?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.
This diff is collapsed.
This diff is collapsed.
......@@ -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
{
class Sensor
/*
* 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; }
public String name { get; set; }
......@@ -17,8 +22,13 @@ namespace Wetterstation
public bool snow { get; set; }
public double tempMin { get; set; }
public double tempMax { get; set; }
private List<double> _temperatures;
private List<double> _pressures;
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
......@@ -30,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
......@@ -41,10 +55,33 @@ namespace Wetterstation
_pressures.Add(value);
}
}
/*
* Luftfeuchtigkeit in eine Liste schreiben. Nach zehn Werten,
* den aeltesten loeschen und den neuen anhaengen
*/
public double Humiditys
{
set
{
if (_humiditys.Count == 10)
{
_humiditys.RemoveAt(0);
}
_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;
int down = 0;
int same = 0;
double oldTemp = 0;
foreach (double temp in _temperatures)
......@@ -54,20 +91,37 @@ namespace Wetterstation
up++;
oldTemp = temp;
}
else if (temp == oldTemp)
{
same++;
oldTemp = temp;
}
else
{
down++;
oldTemp = temp;
}
}
if (up > down) return 180;
else return 0;
if ((up > 2 || down > 2) && _temperatures.Count == 10)
{
if (up > down) return 180;
else if (down > up) return 0;
else return -1;
}
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;
int down = 0;
int same = 0;
double oldPressure = 0;
foreach (double pressure in _pressures)
......@@ -77,6 +131,11 @@ namespace Wetterstation
up++;
oldPressure = pressure;
}
else if (pressure == oldPressure)
{
same++;
oldPressure = pressure;
}
else
{
down++;
......@@ -84,8 +143,59 @@ namespace Wetterstation
}
}
if (up > down) return 180;
else return 0;
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;
int down = 0;
int same = 0;
double oldHumidity = 0;
foreach (double humidity in _humiditys)
{
if (humidity > oldHumidity)
{
up++;
oldHumidity = humidity;
}
else if( humidity == oldHumidity)
{
same++;
oldHumidity = humidity;
}
else
{
down++;
oldHumidity = humidity;
}
}
if ((up > 2 || down > 2) && _humiditys.Count == 10)
{
if (up > down) return 180;
else if (down > up) return 0;
else return -1;
}
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