From ed92555d1e1af9cf1d0190fe9e78582ad9f6452b Mon Sep 17 00:00:00 2001 From: BlubbFish <git@blubbfish.net> Date: Tue, 26 Sep 2017 17:55:25 +0000 Subject: [PATCH] [NF] Ein paar verbesserungen --- Mqtt-Dashboard/Connector/ADataBackend.cs | 10 ++++---- Mqtt-Dashboard/Dashboard.csproj | 28 ++++++++++++++++++++++- Mqtt-Dashboard/Dashboard.csproj.user | 10 ++++++++ Mqtt-Dashboard/Form1.cs | 16 +++++++------ Mqtt-Dashboard/Program.cs | 5 ++-- Mqtt-Dashboard/Sensor/ASensor.cs | 20 ++++++++-------- Mqtt-Dashboard/Sensor/Flex4GridSwitch.cs | 6 ++--- Mqtt-Dashboard/Sensor/Flex4gridPower.cs | 2 +- Mqtt-Dashboard/Sensor/Power.cs | 2 +- Mqtt-Dashboard/Sensor/Switch.cs | 2 +- Mqtt-Dashboard/bin/Release/Dashboard.exe | Bin 33280 -> 33280 bytes Mqtt-Dashboard/bin/Release/Utils.dll | Bin 24576 -> 24576 bytes 12 files changed, 69 insertions(+), 32 deletions(-) diff --git a/Mqtt-Dashboard/Connector/ADataBackend.cs b/Mqtt-Dashboard/Connector/ADataBackend.cs index 39d2dbd..6f74838 100644 --- a/Mqtt-Dashboard/Connector/ADataBackend.cs +++ b/Mqtt-Dashboard/Connector/ADataBackend.cs @@ -2,28 +2,26 @@ using System.Collections.Generic; namespace Dashboard.Connector { - abstract class ADataBackend { + public abstract class ADataBackend { public abstract event MqttMessage MessageIncomming; public abstract event MqttMessage MessageSending; public delegate void MqttMessage(Object sender, MqttEventArgs e); - internal static void SetInstance(Dictionary<String, String> dictionary) { - String object_sensor = "Dashboard.Connector." + Char.ToUpper(dictionary["type"][0]) + dictionary["type"].Substring(1); + public static ADataBackend GetInstance(Dictionary<String, String> dictionary) { + String object_sensor = "Dashboard.Connector." + Char.ToUpper(dictionary["type"][0]) + dictionary["type"].Substring(1).ToLower(); Type t = null; try { t = Type.GetType(object_sensor, true); } catch (TypeLoadException) { throw new ArgumentException("settings.ini: " + dictionary["type"] + " is not a Connector"); } - Instance = (ADataBackend)t.GetConstructor(new Type[] { typeof(Dictionary<String, String>) }).Invoke(new Object[] { dictionary }); + return (ADataBackend)t.GetConstructor(new Type[] { typeof(Dictionary<String, String>) }).Invoke(new Object[] { dictionary }); } public abstract void Send(String topic, String data); public abstract void Dispose(); - - public static ADataBackend Instance { get; private set; } } public class MqttEventArgs : EventArgs { public MqttEventArgs() : base() { } diff --git a/Mqtt-Dashboard/Dashboard.csproj b/Mqtt-Dashboard/Dashboard.csproj index faece59..72b5428 100644 --- a/Mqtt-Dashboard/Dashboard.csproj +++ b/Mqtt-Dashboard/Dashboard.csproj @@ -11,6 +11,21 @@ <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> + <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>0</ApplicationRevision> + <ApplicationVersion>1.0.0.%2a</ApplicationVersion> + <IsWebBootstrapper>false</IsWebBootstrapper> + <UseApplicationTrust>false</UseApplicationTrust> + <BootstrapperEnabled>true</BootstrapperEnabled> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PlatformTarget>AnyCPU</PlatformTarget> @@ -118,6 +133,17 @@ <Name>Utils</Name> </ProjectReference> </ItemGroup> - <ItemGroup /> + <ItemGroup> + <BootstrapperPackage Include=".NETFramework,Version=v4.5.2"> + <Visible>False</Visible> + <ProductName>Microsoft .NET Framework 4.5.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" /> </Project> \ No newline at end of file diff --git a/Mqtt-Dashboard/Dashboard.csproj.user b/Mqtt-Dashboard/Dashboard.csproj.user index d79bedf..0d2e8c8 100644 --- a/Mqtt-Dashboard/Dashboard.csproj.user +++ b/Mqtt-Dashboard/Dashboard.csproj.user @@ -6,4 +6,14 @@ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'"> <StartArguments>-debug</StartArguments> </PropertyGroup> + <PropertyGroup> + <PublishUrlHistory /> + <InstallUrlHistory /> + <SupportUrlHistory /> + <UpdateUrlHistory /> + <BootstrapperUrlHistory /> + <ErrorReportUrlHistory /> + <FallbackCulture>de-DE</FallbackCulture> + <VerifyUploadedFiles>false</VerifyUploadedFiles> + </PropertyGroup> </Project> \ No newline at end of file diff --git a/Mqtt-Dashboard/Form1.cs b/Mqtt-Dashboard/Form1.cs index c9b4e73..7b95b97 100644 --- a/Mqtt-Dashboard/Form1.cs +++ b/Mqtt-Dashboard/Form1.cs @@ -9,10 +9,11 @@ using Dashboard.Tracings; namespace Dashboard { public partial class Dashboard : Form { private Dictionary<String, ASensor> sensors = new Dictionary<String, ASensor>(); + private ADataBackend mqtt; public Dashboard(Boolean debug) { InitializeComponent(); - ADataBackend.SetInstance(InIReader.GetInstance("settings.ini").GetSection("mqtt")); + this.mqtt = ADataBackend.GetInstance(InIReader.GetInstance("settings.ini").GetSection("mqtt")); this.GenerateSensors(); this.GenerateForms(); @@ -21,8 +22,8 @@ namespace Dashboard { this.SizeChanged += this.Dashboard_SizeChanged; if (debug) { - ADataBackend.Instance.MessageIncomming += this.Instance_MessageIncomming; - ADataBackend.Instance.MessageSending += this.Instance_MessageSending; + this.mqtt.MessageIncomming += this.Instance_MessageIncomming; + this.mqtt.MessageSending += this.Instance_MessageSending; } } @@ -32,9 +33,9 @@ namespace Dashboard { private void GenerateSensors() { InIReader ini = InIReader.GetInstance("sensor.ini"); - List<String> sensorini = ini.GetSections(); + List<String> sensorini = ini.GetSections(false); foreach(String sensor in sensorini) { - this.sensors.Add(sensor.ToLower().Substring(1, sensor.Length - 2), ASensor.GetInstance(ini.GetValue(sensor, "type").ToLower(), ini.GetSection(sensor), sensor.Substring(1, sensor.Length - 2))); + this.sensors.Add(sensor.ToLower(), ASensor.GetInstance(this.mqtt, ini.GetSection(sensor), sensor)); } } @@ -54,8 +55,9 @@ namespace Dashboard { item.Value.Dispose(); } this.sensors.Clear(); - ADataBackend.Instance.MessageIncomming -= this.Instance_MessageIncomming; - ADataBackend.Instance.Dispose(); + this.mqtt.MessageIncomming -= this.Instance_MessageIncomming; + this.mqtt.MessageSending -= this.Instance_MessageSending; + this.mqtt.Dispose(); this.Dispose(true); } diff --git a/Mqtt-Dashboard/Program.cs b/Mqtt-Dashboard/Program.cs index 845faf4..31f4000 100644 --- a/Mqtt-Dashboard/Program.cs +++ b/Mqtt-Dashboard/Program.cs @@ -10,10 +10,9 @@ namespace Dashboard { /// </summary> [STAThread] static void Main(String[] args) { - Dictionary<String, CmdArgs.VaildArguments> pargs = new Dictionary<String, CmdArgs.VaildArguments> { + CmdArgs.Instance.SetArguments(new Dictionary<String, CmdArgs.VaildArguments> { { "-debug", new CmdArgs.VaildArguments(CmdArgs.ArgLength.Single) } - }; - CmdArgs.Instance.SetArguments(pargs, args); + }, args); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Boolean debug = false; diff --git a/Mqtt-Dashboard/Sensor/ASensor.cs b/Mqtt-Dashboard/Sensor/ASensor.cs index 486a94b..ee7f7bc 100644 --- a/Mqtt-Dashboard/Sensor/ASensor.cs +++ b/Mqtt-Dashboard/Sensor/ASensor.cs @@ -10,10 +10,11 @@ namespace Dashboard.Sensor { protected String topic; protected Int32 pollcount; private Dictionary<String, String> settings; + protected ADataBackend backend; private Thread updateThread; private Boolean pollEnabled = false; - public ASensor(Dictionary<String, String> settings, String name) { + public ASensor(Dictionary<String, String> settings, String name, ADataBackend backend) { this.GetBool = true; this.GetFloat = 0.0f; this.GetInt = 0; @@ -21,7 +22,8 @@ namespace Dashboard.Sensor { this.settings = settings; this.Title = (settings.Keys.Contains("title")) ? settings["title"] : ""; this.Name = name; - ADataBackend.Instance.MessageIncomming += this.IncommingMqttMessage; + this.backend = backend; + this.backend.MessageIncomming += this.IncommingMqttMessage; if (settings.Keys.Contains("polling")) { this.pollEnabled = true; this.Polling = Int32.Parse(settings["polling"]); @@ -47,26 +49,26 @@ namespace Dashboard.Sensor { } } - internal static ASensor GetInstance(String v, Dictionary<String, String> dictionary, String name) { - String object_sensor = "Dashboard.Sensor." + Char.ToUpper(v[0]) + v.Substring(1); + internal static ASensor GetInstance(ADataBackend backend, Dictionary<String, String> dictionary, String name) { + String object_sensor = "Dashboard.Sensor." + Char.ToUpper(dictionary["type"][0]) + dictionary["type"].Substring(1).ToLower(); Type t = null; try { t = Type.GetType(object_sensor, true); } catch(TypeLoadException) { - throw new ArgumentException("sensor.ini: " + v + " is not a Sensor"); + throw new ArgumentException("sensor.ini: " + dictionary["type"] + " is not a Sensor"); } - return (ASensor)t.GetConstructor(new Type[] { typeof(Dictionary<String, String>), typeof(String) }).Invoke(new Object[] { dictionary, name }); + return (ASensor)t.GetConstructor(new Type[] { typeof(Dictionary<String, String>), typeof(String), typeof(ADataBackend) }).Invoke(new Object[] { dictionary, name, backend }); } protected virtual void Poll() { if(this.pollcount++ >= this.Polling) { this.pollcount = 1; - ADataBackend.Instance.Send(this.topic + "/status",""); + this.backend.Send(this.topic + "/status",""); } } internal virtual void SetBool(Boolean v) { - ADataBackend.Instance.Send(this.topic + "/set", v ? "on" : "off"); + this.backend.Send(this.topic + "/set", v ? "on" : "off"); } protected abstract Boolean UpdateValue(MqttEventArgs e); @@ -100,7 +102,7 @@ namespace Dashboard.Sensor { this.updateThread.Abort(); while (this.updateThread.ThreadState != ThreadState.Aborted) { } } - ADataBackend.Instance.MessageIncomming -= this.IncommingMqttMessage; + this.backend.MessageIncomming -= this.IncommingMqttMessage; } this.settings = null; this.updateThread = null; diff --git a/Mqtt-Dashboard/Sensor/Flex4GridSwitch.cs b/Mqtt-Dashboard/Sensor/Flex4GridSwitch.cs index 3ea9133..a476a4f 100644 --- a/Mqtt-Dashboard/Sensor/Flex4GridSwitch.cs +++ b/Mqtt-Dashboard/Sensor/Flex4GridSwitch.cs @@ -9,7 +9,7 @@ namespace Dashboard.Sensor { class Flex4gridswitch : ASensor { private String id; - public Flex4gridswitch(Dictionary<String, String> settings, String name) : base(settings, name) { + public Flex4gridswitch(Dictionary<String, String> settings, String name, ADataBackend backend) : base(settings, name, backend) { this.Datatypes = Types.Bool; this.id = settings["id"]; } @@ -40,13 +40,13 @@ namespace Dashboard.Sensor { if (this.pollcount++ >= this.Polling) { this.pollcount = 1; String hid = Regex.Match(this.topic, "/flex4grid/v1/households/([^/]*)/device/state").Groups[1].Value; - ADataBackend.Instance.Send("/flex4grid/v1/households/" + hid + "/devices/state/request", "{\"timestamp\": \"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'ffffff'Z'") + "\"}"); + this.backend.Send("/flex4grid/v1/households/" + hid + "/devices/state/request", "{\"timestamp\": \"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'ffffff'Z'") + "\"}"); } } internal override void SetBool(Boolean v) { String hid = Regex.Match(this.topic, "/flex4grid/v1/households/([^/]*)/device/state").Groups[1].Value; - ADataBackend.Instance.Send("/flex4grid/v1/households/" + hid + "/device/actuate", "{\"command\":\""+(v ? "ON" : "OFF") + "\",\"deviceId\":\""+ this.id + "\",\"timestamp\":\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'ffffff'Z'") + "\"}"); + this.backend.Send("/flex4grid/v1/households/" + hid + "/device/actuate", "{\"command\":\""+(v ? "ON" : "OFF") + "\",\"deviceId\":\""+ this.id + "\",\"timestamp\":\"" + DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'ffffff'Z'") + "\"}"); } } } \ No newline at end of file diff --git a/Mqtt-Dashboard/Sensor/Flex4gridPower.cs b/Mqtt-Dashboard/Sensor/Flex4gridPower.cs index 6fffc25..6cdae43 100644 --- a/Mqtt-Dashboard/Sensor/Flex4gridPower.cs +++ b/Mqtt-Dashboard/Sensor/Flex4gridPower.cs @@ -8,7 +8,7 @@ namespace Dashboard.Sensor { class Flex4gridpower : ASensor { private String id; - public Flex4gridpower(Dictionary<String, String> settings, String name) : base(settings, name) { + public Flex4gridpower(Dictionary<String, String> settings, String name, ADataBackend backend) : base(settings, name, backend) { this.Datatypes = Types.Float; this.id = settings["id"]; } diff --git a/Mqtt-Dashboard/Sensor/Power.cs b/Mqtt-Dashboard/Sensor/Power.cs index 6776032..e176b4f 100644 --- a/Mqtt-Dashboard/Sensor/Power.cs +++ b/Mqtt-Dashboard/Sensor/Power.cs @@ -5,7 +5,7 @@ using Dashboard.Connector; namespace Dashboard.Sensor { class Power : ASensor { - public Power(Dictionary<String, String> settings, String name) : base(settings, name) { + public Power(Dictionary<String, String> settings, String name, ADataBackend backend) : base(settings, name, backend) { this.GetBool = true; this.GetFloat = 0.0f; this.GetInt = 0; diff --git a/Mqtt-Dashboard/Sensor/Switch.cs b/Mqtt-Dashboard/Sensor/Switch.cs index 0c0e002..86b8969 100644 --- a/Mqtt-Dashboard/Sensor/Switch.cs +++ b/Mqtt-Dashboard/Sensor/Switch.cs @@ -4,7 +4,7 @@ using Dashboard.Connector; namespace Dashboard.Sensor { class Switch : ASensor { - public Switch(Dictionary<System.String, System.String> settings, String name) : base(settings, name) { + public Switch(Dictionary<System.String, System.String> settings, String name, ADataBackend backend) : base(settings, name, backend) { this.Datatypes = Types.Bool; } diff --git a/Mqtt-Dashboard/bin/Release/Dashboard.exe b/Mqtt-Dashboard/bin/Release/Dashboard.exe index 62e1981850e7895386b757db66c1236d2e16eb74..7db5a4e0d083cb13f9cb74fb8f7dfa958e0f392b 100644 GIT binary patch literal 33280 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	beCr4orj4(r^V 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 literal 33280 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 X^ZI`EHzdEg^zUr{zs>$fTj2i!wT5>{ diff --git a/Mqtt-Dashboard/bin/Release/Utils.dll b/Mqtt-Dashboard/bin/Release/Utils.dll index 9647ff5de5e38dc5b5cc091289b2ae828289af75..28f5d3debb41c7436ba7309617ee5861c8898473 100644 GIT binary patch delta 9371 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 UFCuv$ry+xzL*M_K*ihv9ZzyxQ5C8xG delta 9127 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