From 3b5b2287b2ff56bd2eff2941d4c8ac2936316016 Mon Sep 17 00:00:00 2001 From: BlubbFish Date: Thu, 10 Aug 2017 09:41:47 +0000 Subject: [PATCH] [BF] Fehler behoben, das sich die Anwendung nicht beendet --- Mqtt-Dashboard/Connector/Mqtt.cs | 26 +++++++++++++++++++++++++- Mqtt-Dashboard/Form1.cs | 6 ++---- Mqtt-Dashboard/sensor.ini | 15 ++++++++++----- Mqtt-Dashboard/settings.ini | 2 +- Mqtt-Dashboard/tracings.ini | 6 +++++- 5 files changed, 43 insertions(+), 12 deletions(-) diff --git a/Mqtt-Dashboard/Connector/Mqtt.cs b/Mqtt-Dashboard/Connector/Mqtt.cs index fa22e99..f19f792 100644 --- a/Mqtt-Dashboard/Connector/Mqtt.cs +++ b/Mqtt-Dashboard/Connector/Mqtt.cs @@ -5,7 +5,7 @@ using uPLibrary.Networking.M2Mqtt; using uPLibrary.Networking.M2Mqtt.Messages; namespace Dashboard.Connector { - class Mqtt { + class Mqtt : IDisposable { private static Mqtt instance; private MqttClient client; @@ -37,5 +37,29 @@ namespace Dashboard.Connector { public void Send(String topic, String data) { this.client.Publish(topic, Encoding.UTF8.GetBytes(data)); } + + #region IDisposable Support + private bool disposedValue = false; + protected virtual void Dispose(bool disposing) { + if(!disposedValue) { + if(disposing) { + this.client.MqttMsgPublishReceived -= this.Client_MqttMsgPublishReceived; + this.client.Unsubscribe(new String[] { "#" }); + this.client.Disconnect(); + } + + this.client = null; + + disposedValue = true; + } + } + ~Mqtt() { + Dispose(false); + } + public void Dispose() { + Dispose(true); + GC.SuppressFinalize(this); + } + #endregion } } diff --git a/Mqtt-Dashboard/Form1.cs b/Mqtt-Dashboard/Form1.cs index 4eefbea..ca0cf7d 100644 --- a/Mqtt-Dashboard/Form1.cs +++ b/Mqtt-Dashboard/Form1.cs @@ -28,7 +28,7 @@ namespace Dashboard { Mqtt.Instance.MessageIncomming += this.Instance_MessageIncomming; } - private void GenerateSensors() { + private void GenerateSensors() { InIReader ini = InIReader.GetInstance("sensor.ini"); List sensorini = ini.GetSections(); foreach(String sensor in sensorini) { @@ -68,11 +68,9 @@ namespace Dashboard { private new void Dispose() { this.updateThread.Abort(); while (this.updateThread.ThreadState != ThreadState.Aborted) { } - foreach (String item in this.sensors.Keys) { - this.sensors[item] = null; - } this.sensors.Clear(); Mqtt.Instance.MessageIncomming -= this.Instance_MessageIncomming; + Mqtt.Instance.Dispose(); this.Dispose(true); } private void Instance_MessageIncomming(Object sender, uPLibrary.Networking.M2Mqtt.Messages.MqttMsgPublishEventArgs e) { diff --git a/Mqtt-Dashboard/sensor.ini b/Mqtt-Dashboard/sensor.ini index 6916ea3..23e9eb8 100644 --- a/Mqtt-Dashboard/sensor.ini +++ b/Mqtt-Dashboard/sensor.ini @@ -1,7 +1,7 @@ -[Thinkpad] -topic=zway/wohnzimmer/thinkpad/power -type=Power -polling=10 +;[Thinkpad] +;topic=zway/wohnzimmer/thinkpad/power +;type=Power +;polling=10 ;[Tv] ;topic=zway/wohnzimmer/tV/power @@ -11,4 +11,9 @@ polling=10 ;[Kühlschrank] ;topic=zway/küche/kuehlschrank/power ;type=Power -;polling=10 \ No newline at end of file +;polling=10 + +[Ventilator] +topic=zway/power/test/wVentilator +type=Power +polling=10 \ No newline at end of file diff --git a/Mqtt-Dashboard/settings.ini b/Mqtt-Dashboard/settings.ini index d392063..8fbdba0 100644 --- a/Mqtt-Dashboard/settings.ini +++ b/Mqtt-Dashboard/settings.ini @@ -1,2 +1,2 @@ [general] -mqtt-server=localhost \ No newline at end of file +mqtt-server=129.26.160.65 \ No newline at end of file diff --git a/Mqtt-Dashboard/tracings.ini b/Mqtt-Dashboard/tracings.ini index fe2414d..7db4ea1 100644 --- a/Mqtt-Dashboard/tracings.ini +++ b/Mqtt-Dashboard/tracings.ini @@ -8,4 +8,8 @@ ;[KühlschrankGraph] ;sensor=Kühlschrank -;type=Graph \ No newline at end of file +;type=Graph + +[VentilatorGraph] +sensor=Ventilator +type=Graph \ No newline at end of file