Updates from testing System Monitor messaging with AppServer

This commit is contained in:
Neil Dorin
2018-12-14 16:56:17 -07:00
parent f6136a8c77
commit 821f2a6d60
7 changed files with 40 additions and 13 deletions

View File

@@ -67,6 +67,9 @@ namespace PepperDash.Essentials
public CotijaSystemController(string key, string name, CotijaConfig config) : base(key, name) public CotijaSystemController(string key, string name, CotijaConfig config) : base(key, name)
{ {
Config = config; Config = config;
SystemUuid = ConfigReader.ConfigObject.SystemUuid;
Debug.Console(0, this, "Mobile UI controller initializing for server:{0}", config.ServerUrl); Debug.Console(0, this, "Mobile UI controller initializing for server:{0}", config.ServerUrl);
CrestronConsole.AddNewConsoleCommand(AuthorizeSystem, CrestronConsole.AddNewConsoleCommand(AuthorizeSystem,
@@ -97,6 +100,21 @@ namespace PepperDash.Essentials
} }
/// <summary>
/// If config rooms is empty or null then go
/// </summary>
/// <returns></returns>
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();
}
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
@@ -177,7 +195,7 @@ namespace PepperDash.Essentials
else else
{ {
Debug.Console(0, this, "Adding room bridge and sending configuration"); Debug.Console(0, this, "Adding room bridge and sending configuration");
SystemUuid = ConfigReader.ConfigObject.SystemUuid; //SystemUuid = ConfigReader.ConfigObject.SystemUuid;
RegisterSystemToServer(); RegisterSystemToServer();
} }
} }
@@ -190,7 +208,7 @@ namespace PepperDash.Essentials
void bridge_ConfigurationIsReady(object sender, EventArgs e) void bridge_ConfigurationIsReady(object sender, EventArgs e)
{ {
Debug.Console(1, this, "Bridge ready. Registering"); Debug.Console(1, this, "Bridge ready. Registering");
SystemUuid = ConfigReader.ConfigObject.SystemUuid; //SystemUuid = ConfigReader.ConfigObject.SystemUuid;
// send the configuration object to the server // send the configuration object to the server
RegisterSystemToServer(); RegisterSystemToServer();
} }
@@ -210,7 +228,7 @@ namespace PepperDash.Essentials
/// <param name="command"></param> /// <param name="command"></param>
void AuthorizeSystem(string code) void AuthorizeSystem(string code)
{ {
SystemUuid = ConfigReader.ConfigObject.SystemUuid; //SystemUuid = ConfigReader.ConfigObject.SystemUuid;
if (string.IsNullOrEmpty(SystemUuid)) if (string.IsNullOrEmpty(SystemUuid))
{ {
@@ -315,7 +333,6 @@ namespace PepperDash.Essentials
void ConnectWebsocketClient() void ConnectWebsocketClient()
{ {
Debug.Console(1, this, "Initializing Stream client to server."); Debug.Console(1, this, "Initializing Stream client to server.");
if (WSClient != null) if (WSClient != null)

View File

@@ -68,11 +68,14 @@ namespace PepperDash.Essentials.AppServer.Messengers
/// <param name="contentObject">The contents of the content object</param> /// <param name="contentObject">The contents of the content object</param>
protected void PostStatusMessage(object contentObject) protected void PostStatusMessage(object contentObject)
{ {
AppServerController.SendMessageToServer(JObject.FromObject(new if (AppServerController != null)
{ {
type = MessagePath, AppServerController.SendMessageToServer(JObject.FromObject(new
content = contentObject {
})); type = MessagePath,
content = contentObject
}));
}
} }
} }
} }

View File

@@ -6,6 +6,7 @@ using Crestron.SimplSharp;
using Newtonsoft.Json; using Newtonsoft.Json;
using PepperDash.Core;
using PepperDash.Essentials.Core.Monitoring; using PepperDash.Essentials.Core.Monitoring;
namespace PepperDash.Essentials.AppServer.Messengers namespace PepperDash.Essentials.AppServer.Messengers
@@ -45,6 +46,8 @@ namespace PepperDash.Essentials.AppServer.Messengers
{ {
var programInfo = JsonConvert.DeserializeObject<ProgramInfo>(serializedProgramInfo); var programInfo = JsonConvert.DeserializeObject<ProgramInfo>(serializedProgramInfo);
Debug.Console(2, "Posting Status Message: {0}", programInfo.ToString());
PostStatusMessage(programInfo); PostStatusMessage(programInfo);
} }
@@ -70,6 +73,8 @@ namespace PepperDash.Essentials.AppServer.Messengers
void SendSystemMonitorStatusMessage() void SendSystemMonitorStatusMessage()
{ {
Debug.Console(2, "Posting System Monitor Status Message.");
// This takes a while, launch a new thread // This takes a while, launch a new thread
CrestronInvoke.BeginInvoke((o) => CrestronInvoke.BeginInvoke((o) =>
{ {

View File

@@ -30,7 +30,7 @@ namespace PepperDash.Essentials
var typeName = dc.Type.ToLower(); var typeName = dc.Type.ToLower();
var groupName = dc.Group.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") if (typeName == "eiscapi")
{ {

View File

@@ -23,7 +23,7 @@ namespace PepperDash.Essentials.Bridges
joinMap.OffsetJoinNumbers(joinStart); 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]); systemMonitorController.TimeZoneFeedback.LinkInputSig(trilist.UShortInput[joinMap.TimeZone]);
//trilist.SetUShortSigAction(joinMap.TimeZone, new Action<ushort>(u => systemMonitorController.SetTimeZone(u))); //trilist.SetUShortSigAction(joinMap.TimeZone, new Action<ushort>(u => systemMonitorController.SetTimeZone(u)));
@@ -44,7 +44,7 @@ namespace PepperDash.Essentials.Bridges
// TODO: link feedbacks for each program slot // TODO: link feedbacks for each program slot
var programNumber = p.Value.Program.Number; 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<bool> trilist.SetBoolSigAction(programSlotJoinStart + joinMap.ProgramStart, new Action<bool>
(b => SystemMonitor.ProgramCollection[programNumber].OperatingState = eProgramOperatingState.Start)); (b => SystemMonitor.ProgramCollection[programNumber].OperatingState = eProgramOperatingState.Start));

View File

@@ -233,6 +233,8 @@ namespace PepperDash.Essentials
var messenger = new PepperDash.Essentials.AppServer.Messengers.SystemMonitorMessenger var messenger = new PepperDash.Essentials.AppServer.Messengers.SystemMonitorMessenger
(key, sysMon, "/device/systemMonitor"); (key, sysMon, "/device/systemMonitor");
messenger.RegisterWithAppServer(appServer);
DeviceManager.AddDevice(messenger); DeviceManager.AddDevice(messenger);