From 821f2a6d607a69217cba98990cc59ab9f0cf2223 Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Fri, 14 Dec 2018 16:56:17 -0700 Subject: [PATCH] Updates from testing System Monitor messaging with AppServer --- .../AppServer/CotijaSystemController.cs | 25 ++++++++++++++++--- .../AppServer/Messengers/MessengerBase.cs | 13 ++++++---- .../Messengers/SystemMonitorMessenger.cs | 5 ++++ PepperDashEssentials/Bridges/BridgeFactory.cs | 2 +- .../Bridges/SystemMonitorBridge.cs | 4 +-- PepperDashEssentials/ControlSystem.cs | 2 ++ essentials-framework | 2 +- 7 files changed, 40 insertions(+), 13 deletions(-) diff --git a/PepperDashEssentials/AppServer/CotijaSystemController.cs b/PepperDashEssentials/AppServer/CotijaSystemController.cs index 74ca8e9d..b2e3c9dd 100644 --- a/PepperDashEssentials/AppServer/CotijaSystemController.cs +++ b/PepperDashEssentials/AppServer/CotijaSystemController.cs @@ -67,6 +67,9 @@ namespace PepperDash.Essentials public CotijaSystemController(string key, string name, CotijaConfig config) : base(key, name) { Config = config; + + SystemUuid = ConfigReader.ConfigObject.SystemUuid; + Debug.Console(0, this, "Mobile UI controller initializing for server:{0}", config.ServerUrl); CrestronConsole.AddNewConsoleCommand(AuthorizeSystem, @@ -97,6 +100,21 @@ namespace PepperDash.Essentials } + /// + /// If config rooms is empty or null then go + /// + /// + public override bool CustomActivate() + { + if (ConfigReader.ConfigObject.Rooms == null || ConfigReader.ConfigObject.Rooms.Count == 0) + { + Debug.Console(1, this, Debug.ErrorLogLevel.Notice, "Config contains no rooms. Registering with Server."); + RegisterSystemToServer(); + } + + return base.CustomActivate(); + } + /// /// /// @@ -177,7 +195,7 @@ namespace PepperDash.Essentials else { Debug.Console(0, this, "Adding room bridge and sending configuration"); - SystemUuid = ConfigReader.ConfigObject.SystemUuid; + //SystemUuid = ConfigReader.ConfigObject.SystemUuid; RegisterSystemToServer(); } } @@ -190,7 +208,7 @@ namespace PepperDash.Essentials void bridge_ConfigurationIsReady(object sender, EventArgs e) { Debug.Console(1, this, "Bridge ready. Registering"); - SystemUuid = ConfigReader.ConfigObject.SystemUuid; + //SystemUuid = ConfigReader.ConfigObject.SystemUuid; // send the configuration object to the server RegisterSystemToServer(); } @@ -210,7 +228,7 @@ namespace PepperDash.Essentials /// void AuthorizeSystem(string code) { - SystemUuid = ConfigReader.ConfigObject.SystemUuid; + //SystemUuid = ConfigReader.ConfigObject.SystemUuid; if (string.IsNullOrEmpty(SystemUuid)) { @@ -315,7 +333,6 @@ namespace PepperDash.Essentials void ConnectWebsocketClient() { - Debug.Console(1, this, "Initializing Stream client to server."); if (WSClient != null) diff --git a/PepperDashEssentials/AppServer/Messengers/MessengerBase.cs b/PepperDashEssentials/AppServer/Messengers/MessengerBase.cs index 30f79da2..f9833afb 100644 --- a/PepperDashEssentials/AppServer/Messengers/MessengerBase.cs +++ b/PepperDashEssentials/AppServer/Messengers/MessengerBase.cs @@ -68,11 +68,14 @@ namespace PepperDash.Essentials.AppServer.Messengers /// The contents of the content object protected void PostStatusMessage(object contentObject) { - AppServerController.SendMessageToServer(JObject.FromObject(new - { - type = MessagePath, - content = contentObject - })); + if (AppServerController != null) + { + AppServerController.SendMessageToServer(JObject.FromObject(new + { + type = MessagePath, + content = contentObject + })); + } } } } \ No newline at end of file diff --git a/PepperDashEssentials/AppServer/Messengers/SystemMonitorMessenger.cs b/PepperDashEssentials/AppServer/Messengers/SystemMonitorMessenger.cs index 51030e92..6f59cf05 100644 --- a/PepperDashEssentials/AppServer/Messengers/SystemMonitorMessenger.cs +++ b/PepperDashEssentials/AppServer/Messengers/SystemMonitorMessenger.cs @@ -6,6 +6,7 @@ using Crestron.SimplSharp; using Newtonsoft.Json; +using PepperDash.Core; using PepperDash.Essentials.Core.Monitoring; namespace PepperDash.Essentials.AppServer.Messengers @@ -45,6 +46,8 @@ namespace PepperDash.Essentials.AppServer.Messengers { var programInfo = JsonConvert.DeserializeObject(serializedProgramInfo); + Debug.Console(2, "Posting Status Message: {0}", programInfo.ToString()); + PostStatusMessage(programInfo); } @@ -70,6 +73,8 @@ namespace PepperDash.Essentials.AppServer.Messengers void SendSystemMonitorStatusMessage() { + Debug.Console(2, "Posting System Monitor Status Message."); + // This takes a while, launch a new thread CrestronInvoke.BeginInvoke((o) => { diff --git a/PepperDashEssentials/Bridges/BridgeFactory.cs b/PepperDashEssentials/Bridges/BridgeFactory.cs index 90adc115..8079aa80 100644 --- a/PepperDashEssentials/Bridges/BridgeFactory.cs +++ b/PepperDashEssentials/Bridges/BridgeFactory.cs @@ -30,7 +30,7 @@ namespace PepperDash.Essentials var typeName = dc.Type.ToLower(); var groupName = dc.Group.ToLower(); - Debug.Console(0, "Name {0}, Key {1}, Type {2}, Properties {3}", name, key, type, properties.ToString()); + //Debug.Console(2, "Name {0}, Key {1}, Type {2}, Properties {3}", name, key, type, properties.ToString()); if (typeName == "eiscapi") { diff --git a/PepperDashEssentials/Bridges/SystemMonitorBridge.cs b/PepperDashEssentials/Bridges/SystemMonitorBridge.cs index ba0c1874..3702792f 100644 --- a/PepperDashEssentials/Bridges/SystemMonitorBridge.cs +++ b/PepperDashEssentials/Bridges/SystemMonitorBridge.cs @@ -23,7 +23,7 @@ namespace PepperDash.Essentials.Bridges joinMap.OffsetJoinNumbers(joinStart); - Debug.Console(1, systemMonitorController, "Linking API starting at join: {0}", joinStart); + //Debug.Console(1, systemMonitorController, "Linking API starting at join: {0}", joinStart); systemMonitorController.TimeZoneFeedback.LinkInputSig(trilist.UShortInput[joinMap.TimeZone]); //trilist.SetUShortSigAction(joinMap.TimeZone, new Action(u => systemMonitorController.SetTimeZone(u))); @@ -44,7 +44,7 @@ namespace PepperDash.Essentials.Bridges // TODO: link feedbacks for each program slot var programNumber = p.Value.Program.Number; - Debug.Console(1, systemMonitorController, "Linking API for Program Slot: {0} starting at join: {1}", programNumber, programSlotJoinStart); + //Debug.Console(1, systemMonitorController, "Linking API for Program Slot: {0} starting at join: {1}", programNumber, programSlotJoinStart); trilist.SetBoolSigAction(programSlotJoinStart + joinMap.ProgramStart, new Action (b => SystemMonitor.ProgramCollection[programNumber].OperatingState = eProgramOperatingState.Start)); diff --git a/PepperDashEssentials/ControlSystem.cs b/PepperDashEssentials/ControlSystem.cs index 63e417f8..de3fca36 100644 --- a/PepperDashEssentials/ControlSystem.cs +++ b/PepperDashEssentials/ControlSystem.cs @@ -233,6 +233,8 @@ namespace PepperDash.Essentials var messenger = new PepperDash.Essentials.AppServer.Messengers.SystemMonitorMessenger (key, sysMon, "/device/systemMonitor"); + messenger.RegisterWithAppServer(appServer); + DeviceManager.AddDevice(messenger); diff --git a/essentials-framework b/essentials-framework index 3d81472a..1d210d80 160000 --- a/essentials-framework +++ b/essentials-framework @@ -1 +1 @@ -Subproject commit 3d81472afdcf8713ec92c44d9a1521bfb2261738 +Subproject commit 1d210d80f8c142d5281bbc7138aab17bc4c14c7b