diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/DeviceManager.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/DeviceManager.cs
index 55bc523a..cca16ec7 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/DeviceManager.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/DeviceManager.cs
@@ -46,7 +46,7 @@ namespace PepperDash.Essentials.Core
CrestronConsole.AddNewConsoleCommand(SimulateComReceiveOnDevice, "devsimreceive",
"Simulates incoming data on a com device", ConsoleAccessLevelEnum.AccessOperator);
- CrestronConsole.AddNewConsoleCommand(s => SetDeviceStreamDebugging(s), "setdevicestreamdebug", "set comm debug [deviceKey] [off/rx/tx/both] ([minutes])", ConsoleAccessLevelEnum.AccessOperator);
+ CrestronConsole.AddNewConsoleCommand(SetDeviceStreamDebugging, "setdevicestreamdebug", "set comm debug [deviceKey] [off/rx/tx/both] ([minutes])", ConsoleAccessLevelEnum.AccessOperator);
CrestronConsole.AddNewConsoleCommand(s => DisableAllDeviceStreamDebugging(), "disableallstreamdebug", "disables stream debugging on all devices", ConsoleAccessLevelEnum.AccessOperator);
}
@@ -387,6 +387,15 @@ namespace PepperDash.Essentials.Core
///
public static void SetDeviceStreamDebugging(string s)
{
+ if (String.IsNullOrEmpty(s) || s.Contains("?"))
+ {
+ CrestronConsole.ConsoleCommandResponse(
+ @"SETDEVICESTREAMDEBUG [{deviceKey}] [OFF |TX | RX | BOTH] [timeOutInMinutes]
+ {deviceKey} [OFF | TX | RX | BOTH] - Device to set stream debugging on, and which setting to use
+ timeOutInMinutes - Set timeout for stream debugging. Default is 30 minutes");
+ return;
+ }
+
var args = s.Split(' ');
var deviceKey = args[0];
@@ -437,7 +446,7 @@ namespace PepperDash.Essentials.Core
else
{
device.StreamDebugging.SetDebuggingWithDefaultTimeout(debugSetting);
- Debug.Console(0, "Device: '{0}' debug level set to {1) for default time (30 minutes)", deviceKey, debugSetting);
+ Debug.Console(0, "Device: '{0}' debug level set to {1} for default time (30 minutes)", deviceKey, debugSetting);
}
}
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Plugins/PluginLoader.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Plugins/PluginLoader.cs
index 543729da..ba4ffab4 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Plugins/PluginLoader.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Plugins/PluginLoader.cs
@@ -358,14 +358,27 @@ namespace PepperDash.Essentials
try
{
var assy = loadedAssembly.Assembly;
- var types = assy.GetTypes();
+ CType[] types = {};
+ try
+ {
+ types = assy.GetTypes();
+ }
+ catch (TypeLoadException e)
+ {
+ Debug.Console(0, Debug.ErrorLogLevel.Warning, "Unable to get types for assembly {0}: {1}",
+ loadedAssembly.Name, e.Message);
+ Debug.Console(2, e.StackTrace);
+ continue;
+ }
+
foreach (var type in types)
{
try
{
- if (typeof(IPluginDeviceFactory).IsAssignableFrom(type))
+ if (typeof (IPluginDeviceFactory).IsAssignableFrom(type))
{
- var plugin = (IPluginDeviceFactory)Crestron.SimplSharp.Reflection.Activator.CreateInstance(type);
+ var plugin =
+ (IPluginDeviceFactory) Crestron.SimplSharp.Reflection.Activator.CreateInstance(type);
LoadCustomPlugin(plugin, loadedAssembly);
}
else
@@ -378,6 +391,11 @@ namespace PepperDash.Essentials
}
}
}
+ catch (NotSupportedException e)
+ {
+ //this happens for dlls that aren't PD dlls, like ports of Mono classes into S#. Swallowing.
+
+ }
catch (Exception e)
{
Debug.Console(2, "Load Plugin not found. {0}.{2} is not a plugin factory. Exception: {1}",
@@ -389,7 +407,9 @@ namespace PepperDash.Essentials
}
catch (Exception e)
{
- Debug.Console(2, "Error Loading Assembly: {0} Exception: {1} ", loadedAssembly.Name, e);
+ Debug.Console(0, Debug.ErrorLogLevel.Warning, "Error Loading assembly {0}: {1}",
+ loadedAssembly.Name, e.Message);
+ Debug.Console(2, "{0}", e.StackTrace);
continue;
}
}
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/GenericQueue.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/GenericQueue.cs
index 651aab77..a1cef30d 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/GenericQueue.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/GenericQueue.cs
@@ -14,7 +14,7 @@ namespace PepperDash.Essentials.Core.Queues
protected readonly CrestronQueue _queue;
protected readonly Thread _worker;
protected readonly CEvent _waitHandle = new CEvent();
-
+
private bool _delayEnabled;
private int _delayTime;
@@ -158,7 +158,7 @@ namespace PepperDash.Essentials.Core.Queues
Dispose(true);
};
}
-
+
///
/// Thread callback
///