diff --git a/Wetterstation/Form1.Designer.cs b/Wetterstation/Form1.Designer.cs index 707dfd2b8353aaf4f674bc13dcc0719275094b9d..ff612deeb74aef8b2850058cf07ce9e2f9c40a1e 100644 --- a/Wetterstation/Form1.Designer.cs +++ b/Wetterstation/Form1.Designer.cs @@ -440,7 +440,6 @@ namespace Wetterstation this.lbHintergrund.Name = "lbHintergrund"; this.lbHintergrund.Size = new System.Drawing.Size(984, 354); this.lbHintergrund.TabIndex = 42; - this.lbHintergrund.Click += new System.EventHandler(this.LbHintergrund_Click); // // lbCity // @@ -647,7 +646,6 @@ namespace Wetterstation this.cartesianChart1.Size = new System.Drawing.Size(982, 252); this.cartesianChart1.TabIndex = 60; this.cartesianChart1.Text = "cartesianChart1"; - this.cartesianChart1.ChildChanged += new System.EventHandler<System.Windows.Forms.Integration.ChildChangedEventArgs>(this.CartesianChart1_ChildChanged); // // lbRegenmenge // diff --git a/Wetterstation/Form1.cs b/Wetterstation/Form1.cs index 76524922461dd0db4e64e387bd7771e7f815a3d6..167e1e01c41068b7ea83f9a0b0b202679608128a 100644 --- a/Wetterstation/Form1.cs +++ b/Wetterstation/Form1.cs @@ -14,22 +14,11 @@ namespace Wetterstation { public partial class Hintergrund : Form { - public struct MassueredValue - { - public DateTime dtTimestamp; - public double dValue; - }; - - MassueredValue temperatureValue; - MassueredValue humidityValue; - MassueredValue pressureValue; - //Variable fuer den Debugmodues private bool debug = false; - private MqttClient myClient; SettingsModel WeatherstationSettings = new SettingsModel(); - + String graphLastTimestamp = null; public Hintergrund() { InitializeComponent(); @@ -45,31 +34,74 @@ namespace Wetterstation mqttStart(); updateChart(); } - private void updateChart() { cartesianChart1.Series = new SeriesCollection { new LineSeries { - Title = "Temperature", - Values = new ChartValues<double> {4, 4, 4, 4, 4}, + Title = "Temperatur", + Values = new ChartValues<double> {}, + ScalesYAt = 0, PointGeometry = null }, new LineSeries { - Title = "Humidity", - Values = new ChartValues<double> {6, 7, 3, 4, 6}, + Title = "Luftfeuchtigkeit", + Values = new ChartValues<int> {}, + ScalesYAt = 1, PointGeometry = null }, new LineSeries { - Title = "Pressure", - Values = new ChartValues<double> {5, 2, 8, 3}, + Title = "Luftdruck", + Values = new ChartValues<int> {}, + ScalesYAt = 2, + PointGeometry = null + }, + new LineSeries + { + Title = "Wind Geschwindigkeit", + Values = new ChartValues<double> {}, + ScalesYAt = 3, PointGeometry = null } }; + cartesianChart1.AxisY.Add(new Axis + { + LabelFormatter = val => val + "°C", + IsEnabled = false, + Position = AxisPosition.LeftBottom + }); + + cartesianChart1.AxisY.Add(new Axis + { + LabelFormatter = val => val + "%", + IsEnabled = false, + Position = AxisPosition.LeftBottom + }); + + cartesianChart1.AxisY.Add(new Axis + { + LabelFormatter = val => val + "hPa", + IsEnabled = true, + Position = AxisPosition.RightTop + }); + + cartesianChart1.AxisY.Add(new Axis + { + LabelFormatter = val => val + "ms", + IsEnabled = false, + Position = AxisPosition.LeftBottom + }); + + cartesianChart1.AxisX.Add(new Axis + { + Title = "Uhrzeit", + Labels = new[] { "" } + }); + cartesianChart1.LegendLocation = LegendLocation.Right; //modifying the series collection will animate and update the chart @@ -80,56 +112,12 @@ namespace Wetterstation //}); //modifying any series values will also animate and update the chart - cartesianChart1.Series[2].Values.Add(5d); } - private void t_DateTime(object sender, EventArgs e) { lbUhr.Text = DateTime.Now.ToLongTimeString(); lbDatum.Text = DateTime.Now.ToShortDateString(); } - - private void LED_Click(object sender, EventArgs e) - { - - System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Red); - System.Drawing.Graphics formGraphics; - formGraphics = this.CreateGraphics(); - formGraphics.FillEllipse(myBrush, new Rectangle(818, 238, 12, 12)); - myBrush.Dispose(); - formGraphics.Dispose(); - } - - private void Label1_Click(object sender, EventArgs e) - { - System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Red); - System.Drawing.Graphics formGraphics; - formGraphics = this.CreateGraphics(); - formGraphics.FillEllipse(myBrush, new Rectangle(872, 290, 12, 12)); - myBrush.Dispose(); - formGraphics.Dispose(); - } - - private void LED_S_Click(object sender, EventArgs e) - { - System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Red); - System.Drawing.Graphics formGraphics; - formGraphics = this.CreateGraphics(); - formGraphics.FillEllipse(myBrush, new Rectangle(818,350, 12, 12)); - myBrush.Dispose(); - formGraphics.Dispose(); - } - - private void LED_W_Click(object sender, EventArgs e) - { - System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Red); - System.Drawing.Graphics formGraphics; - formGraphics = this.CreateGraphics(); - formGraphics.FillEllipse(myBrush, new Rectangle(764, 290, 12, 12)); - myBrush.Dispose(); - formGraphics.Dispose(); - } - //MQTT connect public void mqttStart() { @@ -151,7 +139,6 @@ namespace Wetterstation this.myClient.Publish(topic_publish, Encoding.UTF8.GetBytes("Request_frontend")); } - public void msgPublish(String topic, String message) { Console.Write("Sending via MQTT: "); @@ -159,7 +146,6 @@ namespace Wetterstation Console.WriteLine("Message: " + message); this.myClient.Publish(topic, Encoding.UTF8.GetBytes(message)); } - private void client_recievedMessage(object sender, MqttMsgPublishEventArgs e) { // Handle message received @@ -187,71 +173,62 @@ namespace Wetterstation } } - public void updateFormChart(String message) { + double temp; + int humidity; + int pressure; + double windSpeed; dynamic weatherData = JsonConvert.DeserializeObject(message.ToString()); - Console.WriteLine("---- bin in update Graph -----"); - //Console.WriteLine(message); - - //Console.WriteLine("---- und das steht in weatherData -----"); - //Console.WriteLine(weatherData); - - Console.WriteLine("---- und das steht in results[0][series][0][columns] -----"); - Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"columns\"][0] = > " + weatherData["results"][0]["series"][0]["columns"][0]); - Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"columns\"][1] = > " + weatherData["results"][0]["series"][0]["columns"][1]); - Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"columns\"][2] = > " + weatherData["results"][0]["series"][0]["columns"][2]); - Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"columns\"][3] = > " + weatherData["results"][0]["series"][0]["columns"][3]); - Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"columns\"][4] = > " + weatherData["results"][0]["series"][0]["columns"][4]); - Console.WriteLine(); - - - Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"values\"][1][0] => " + weatherData["results"][0]["series"][0]["values"][1][0]); - Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"values\"][65][0] => " + weatherData["results"][0]["series"][0]["values"][85][0]); - Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"values\"][65][1] => " + weatherData["results"][0]["series"][0]["values"][65][1]); - Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"values\"][65][2] => " + weatherData["results"][0]["series"][0]["values"][65][2]); - Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"values\"][65][3] => " + weatherData["results"][0]["series"][0]["values"][65][3]); - Console.WriteLine("weatherData[\"results\"][0][\"series\"][0][\"values\"][65][4] => " + weatherData["results"][0]["series"][0]["values"][65][4]); - - - Console.WriteLine(weatherData["results"][0]["series"][0]["values"][85][2]); - - //temperatureValue.dtTimestamp = weatherData["results"][0]["series"][0]["values"][1][0]; - //temperatureValue.dValue = weatherData["results"][0]["series"][0]["values"][85][2]; - - - - //Console.WriteLine("Datum: " + temperatureValue.dtTimestamp + " hat Wert: " + temperatureValue.dValue); - - //Laufvariablen fuer For-Schleife - int i = 0; - int j = 0; - - - - //while((weatherData["results"][0]["series"][0]["columns"][0])) - //{ - // Console.WriteLine("4 erwaretet: " + i); - // i++; - //} - - - - - - - //foreach() - //Console.WriteLine(weatherData["results"]["columns"]["values"]); - - /* - for(weatherData.) + if (graphLastTimestamp == null) { - + int i = 0; + foreach (var result in weatherData["results"][0]["series"][0]["values"]) + { + if (result[2] == null) temp = 0; + else temp = result[1]; + if (result[1] == null) humidity = 0; + else humidity = result[2]; + if (result[3] == null) pressure = 0; + else pressure = result[3]; + if (result[4] == null) windSpeed = 0; + else windSpeed = result[4]; + + cartesianChart1.Series[0].Values.Add(temp); + cartesianChart1.Series[1].Values.Add(humidity); + cartesianChart1.Series[2].Values.Add(pressure); + cartesianChart1.Series[3].Values.Add(windSpeed); + } + graphLastTimestamp = weatherData["results"][0]["series"][0]["values"][96][0].ToString(); + } + else + { + if (graphLastTimestamp != weatherData["results"][0]["series"][0]["values"][96][0].ToString()) + { + cartesianChart1.Series[0].Values.RemoveAt(0); + cartesianChart1.Series[1].Values.RemoveAt(0); + cartesianChart1.Series[2].Values.RemoveAt(0); + cartesianChart1.Series[3].Values.RemoveAt(0); + + if (weatherData["results"][0]["series"][0]["values"][96][2] == 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; + 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]; + + cartesianChart1.Series[0].Values.Add(temp); + cartesianChart1.Series[1].Values.Add(humidity); + cartesianChart1.Series[2].Values.Add(pressure); + cartesianChart1.Series[3].Values.Add(windSpeed); + + graphLastTimestamp = weatherData["results"][0]["series"][0]["values"][96][0].ToString(); + } } - */ } - public void updateFormWeather(String message) { Console.WriteLine("Entered updateFormWeather"); @@ -287,8 +264,6 @@ namespace Wetterstation } return rotatedImage; } - - public void updateFormForecast(String message) { Console.WriteLine("Entered updateFormForecast"); @@ -317,14 +292,12 @@ namespace Wetterstation } catch (Exception ignored) { } } - public String getDayFromDateString(String strDate) { DateTime dt = DateTime.ParseExact(strDate, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture); CultureInfo culture = new CultureInfo("de-DE"); return culture.DateTimeFormat.GetDayName(dt.DayOfWeek).Substring(0, 2).ToString(); } - public void updateFormSensors(String message) { Console.WriteLine("Entered updateFormSensors"); @@ -335,19 +308,16 @@ namespace Wetterstation } catch (Exception ignored) { } } - public void updateFormComplete() { WeatherstationSettings = SqliteDataAccess.LoadWeatherstationSettings(); lbCity.Text = WeatherstationSettings.city; } - public void updateSettings2Mqtt() { Console.WriteLine(JsonConvert.SerializeObject(WeatherstationSettings).ToString()); this.msgPublish(WeatherstationSettings.mqtt_topic_backend + "settings", JsonConvert.SerializeObject(WeatherstationSettings).ToString()); } - private void BtSystemKnopf_Click(object sender, EventArgs e) { Form settings = new Settings(); @@ -360,26 +330,10 @@ namespace Wetterstation // Neue Einstellungen an Backend senden this.updateSettings2Mqtt(); } - - private void Hintergrund_Load(object sender, EventArgs e) - { - - } - private void Hintergrund_FormClosed(object sender, FormClosedEventArgs e) { this.myClient.Disconnect(); Application.Exit(); } - - private void CartesianChart1_ChildChanged(object sender, System.Windows.Forms.Integration.ChildChangedEventArgs e) - { - - } - - private void LbHintergrund_Click(object sender, EventArgs e) - { - - } } }