diff --git a/Bot.cs b/Bot.cs index ddde4fe..80251ea 100644 --- a/Bot.cs +++ b/Bot.cs @@ -7,11 +7,11 @@ using BlubbFish.Utils.IoT.Bots.Events; using BlubbFish.Utils.IoT.Bots.Interfaces; namespace BlubbFish.Utils.IoT.Bots { - public abstract class Bot { + public abstract class Bot { private Thread sig_thread; private Boolean RunningProcess = true; protected ProgramLogger logger = new ProgramLogger(); - protected readonly Dictionary moduls = new Dictionary(); + protected readonly Dictionary> moduls = new Dictionary>(); protected void WaitForShutdown() { if (Type.GetType("Mono.Runtime") != null) { @@ -44,9 +44,9 @@ namespace BlubbFish.Utils.IoT.Bots { this.RunningProcess = false; } - protected void ModulDispose() { - foreach (KeyValuePair item in this.moduls) { - ((AModul)item.Value).Dispose(); + protected void ModulDispose() { + foreach (KeyValuePair> item in this.moduls) { + item.Value.Dispose(); Console.WriteLine("Modul entladen: " + item.Key); } if (this.sig_thread != null && this.sig_thread.IsAlive) { @@ -54,7 +54,7 @@ namespace BlubbFish.Utils.IoT.Bots { } } - protected void ModulLoader(String @namespace, Object library) { + protected void ModulLoader(String @namespace, Object library) { Assembly asm = Assembly.GetEntryAssembly(); foreach (Type item in asm.GetTypes()) { if (item.Namespace == @namespace) { @@ -71,15 +71,15 @@ namespace BlubbFish.Utils.IoT.Bots { } } - protected void ModulInterconnect() { - foreach (KeyValuePair item in this.moduls) { - ((AModul)item.Value).Interconnect(this.moduls); + protected void ModulInterconnect() { + foreach (KeyValuePair> item in this.moduls) { + item.Value.Interconnect(this.moduls); } } - protected void ModulEvents() { - foreach (KeyValuePair item in this.moduls) { - ((AModul)item.Value).Update += this.ModulUpdate; + protected void ModulEvents() { + foreach (KeyValuePair> item in this.moduls) { + item.Value.Update += this.ModulUpdate; } } diff --git a/Moduls/AModul.cs b/Moduls/AModul.cs index 2745e60..e7ec1a5 100644 --- a/Moduls/AModul.cs +++ b/Moduls/AModul.cs @@ -45,7 +45,7 @@ namespace BlubbFish.Utils.IoT.Bots.Moduls { return new Dictionary>(); } - public virtual void Interconnect(Dictionary moduls) { } + public virtual void Interconnect(Dictionary> moduls) { } public virtual void SetInterconnection(String param, Action hook, Object data) { } diff --git a/Moduls/Mqtt.cs b/Moduls/Mqtt.cs index 62424ab..920f70f 100644 --- a/Moduls/Mqtt.cs +++ b/Moduls/Mqtt.cs @@ -11,7 +11,7 @@ namespace BlubbFish.Utils.IoT.Bots.Moduls { public abstract class Mqtt : AModul, IDisposable { protected readonly Thread connectionWatcher; protected ABackend mqtt; - protected Dictionary modules; + protected Dictionary> modules; #region Constructor public Mqtt(T lib, InIReader settings) : base(lib, settings) { @@ -45,7 +45,7 @@ namespace BlubbFish.Utils.IoT.Bots.Moduls { #endregion #region AModul - public override void Interconnect(Dictionary moduls) { + public override void Interconnect(Dictionary> moduls) { this.modules = moduls; } @@ -61,9 +61,9 @@ namespace BlubbFish.Utils.IoT.Bots.Moduls { return new Tuple(false, null); } AModul modul = null; - foreach (KeyValuePair item in this.modules) { + foreach (KeyValuePair> item in this.modules) { if (item.Key.ToLower() == m.Groups[1].Value) { - modul = ((AModul)item.Value); + modul = item.Value; } } if (modul == null) { diff --git a/Moduls/Overtaker.cs b/Moduls/Overtaker.cs index 1a31a04..4760187 100644 --- a/Moduls/Overtaker.cs +++ b/Moduls/Overtaker.cs @@ -59,7 +59,7 @@ namespace BlubbFish.Utils.IoT.Bots.Moduls { #endregion #region AModul - public override void Interconnect(Dictionary moduls) { } + public override void Interconnect(Dictionary> moduls) { } protected override void UpdateConfig() { this.ParseIni(); } diff --git a/Moduls/Statuspolling.cs b/Moduls/Statuspolling.cs index 974cb54..d2fa153 100644 --- a/Moduls/Statuspolling.cs +++ b/Moduls/Statuspolling.cs @@ -16,14 +16,14 @@ namespace BlubbFish.Utils.IoT.Bots.Moduls { #endregion #region AModul - public override void Interconnect(Dictionary moduls) { - foreach (KeyValuePair item in moduls) { + public override void Interconnect(Dictionary> moduls) { + foreach (KeyValuePair> item in moduls) { if (item.Value is CronJob) { - ((AModul)item.Value).SetInterconnection("0 0 * * *", new Action(this.PollAll), null); + item.Value.SetInterconnection("0 0 * * *", new Action(this.PollAll), null); if (this.config.Count != 0) { foreach (KeyValuePair> section in this.config) { if (section.Value.ContainsKey("cron") && section.Value.ContainsKey("devices")) { - ((AModul)item.Value).SetInterconnection(section.Value["cron"], new Action(this.PollSpecific), section.Value["devices"]); + item.Value.SetInterconnection(section.Value["cron"], new Action(this.PollSpecific), section.Value["devices"]); } } } diff --git a/bin/Release/Bot-Utils.dll b/bin/Release/Bot-Utils.dll index 0498511..2d216bb 100644 Binary files a/bin/Release/Bot-Utils.dll and b/bin/Release/Bot-Utils.dll differ