diff --git a/PepperDashEssentials/AppServer/Messengers/SystemMonitorMessenger.cs b/PepperDashEssentials/AppServer/Messengers/SystemMonitorMessenger.cs index 080fbd78..9e41722e 100644 --- a/PepperDashEssentials/AppServer/Messengers/SystemMonitorMessenger.cs +++ b/PepperDashEssentials/AppServer/Messengers/SystemMonitorMessenger.cs @@ -1,11 +1,5 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using Crestron.SimplSharp; - -using Newtonsoft.Json; - using PepperDash.Core; using PepperDash.Essentials.Core.Monitoring; @@ -23,11 +17,11 @@ namespace PepperDash.Essentials.AppServer.Messengers SysMon = sysMon; - SysMon.SystemMonitorPropertiesChanged += new EventHandler(SysMon_SystemMonitorPropertiesChanged); + SysMon.SystemMonitorPropertiesChanged += SysMon_SystemMonitorPropertiesChanged; foreach (var p in SysMon.ProgramStatusFeedbackCollection) { - p.Value.ProgramInfoChanged += new EventHandler(ProgramInfoChanged); + p.Value.ProgramInfoChanged += ProgramInfoChanged; } CrestronConsole.AddNewConsoleCommand(s => SendFullStatusMessage(), "SendFullSysMonStatus", "Sends the full System Monitor Status", ConsoleAccessLevelEnum.AccessOperator); @@ -72,18 +66,15 @@ namespace PepperDash.Essentials.AppServer.Messengers Debug.Console(1, "Posting System Monitor Status Message."); // This takes a while, launch a new thread - CrestronInvoke.BeginInvoke((o) => + CrestronInvoke.BeginInvoke(o => PostStatusMessage(new { - PostStatusMessage(new - { - timeZone = SysMon.TimeZoneFeedback.IntValue, - timeZoneName = SysMon.TimeZoneTextFeedback.StringValue, - ioControllerVersion = SysMon.IOControllerVersionFeedback.StringValue, - snmpVersion = SysMon.SnmpVersionFeedback.StringValue, - bacnetVersion = SysMon.BACnetAppVersionFeedback.StringValue, - controllerVersion = SysMon.ControllerVersionFeedback.StringValue - }); - }); + timeZone = SysMon.TimeZoneFeedback.IntValue, + timeZoneName = SysMon.TimeZoneTextFeedback.StringValue, + ioControllerVersion = SysMon.IoControllerVersionFeedback.StringValue, + snmpVersion = SysMon.SnmpVersionFeedback.StringValue, + bacnetVersion = SysMon.BaCnetAppVersionFeedback.StringValue, + controllerVersion = SysMon.ControllerVersionFeedback.StringValue + })); } protected override void CustomRegisterWithAppServer(MobileControlSystemController appServerController) diff --git a/PepperDashEssentials/Bridges/JoinMaps/SystemMonitorJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/SystemMonitorJoinMap.cs index 6358700f..f9f41b4c 100644 --- a/PepperDashEssentials/Bridges/JoinMaps/SystemMonitorJoinMap.cs +++ b/PepperDashEssentials/Bridges/JoinMaps/SystemMonitorJoinMap.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using PepperDash.Essentials.Core; +using PepperDash.Essentials.Core; namespace PepperDash.Essentials.Bridges { diff --git a/PepperDashEssentials/Bridges/SystemMonitorBridge.cs b/PepperDashEssentials/Bridges/SystemMonitorBridge.cs index 4e66ea08..493bc58e 100644 --- a/PepperDashEssentials/Bridges/SystemMonitorBridge.cs +++ b/PepperDashEssentials/Bridges/SystemMonitorBridge.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharpPro.DeviceSupport; +using Crestron.SimplSharpPro.DeviceSupport; using Crestron.SimplSharpPro.Diagnostics; using PepperDash.Core; using PepperDash.Essentials.Core; @@ -17,7 +12,7 @@ namespace PepperDash.Essentials.Bridges { public static void LinkToApi(this SystemMonitorController systemMonitorController, BasicTriList trilist, uint joinStart, string joinMapKey) { - SystemMonitorJoinMap joinMap = new SystemMonitorJoinMap(); + var joinMap = new SystemMonitorJoinMap(); var joinMapSerialized = JoinMapHelper.GetJoinMapForDevice(joinMapKey); @@ -30,12 +25,11 @@ namespace PepperDash.Essentials.Bridges Debug.Console(2, 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))); systemMonitorController.TimeZoneTextFeedback.LinkInputSig(trilist.StringInput[joinMap.TimeZoneName]); - systemMonitorController.IOControllerVersionFeedback.LinkInputSig(trilist.StringInput[joinMap.IOControllerVersion]); + systemMonitorController.IoControllerVersionFeedback.LinkInputSig(trilist.StringInput[joinMap.IOControllerVersion]); systemMonitorController.SnmpVersionFeedback.LinkInputSig(trilist.StringInput[joinMap.SnmpAppVersion]); - systemMonitorController.BACnetAppVersionFeedback.LinkInputSig(trilist.StringInput[joinMap.BACnetAppVersion]); + systemMonitorController.BaCnetAppVersionFeedback.LinkInputSig(trilist.StringInput[joinMap.BACnetAppVersion]); systemMonitorController.ControllerVersionFeedback.LinkInputSig(trilist.StringInput[joinMap.ControllerVersion]); // iterate the program status feedback collection and map all the joins @@ -45,20 +39,16 @@ namespace PepperDash.Essentials.Bridges { var programNumber = p.Value.Program.Number; - trilist.SetBoolSigAction(programSlotJoinStart + joinMap.ProgramStart, new Action - (b => SystemMonitor.ProgramCollection[programNumber].OperatingState = eProgramOperatingState.Start)); + trilist.SetBoolSigAction(programSlotJoinStart + joinMap.ProgramStart, b => SystemMonitor.ProgramCollection[programNumber].OperatingState = eProgramOperatingState.Start); p.Value.ProgramStartedFeedback.LinkInputSig(trilist.BooleanInput[programSlotJoinStart + joinMap.ProgramStart]); - trilist.SetBoolSigAction(programSlotJoinStart + joinMap.ProgramStop, new Action - (b => SystemMonitor.ProgramCollection[programNumber].OperatingState = eProgramOperatingState.Stop)); + trilist.SetBoolSigAction(programSlotJoinStart + joinMap.ProgramStop, b => SystemMonitor.ProgramCollection[programNumber].OperatingState = eProgramOperatingState.Stop); p.Value.ProgramStoppedFeedback.LinkInputSig(trilist.BooleanInput[programSlotJoinStart + joinMap.ProgramStop]); - trilist.SetBoolSigAction(programSlotJoinStart + joinMap.ProgramRegister, new Action - (b => SystemMonitor.ProgramCollection[programNumber].RegistrationState = eProgramRegistrationState.Register)); + trilist.SetBoolSigAction(programSlotJoinStart + joinMap.ProgramRegister, b => SystemMonitor.ProgramCollection[programNumber].RegistrationState = eProgramRegistrationState.Register); p.Value.ProgramRegisteredFeedback.LinkInputSig(trilist.BooleanInput[programSlotJoinStart + joinMap.ProgramRegister]); - trilist.SetBoolSigAction(programSlotJoinStart + joinMap.ProgramUnregister, new Action - (b => SystemMonitor.ProgramCollection[programNumber].RegistrationState = eProgramRegistrationState.Unregister)); + trilist.SetBoolSigAction(programSlotJoinStart + joinMap.ProgramUnregister, b => SystemMonitor.ProgramCollection[programNumber].RegistrationState = eProgramRegistrationState.Unregister); p.Value.ProgramUnregisteredFeedback.LinkInputSig(trilist.BooleanInput[programSlotJoinStart + joinMap.ProgramUnregister]); p.Value.ProgramNameFeedback.LinkInputSig(trilist.StringInput[programSlotJoinStart + joinMap.ProgramName]); diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Monitoring/SystemMonitorController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Monitoring/SystemMonitorController.cs index a2b1e365..3233cc8e 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Monitoring/SystemMonitorController.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Monitoring/SystemMonitorController.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using Crestron.SimplSharp; using Crestron.SimplSharpPro.Diagnostics; - using PepperDash.Core; using Newtonsoft.Json; using Newtonsoft.Json.Converters; @@ -26,7 +25,7 @@ namespace PepperDash.Essentials.Core.Monitoring public StringFeedback SnmpVersionFeedback { get; set; } public StringFeedback BaCnetAppVersionFeedback { get; set; } public StringFeedback ControllerVersionFeedback { get; set; } - + public SystemMonitorController(string key) : base(key) { @@ -34,8 +33,6 @@ namespace PepperDash.Essentials.Core.Monitoring SystemMonitor.ProgramInitialization.ProgramInitializationUnderUserControl = true; - //CrestronConsole.AddNewConsoleCommand(RefreshSystemMonitorData, "RefreshSystemMonitor", "Refreshes System Monitor Feedbacks", ConsoleAccessLevelEnum.AccessOperator); - TimeZoneFeedback = new IntFeedback(() => SystemMonitor.TimeZoneInformation.TimeZoneNumber); TimeZoneTextFeedback = new StringFeedback(() => SystemMonitor.TimeZoneInformation.TimeZoneName); @@ -44,12 +41,6 @@ namespace PepperDash.Essentials.Core.Monitoring BaCnetAppVersionFeedback = new StringFeedback(() => SystemMonitor.VersionInformation.BACNetVersion); ControllerVersionFeedback = new StringFeedback(() => SystemMonitor.VersionInformation.ControlSystemVersion); - //var status = string.Format("System Monitor Status: \r TimeZone: {0}\rTimeZoneText: {1}\rIOControllerVersion: {2}\rSnmpAppVersionFeedback: {3}\rBACnetAppVersionFeedback: {4}\rControllerVersionFeedback: {5}", - // SystemMonitor.TimeZoneInformation.TimeZoneNumber, SystemMonitor.TimeZoneInformation.TimeZoneName, SystemMonitor.VersionInformation.IOPVersion, SystemMonitor.VersionInformation.SNMPVersion, - // SystemMonitor.VersionInformation.BACNetVersion, SystemMonitor.VersionInformation.ControlSystemVersion); - - //Debug.Console(1, this, status); - ProgramStatusFeedbackCollection = new Dictionary(); foreach (var prog in SystemMonitor.ProgramCollection) @@ -88,7 +79,7 @@ namespace PepperDash.Essentials.Core.Monitoring var handler = SystemMonitorPropertiesChanged; if (handler != null) { - handler(this, new EventArgs()); + handler(this, new EventArgs()); } } @@ -124,15 +115,15 @@ namespace PepperDash.Essentials.Core.Monitoring program.ProgramInfo.OperatingState = args.OperatingState; - //program.GetProgramInfo(); + //program.GetProgramInfo(); - if (args.OperatingState == eProgramOperatingState.Start) - program.GetProgramInfo(); - else - { - program.AggregatedProgramInfoFeedback.FireUpdate(); - program.OnProgramInfoChanged(); - } + if (args.OperatingState == eProgramOperatingState.Start) + program.GetProgramInfo(); + else + { + program.AggregatedProgramInfoFeedback.FireUpdate(); + program.OnProgramInfoChanged(); + } } else if (args.EventType == eProgramChangeEventType.RegistrationState) { @@ -142,7 +133,7 @@ namespace PepperDash.Essentials.Core.Monitoring program.ProgramInfo.RegistrationState = args.RegistrationState; program.GetProgramInfo(); - } + } } /// @@ -190,8 +181,10 @@ namespace PepperDash.Essentials.Core.Monitoring ProgramStartedFeedback = new BoolFeedback(() => Program.OperatingState == eProgramOperatingState.Start); ProgramStoppedFeedback = new BoolFeedback(() => Program.OperatingState == eProgramOperatingState.Stop); - ProgramRegisteredFeedback = new BoolFeedback(() => Program.RegistrationState == eProgramRegistrationState.Register); - ProgramUnregisteredFeedback = new BoolFeedback(() => Program.RegistrationState == eProgramRegistrationState.Unregister); + ProgramRegisteredFeedback = + new BoolFeedback(() => Program.RegistrationState == eProgramRegistrationState.Register); + ProgramUnregisteredFeedback = + new BoolFeedback(() => Program.RegistrationState == eProgramRegistrationState.Unregister); ProgramNameFeedback = new StringFeedback(() => ProgramInfo.ProgramFile); ProgramCompileTimeFeedback = new StringFeedback(() => ProgramInfo.CompileTime); @@ -211,13 +204,14 @@ namespace PepperDash.Essentials.Core.Monitoring CrestronInvoke.BeginInvoke(GetProgramInfo); } - private void GetProgramInfo(object o) + private void GetProgramInfo(object o) { Debug.Console(2, "Attempting to get program info for slot: {0}", Program.Number); string response = null; - var success = CrestronConsole.SendControlSystemCommand(string.Format("progcomments:{0}", Program.Number), ref response); + var success = CrestronConsole.SendControlSystemCommand( + string.Format("progcomments:{0}", Program.Number), ref response); if (success) { @@ -238,7 +232,8 @@ namespace PepperDash.Essentials.Core.Monitoring ProgramInfo.FriendlyName = ParseConsoleData(response, "Friendly Name", ": ", "\n"); ProgramInfo.ApplicationName = ParseConsoleData(response, "Application Name", ": ", "\n"); ProgramInfo.ProgramTool = ParseConsoleData(response, "Program Tool", ": ", "\n"); - ProgramInfo.MinFirmwareVersion = ParseConsoleData(response, "Min Firmware Version", ": ", "\n"); + ProgramInfo.MinFirmwareVersion = ParseConsoleData(response, "Min Firmware Version", ": ", + "\n"); ProgramInfo.PlugInVersion = ParseConsoleData(response, "PlugInVersion", ": ", "\n"); } else if (ProgramInfo.ProgramFile.Contains(".smw")) @@ -254,7 +249,9 @@ namespace PepperDash.Essentials.Core.Monitoring } else { - Debug.Console(2, "Bad or incomplete console command response. Initializing ProgramInfo for slot: {0}", Program.Number); + Debug.Console(2, + "Bad or incomplete console command response. Initializing ProgramInfo for slot: {0}", + Program.Number); // Assume no valid program info. Constructing a new object will wipe all properties ProgramInfo = new ProgramInfo(Program.Number) @@ -297,10 +294,10 @@ namespace PepperDash.Essentials.Core.Monitoring try { - //Debug.Console(2, "ParseConsoleData Data: {0}, Line {1}, startStirng {2}, endString {3}", data, line, startString, endString); var linePosition = data.IndexOf(line, StringComparison.Ordinal); - var startPosition = data.IndexOf(startString, linePosition, StringComparison.Ordinal) + startString.Length; + var startPosition = data.IndexOf(startString, linePosition, StringComparison.Ordinal) + + startString.Length; var endPosition = data.IndexOf(endString, startPosition, StringComparison.Ordinal); outputData = data.Substring(startPosition, endPosition - startPosition).Trim(); //Debug.Console(2, "ParseConsoleData Return: {0}", outputData); @@ -313,7 +310,6 @@ namespace PepperDash.Essentials.Core.Monitoring return outputData; } } - } /// @@ -326,32 +322,39 @@ namespace PepperDash.Essentials.Core.Monitoring [JsonProperty("programNumber")] public uint ProgramNumber { get; private set; } - [JsonConverter(typeof(StringEnumConverter))] + [JsonConverter(typeof (StringEnumConverter))] [JsonProperty("operatingState")] public eProgramOperatingState OperatingState { get; set; } - [JsonConverter(typeof(StringEnumConverter))] + [JsonConverter(typeof (StringEnumConverter))] [JsonProperty("registrationState")] public eProgramRegistrationState RegistrationState { get; set; } [JsonProperty("programFile")] public string ProgramFile { get; set; } + [JsonProperty("friendlyName")] public string FriendlyName { get; set; } + [JsonProperty("compilerRevision")] public string CompilerRevision { get; set; } + [JsonProperty("compileTime")] public string CompileTime { get; set; } + [JsonProperty("include4Dat")] public string Include4Dat { get; set; } // SIMPL Windows properties [JsonProperty("systemName")] public string SystemName { get; set; } + [JsonProperty("crestronDb")] public string CrestronDb { get; set; } + [JsonProperty("environment")] public string Environment { get; set; } + [JsonProperty("programmer")] public string Programmer { get; set; } @@ -359,10 +362,13 @@ namespace PepperDash.Essentials.Core.Monitoring // SSP Properties [JsonProperty("applicationName")] public string ApplicationName { get; set; } + [JsonProperty("programTool")] public string ProgramTool { get; set; } + [JsonProperty("minFirmwareVersion")] public string MinFirmwareVersion { get; set; } + [JsonProperty("plugInVersion")] public string PlugInVersion { get; set; }