diff --git a/src/PepperDash.Essentials.Core/Bridges/BridgeBase.cs b/src/PepperDash.Essentials.Core/Bridges/BridgeBase.cs
index 58917199..0800f79f 100644
--- a/src/PepperDash.Essentials.Core/Bridges/BridgeBase.cs
+++ b/src/PepperDash.Essentials.Core/Bridges/BridgeBase.cs
@@ -375,8 +375,7 @@ namespace PepperDash.Essentials.Core.Bridges
{
try
{
- if (Debug.Level >= 1)
- Debug.Console(1, this, "EiscApiAdvanced change: {0} {1}={2}", args.Sig.Type, args.Sig.Number, args.Sig.StringValue);
+ Debug.Console(2, this, "EiscApiAdvanced change: {0} {1}={2}", args.Sig.Type, args.Sig.Number, args.Sig.StringValue);
var uo = args.Sig.UserObject;
if (uo == null) return;
diff --git a/src/PepperDash.Essentials.Core/Factory/DeviceFactory.cs b/src/PepperDash.Essentials.Core/Factory/DeviceFactory.cs
index bfc32661..87dc54b6 100644
--- a/src/PepperDash.Essentials.Core/Factory/DeviceFactory.cs
+++ b/src/PepperDash.Essentials.Core/Factory/DeviceFactory.cs
@@ -189,7 +189,7 @@ namespace PepperDash.Essentials.Core
CrestronConsole.ConsoleCommandResponse(
@"Type: '{0}'
CType: '{1}'
- Description: {2}", type.Key, cType, description);
+ Description: {2}{3}", type.Key, cType, description, CrestronEnvironment.NewLine);
}
}
diff --git a/src/PepperDash.Essentials.Core/PepperDash.Essentials.Core.csproj b/src/PepperDash.Essentials.Core/PepperDash.Essentials.Core.csproj
index ab2751d8..7ff80505 100644
--- a/src/PepperDash.Essentials.Core/PepperDash.Essentials.Core.csproj
+++ b/src/PepperDash.Essentials.Core/PepperDash.Essentials.Core.csproj
@@ -26,7 +26,7 @@
Full
-
+
diff --git a/src/PepperDash.Essentials.Core/UI/TouchpanelBase.cs b/src/PepperDash.Essentials.Core/UI/TouchpanelBase.cs
index c7be5048..1ffec438 100644
--- a/src/PepperDash.Essentials.Core/UI/TouchpanelBase.cs
+++ b/src/PepperDash.Essentials.Core/UI/TouchpanelBase.cs
@@ -154,8 +154,7 @@ namespace PepperDash.Essentials.Core.UI
private void Panel_SigChange(object currentDevice, Crestron.SimplSharpPro.SigEventArgs args)
{
- if (Debug.Level == 2)
- Debug.Console(2, this, "Sig change: {0} {1}={2}", args.Sig.Type, args.Sig.Number, args.Sig.StringValue);
+ Debug.Console(2, this, "Sig change: {0} {1}={2}", args.Sig.Type, args.Sig.Number, args.Sig.StringValue);
var uo = args.Sig.UserObject;
if (uo is Action)
(uo as Action)(args.Sig.BoolValue);
diff --git a/src/PepperDash.Essentials.Core/Web/EssentialsWebApi.cs b/src/PepperDash.Essentials.Core/Web/EssentialsWebApi.cs
index 091ada27..dac1dd19 100644
--- a/src/PepperDash.Essentials.Core/Web/EssentialsWebApi.cs
+++ b/src/PepperDash.Essentials.Core/Web/EssentialsWebApi.cs
@@ -149,7 +149,22 @@ namespace PepperDash.Essentials.Core.Web
{
Name = "DebugSession",
RouteHandler = new DebugSessionRequestHandler()
- }
+ },
+ new HttpCwsRoute("doNotLoadConfigOnNextBoot")
+ {
+ Name = "DoNotLoadConfigOnNextBoot",
+ RouteHandler = new DoNotLoadConfigOnNextBootRequestHandler()
+ },
+ new HttpCwsRoute("restartProgram")
+ {
+ Name = "Restart Program",
+ RouteHandler = new RestartProgramRequestHandler()
+ },
+ new HttpCwsRoute("loadConfig")
+ {
+ Name = "Load Config",
+ RouteHandler = new RestartProgramRequestHandler()
+ }
};
diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/AppDebugRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/AppDebugRequestHandler.cs
index 46a0f980..280e03da 100644
--- a/src/PepperDash.Essentials.Core/Web/RequestHandlers/AppDebugRequestHandler.cs
+++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/AppDebugRequestHandler.cs
@@ -24,7 +24,7 @@ namespace PepperDash.Essentials.Core.Web.RequestHandlers
///
protected override void HandleGet(HttpCwsContext context)
{
- var appDebug = new AppDebug { Level = Debug.Level };
+ var appDebug = new AppDebug { MinimumLevel = Debug.WebsocketMinimumLogLevel };
var body = JsonConvert.SerializeObject(appDebug, Formatting.Indented);
@@ -62,9 +62,9 @@ namespace PepperDash.Essentials.Core.Web.RequestHandlers
var appDebug = new AppDebug();
var requestBody = JsonConvert.DeserializeAnonymousType(data, appDebug);
- Debug.SetDebugLevel(requestBody.Level);
+ Debug.SetWebSocketMinimumDebugLevel(requestBody.MinimumLevel);
- appDebug.Level = Debug.Level;
+ appDebug.MinimumLevel = Debug.WebsocketMinimumLogLevel;
var responseBody = JsonConvert.SerializeObject(appDebug, Formatting.Indented);
context.Response.StatusCode = 200;
@@ -76,7 +76,7 @@ namespace PepperDash.Essentials.Core.Web.RequestHandlers
public class AppDebug
{
- [JsonProperty("level", NullValueHandling = NullValueHandling.Ignore)]
- public int Level { get; set; }
+ [JsonProperty("minimumLevel", NullValueHandling = NullValueHandling.Ignore)]
+ public Serilog.Events.LogEventLevel MinimumLevel { get; set; }
}
}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/DebugSessionRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/DebugSessionRequestHandler.cs
index f97ed31d..9de58657 100644
--- a/src/PepperDash.Essentials.Core/Web/RequestHandlers/DebugSessionRequestHandler.cs
+++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/DebugSessionRequestHandler.cs
@@ -49,6 +49,7 @@ namespace PepperDash.Essentials.Core.Web.RequestHandlers
port = new Random().Next(65435, 65535);
// Start the WS Server
Debug.WebsocketSink.StartServerAndSetPort(port);
+ Debug.SetWebSocketMinimumDebugLevel(Serilog.Events.LogEventLevel.Verbose);
}
var url = Debug.WebsocketSink.Url;
@@ -84,10 +85,11 @@ namespace PepperDash.Essentials.Core.Web.RequestHandlers
{
Debug.WebsocketSink.StopServer();
- context.Response.StatusDescription = "Ending Debug Session";
context.Response.StatusCode = 200;
context.Response.StatusDescription = "OK";
context.Response.End();
+
+ Debug.Console(0, "Websocket Debug Session Stopped");
}
}
diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/DoNotLoadConfigOnNextBootRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/DoNotLoadConfigOnNextBootRequestHandler.cs
new file mode 100644
index 00000000..4ec3bc97
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/DoNotLoadConfigOnNextBootRequestHandler.cs
@@ -0,0 +1,84 @@
+using Crestron.SimplSharp.WebScripting;
+using Newtonsoft.Json;
+using PepperDash.Core;
+using PepperDash.Core.Web.RequestHandlers;
+
+namespace PepperDash.Essentials.Core.Web.RequestHandlers
+{
+ public class DoNotLoadConfigOnNextBootRequestHandler : WebApiBaseRequestHandler
+ {
+ ///
+ /// Constructor
+ ///
+ ///
+ /// base(true) enables CORS support by default
+ ///
+ public DoNotLoadConfigOnNextBootRequestHandler()
+ : base(true)
+ {
+ }
+
+ ///
+ /// Handles GET method requests
+ ///
+ ///
+ protected override void HandleGet(HttpCwsContext context)
+ {
+ var data = new Data
+ {
+ DoNotLoadConfigOnNextBoot = Debug.DoNotLoadConfigOnNextBoot
+ };
+
+ var body = JsonConvert.SerializeObject(data, Formatting.Indented);
+
+ context.Response.StatusCode = 200;
+ context.Response.StatusDescription = "OK";
+ context.Response.Write(body, false);
+ context.Response.End();
+ }
+
+ ///
+ /// Handles POST method requests
+ ///
+ ///
+ protected override void HandlePost(HttpCwsContext context)
+ {
+ if (context.Request.ContentLength < 0)
+ {
+ context.Response.StatusCode = 400;
+ context.Response.StatusDescription = "Bad Request";
+ context.Response.End();
+
+ return;
+ }
+
+ var data = EssentialsWebApiHelpers.GetRequestBody(context.Request);
+ if (string.IsNullOrEmpty(data))
+ {
+ context.Response.StatusCode = 400;
+ context.Response.StatusDescription = "Bad Request";
+ context.Response.End();
+
+ return;
+ }
+
+ var d = new Data();
+ var requestBody = JsonConvert.DeserializeAnonymousType(data, d);
+
+ Debug.SetDoNotLoadConfigOnNextBoot(requestBody.DoNotLoadConfigOnNextBoot);
+
+ var responseBody = JsonConvert.SerializeObject(d, Formatting.Indented);
+
+ context.Response.StatusCode = 200;
+ context.Response.StatusDescription = "OK";
+ context.Response.Write(responseBody, false);
+ context.Response.End();
+ }
+ }
+
+ public class Data
+ {
+ [JsonProperty("doNotLoadConfigOnNextBoot", NullValueHandling = NullValueHandling.Ignore)]
+ public bool DoNotLoadConfigOnNextBoot { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/LoadConfigRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/LoadConfigRequestHandler.cs
new file mode 100644
index 00000000..6975d478
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/LoadConfigRequestHandler.cs
@@ -0,0 +1,37 @@
+using Crestron.SimplSharp;
+using Crestron.SimplSharp.WebScripting;
+using Newtonsoft.Json;
+using PepperDash.Core;
+using PepperDash.Core.Web.RequestHandlers;
+
+namespace PepperDash.Essentials.Core.Web.RequestHandlers
+{
+ public class LoadConfigRequestHandler : WebApiBaseRequestHandler
+ {
+ ///
+ /// Constructor
+ ///
+ ///
+ /// base(true) enables CORS support by default
+ ///
+ public LoadConfigRequestHandler()
+ : base(true)
+ {
+ }
+
+ ///
+ /// Handles POST method requests
+ ///
+ ///
+ protected override void HandlePost(HttpCwsContext context)
+ {
+ var message = "";
+ //Global.ControlSystem.GoWithLoad();
+
+ context.Response.StatusCode = 200;
+ context.Response.StatusDescription = "OK";
+ context.Response.Write(message, false);
+ context.Response.End();
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/RestartProgramRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/RestartProgramRequestHandler.cs
new file mode 100644
index 00000000..0bb568f6
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/RestartProgramRequestHandler.cs
@@ -0,0 +1,38 @@
+using Crestron.SimplSharp;
+using Crestron.SimplSharp.WebScripting;
+using Newtonsoft.Json;
+using PepperDash.Core;
+using PepperDash.Core.Web.RequestHandlers;
+
+namespace PepperDash.Essentials.Core.Web.RequestHandlers
+{
+ public class RestartProgramRequestHandler : WebApiBaseRequestHandler
+ {
+ ///
+ /// Constructor
+ ///
+ ///
+ /// base(true) enables CORS support by default
+ ///
+ public RestartProgramRequestHandler()
+ : base(true)
+ {
+ }
+
+ ///
+ /// Handles POST method requests
+ ///
+ ///
+ protected override void HandlePost(HttpCwsContext context)
+ {
+ var message = "";
+ if(CrestronEnvironment.DevicePlatform == eDevicePlatform.Appliance)
+ CrestronConsole.SendControlSystemCommand($"progres -p:{InitialParametersClass.ApplicationNumber}", ref message);
+
+ context.Response.StatusCode = 200;
+ context.Response.StatusDescription = "OK";
+ context.Response.Write(message, false);
+ context.Response.End();
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Devices.Common/PepperDash.Essentials.Devices.Common.csproj b/src/PepperDash.Essentials.Devices.Common/PepperDash.Essentials.Devices.Common.csproj
index 5d269def..906b53ea 100644
--- a/src/PepperDash.Essentials.Devices.Common/PepperDash.Essentials.Devices.Common.csproj
+++ b/src/PepperDash.Essentials.Devices.Common/PepperDash.Essentials.Devices.Common.csproj
@@ -31,6 +31,6 @@
Full
-
+
\ No newline at end of file
diff --git a/src/PepperDash.Essentials/ControlSystem.cs b/src/PepperDash.Essentials/ControlSystem.cs
index 53bdd678..026c5085 100644
--- a/src/PepperDash.Essentials/ControlSystem.cs
+++ b/src/PepperDash.Essentials/ControlSystem.cs
@@ -67,7 +67,7 @@ namespace PepperDash.Essentials
{
DeterminePlatform();
- if (Debug.DoNotLoadOnNextBoot)
+ if (Debug.DoNotLoadConfigOnNextBoot)
{
CrestronConsole.AddNewConsoleCommand(s => CrestronInvoke.BeginInvoke((o) => GoWithLoad()), "go", "Loads configuration file",
ConsoleAccessLevelEnum.AccessOperator);
@@ -117,7 +117,7 @@ namespace PepperDash.Essentials
DeviceManager.AddDevice(new EssentialsWebApi("essentialsWebApi", "Essentials Web API"));
- if (!Debug.DoNotLoadOnNextBoot)
+ if (!Debug.DoNotLoadConfigOnNextBoot)
{
GoWithLoad();
return;
@@ -235,7 +235,7 @@ namespace PepperDash.Essentials
{
try
{
- Debug.SetDoNotLoadOnNextBoot(false);
+ Debug.SetDoNotLoadConfigOnNextBoot(false);
PluginLoader.AddProgramAssemblies();
diff --git a/src/PepperDash.Essentials/PepperDash.Essentials.csproj b/src/PepperDash.Essentials/PepperDash.Essentials.csproj
index 023a0911..0ff8faab 100644
--- a/src/PepperDash.Essentials/PepperDash.Essentials.csproj
+++ b/src/PepperDash.Essentials/PepperDash.Essentials.csproj
@@ -51,7 +51,7 @@
Full
-
+