diff --git a/Bot.cs b/Bot.cs index 0fd1cc7..3cb19cd 100644 --- a/Bot.cs +++ b/Bot.cs @@ -20,10 +20,10 @@ namespace BlubbFish.Utils.IoT.Bots { new Mono.Unix.UnixSignal(Mono.Unix.Native.Signum.SIGTERM), new Mono.Unix.UnixSignal(Mono.Unix.Native.Signum.SIGINT) }; - Console.WriteLine("Signalhandler Mono attached."); + Console.WriteLine("BlubbFish.Utils.IoT.Bots.Bot.WaitForShutdown: Signalhandler Mono attached."); while (true) { Int32 i = Mono.Unix.UnixSignal.WaitAny(signals, -1); - Console.WriteLine("Signalhandler Mono INT recieved " + i + "."); + Console.WriteLine("BlubbFish.Utils.IoT.Bots.Bot.WaitForShutdown: Signalhandler Mono INT recieved " + i + "."); this.RunningProcess = false; break; } @@ -31,7 +31,7 @@ namespace BlubbFish.Utils.IoT.Bots { this.sig_thread.Start(); } else { Console.CancelKeyPress += new ConsoleCancelEventHandler(this.SetupShutdown); - Console.WriteLine("Signalhandler Windows attached."); + Console.WriteLine("BlubbFish.Utils.IoT.Bots.Bot.WaitForShutdown: Signalhandler Windows attached."); } while (this.RunningProcess) { Thread.Sleep(100); @@ -40,14 +40,14 @@ namespace BlubbFish.Utils.IoT.Bots { private void SetupShutdown(Object sender, ConsoleCancelEventArgs e) { e.Cancel = true; - Console.WriteLine("Signalhandler Windows INT recieved."); + Console.WriteLine("BlubbFish.Utils.IoT.Bots.Bot.SetupShutdown: Signalhandler Windows INT recieved."); this.RunningProcess = false; } protected void ModulDispose() { foreach (KeyValuePair> item in this.moduls) { item.Value.Dispose(); - Console.WriteLine("Modul entladen: " + item.Key); + Console.WriteLine("BlubbFish.Utils.IoT.Bots.Bot.ModulDispose: Modul entladen: " + item.Key); } if (this.sig_thread != null && this.sig_thread.IsAlive) { this.sig_thread.Abort(); @@ -60,12 +60,18 @@ namespace BlubbFish.Utils.IoT.Bots { if (item.Namespace == @namespace) { Type t = item; String name = t.Name; - if (InIReader.ConfigExist(name.ToLower())) { - this.moduls.Add(name, (AModul)t.GetConstructor(new Type[] { typeof(T), typeof(InIReader) }).Invoke(new Object[] { library, InIReader.GetInstance(name.ToLower()) })); - Console.WriteLine("Load Modul " + name); - } else if (t.HasInterface(typeof(IForceLoad))) { - this.moduls.Add(name, (AModul)t.GetConstructor(new Type[] { typeof(T), typeof(InIReader) }).Invoke(new Object[] { library, null })); - Console.WriteLine("Load Modul Forced " + name); + try { + if (InIReader.ConfigExist(name.ToLower())) { + Console.WriteLine("BlubbFish.Utils.IoT.Bots.Bot.ModulLoader: Load Modul " + name); + this.moduls.Add(name, (AModul)t.GetConstructor(new Type[] { typeof(T), typeof(InIReader) }).Invoke(new Object[] { library, InIReader.GetInstance(name.ToLower()) })); + Console.WriteLine("BlubbFish.Utils.IoT.Bots.Bot.ModulLoader: Loaded Modul " + name); + } else if (t.HasInterface(typeof(IForceLoad))) { + Console.WriteLine("BlubbFish.Utils.IoT.Bots.Bot.ModulLoader: Load Modul Forced " + name); + this.moduls.Add(name, (AModul)t.GetConstructor(new Type[] { typeof(T), typeof(InIReader) }).Invoke(new Object[] { library, null })); + Console.WriteLine("BlubbFish.Utils.IoT.Bots.Bot.ModulLoader: Loaded Modul Forced " + name); + } + } catch(Exception e) { + Helper.WriteError(e.InnerException.Message); } } } @@ -74,6 +80,7 @@ namespace BlubbFish.Utils.IoT.Bots { protected void ModulInterconnect() { foreach (KeyValuePair> item in this.moduls) { item.Value.Interconnect(this.moduls); + Console.WriteLine("BlubbFish.Utils.IoT.Bots.Bot.ModulInterconnect: Interconnect Module " + item.Key); } } @@ -81,6 +88,7 @@ namespace BlubbFish.Utils.IoT.Bots { foreach (KeyValuePair> item in this.moduls) { item.Value.EventLibSetter(); item.Value.Update += this.ModulUpdate; + Console.WriteLine("BlubbFish.Utils.IoT.Bots.Bot.ModulEvents: Attach Event " + item.Key); } } diff --git a/Moduls/Mqtt.cs b/Moduls/Mqtt.cs index 920f70f..7641f1c 100644 --- a/Moduls/Mqtt.cs +++ b/Moduls/Mqtt.cs @@ -18,6 +18,8 @@ namespace BlubbFish.Utils.IoT.Bots.Moduls { if (this.config.ContainsKey("settings")) { this.connectionWatcher = new Thread(this.ConnectionWatcherRunner); this.connectionWatcher.Start(); + } else { + throw new ArgumentException("Setting section [settings] is missing!"); } } #endregion diff --git a/bin/Release/Bot-Utils.dll b/bin/Release/Bot-Utils.dll index caf4664..eb7fd4b 100644 Binary files a/bin/Release/Bot-Utils.dll and b/bin/Release/Bot-Utils.dll differ