diff --git a/src/PepperDash.Essentials.Core/Comm and IR/ComPortController.cs b/src/PepperDash.Essentials.Core/Comm and IR/ComPortController.cs index 6abed156..ec679fae 100644 --- a/src/PepperDash.Essentials.Core/Comm and IR/ComPortController.cs +++ b/src/PepperDash.Essentials.Core/Comm and IR/ComPortController.cs @@ -91,13 +91,17 @@ namespace PepperDash.Essentials.Core return; } - var result = Port.Register(); - if (result != eDeviceRegistrationUnRegistrationResponse.Success) + + if (Port.Parent is CrestronControlSystem || Port.Parent is CenIoCom102) { - this.LogError($"Cannot register {Key} using {Port.Parent.GetType().Name}-comport-{Port.ID} (result == {result})"); - return; + var result = Port.Register(); + if (result != eDeviceRegistrationUnRegistrationResponse.Success) + { + this.LogError($"Cannot register {Key} using {Port.Parent.GetType().Name}-comport-{Port.ID} (result == {result})"); + return; + } + this.LogInformation($"Successfully registered {Key} using {Port.Parent.GetType().Name}-comport-{Port.ID} (result == {result})"); } - this.LogInformation($"Successfully registered {Key} using {Port.Parent.GetType().Name}-comport-{Port.ID} (result == {result})"); var specResult = Port.SetComPortSpec(Spec); if (specResult != 0) @@ -107,38 +111,6 @@ namespace PepperDash.Essentials.Core } this.LogInformation($"Successfully set comspec for {Key} using {Port.Parent.GetType().Name}-comport-{Port.ID} (result == {specResult})"); - - // TODO [ ] - Remove debug logging once verified working - // if (Port.Parent is CenIoCom102) - // { - // Port.PropertyChanged += (s, e) => - // { - // this.LogInformation($@"RegisterAndConfigureComPort: PropertyChanged Fired >> - // comPort-'{Port.ID}', - // Property Changed-'{e.Property}', - // Value Changed-'{e.Value}', - // deviceName-'{Port.DeviceName}', - // parentDevice-'{Port.ParentDevice}', - // parent-`{Port.Parent}`, - // online-`{Port.IsOnline}`, - // present-`{Port.Present}`, - // supportedBaudRates-'{Port.SupportedBaudRates}'"); - // }; - // Port.ExtendedInformationChanged += (s, e) => - // { - - // this.LogInformation($@"RegisterAndConfigureComPort: ExtendedInformationChanged Fired >> - // comPort-'{Port.ID}', - // {e.Protocol}, - // {e.BaudRate}, - // {e.Parity}, - // {e.DataBits}, - // {e.StopBits}, - // HW Handshake-'{e.HardwareHandshakeSetting}', - // SW Handshake-'{e.SoftwareHandshakeSetting}'"); - // }; - // } - Port.SerialDataReceived += Port_SerialDataReceived; } diff --git a/src/PepperDash.Essentials.Core/Config/Essentials/EssentialsConfig.cs b/src/PepperDash.Essentials.Core/Config/Essentials/EssentialsConfig.cs index 7108762b..b08f458c 100644 --- a/src/PepperDash.Essentials.Core/Config/Essentials/EssentialsConfig.cs +++ b/src/PepperDash.Essentials.Core/Config/Essentials/EssentialsConfig.cs @@ -11,11 +11,11 @@ using PepperDash.Core; namespace PepperDash.Essentials.Core.Config { - /// - /// Loads the ConfigObject from the file - /// - public class EssentialsConfig : BasicConfig - { + /// + /// Loads the ConfigObject from the file + /// + public class EssentialsConfig : BasicConfig + { /// /// Gets or sets the SystemUrl /// @@ -32,21 +32,22 @@ namespace PepperDash.Essentials.Core.Config /// Gets the SystemUuid extracted from the SystemUrl /// [JsonProperty("systemUuid")] - public string SystemUuid + public string SystemUuid { get { - if (string.IsNullOrEmpty(SystemUrl)) - return "missing url"; + if (string.IsNullOrEmpty(SystemUrl)) + return "missing url"; - if (SystemUrl.Contains("#")) - { - var result = Regex.Match(SystemUrl, @"https?:\/\/.*\/systems\/(.*)\/#.*"); - string uuid = result.Groups[1].Value; - return uuid; - } else - { - var result = Regex.Match(SystemUrl, @"https?:\/\/.*\/systems\/(.*)\/.*"); + if (SystemUrl.Contains("#")) + { + var result = Regex.Match(SystemUrl, @"https?:\/\/.*\/systems\/(.*)\/#.*"); + string uuid = result.Groups[1].Value; + return uuid; + } + else + { + var result = Regex.Match(SystemUrl, @"https?:\/\/.*\/systems\/detail\/(.*)\/.*"); string uuid = result.Groups[1].Value; return uuid; } @@ -57,21 +58,22 @@ namespace PepperDash.Essentials.Core.Config /// Gets the TemplateUuid extracted from the TemplateUrl /// [JsonProperty("templateUuid")] - public string TemplateUuid + public string TemplateUuid { get { - if (string.IsNullOrEmpty(TemplateUrl)) - return "missing template url"; + if (string.IsNullOrEmpty(TemplateUrl)) + return "missing template url"; - if (TemplateUrl.Contains("#")) - { - var result = Regex.Match(TemplateUrl, @"https?:\/\/.*\/templates\/(.*)\/#.*"); - string uuid = result.Groups[1].Value; - return uuid; - } else - { - var result = Regex.Match(TemplateUrl, @"https?:\/\/.*\/system-templates\/(.*)\/system-template-versions\/(.*)\/.*"); + if (TemplateUrl.Contains("#")) + { + var result = Regex.Match(TemplateUrl, @"https?:\/\/.*\/templates\/(.*)\/#.*"); + string uuid = result.Groups[1].Value; + return uuid; + } + else + { + var result = Regex.Match(TemplateUrl, @"https?:\/\/.*\/system-templates\/detail\/(.*)\/system-template-versions\/detail\/(.*)\/.*"); string uuid = result.Groups[2].Value; return uuid; } @@ -97,7 +99,7 @@ namespace PepperDash.Essentials.Core.Config { Rooms = new List(); } - } + } /// /// Represents version data for Essentials and its packages @@ -147,7 +149,7 @@ namespace PepperDash.Essentials.Core.Config /// Represents a SystemTemplateConfigs /// public class SystemTemplateConfigs - { + { /// /// Gets or sets the System /// @@ -157,5 +159,5 @@ namespace PepperDash.Essentials.Core.Config /// Gets or sets the Template /// public EssentialsConfig Template { get; set; } - } + } } \ No newline at end of file diff --git a/src/PepperDash.Essentials.Core/Routing/RoutingFeedbackManager.cs b/src/PepperDash.Essentials.Core/Routing/RoutingFeedbackManager.cs index 9afdb33d..c51cec58 100644 --- a/src/PepperDash.Essentials.Core/Routing/RoutingFeedbackManager.cs +++ b/src/PepperDash.Essentials.Core/Routing/RoutingFeedbackManager.cs @@ -98,7 +98,7 @@ namespace PepperDash.Essentials.Core.Routing /// The currently selected input port on the destination device. private void UpdateDestination(IRoutingSinkWithSwitching destination, RoutingInputPort inputPort) { - // Debug.LogMessage(Serilog.Events.LogEventLevel.Verbose, "Updating destination {destination} with inputPort {inputPort}", this,destination?.Key, inputPort?.Key); + Debug.LogMessage(Serilog.Events.LogEventLevel.Verbose, "Updating destination {destination} with inputPort {inputPort}", this, destination?.Key, inputPort?.Key); if(inputPort == null) { diff --git a/src/PepperDash.Essentials.Devices.Common/Generic/GenericSink.cs b/src/PepperDash.Essentials.Devices.Common/Generic/GenericSink.cs index a44eb012..03c58b2c 100644 --- a/src/PepperDash.Essentials.Devices.Common/Generic/GenericSink.cs +++ b/src/PepperDash.Essentials.Devices.Common/Generic/GenericSink.cs @@ -9,7 +9,7 @@ namespace PepperDash.Essentials.Devices.Common.Generic /// /// Represents a GenericSink /// - public class GenericSink : EssentialsDevice, IRoutingSinkWithInputPort + public class GenericSink : EssentialsDevice, IRoutingSinkWithSwitchingWithInputPort { /// /// Initializes a new instance of the GenericSink class @@ -20,7 +20,7 @@ namespace PepperDash.Essentials.Devices.Common.Generic { InputPorts = new RoutingPortCollection(); - var inputPort = new RoutingInputPort(RoutingPortNames.AnyVideoIn, eRoutingSignalType.AudioVideo, eRoutingPortConnectionType.Hdmi, null, this); + var inputPort = new RoutingInputPort(RoutingPortNames.AnyVideoIn, eRoutingSignalType.AudioVideo | eRoutingSignalType.SecondaryAudio, eRoutingPortConnectionType.Hdmi, null, this); InputPorts.Add(inputPort); } @@ -66,6 +66,15 @@ namespace PepperDash.Essentials.Devices.Common.Generic /// Event fired when the current source changes /// public event SourceInfoChangeHandler CurrentSourceChange; + + /// + public event InputChangedEventHandler InputChanged; + + /// + public void ExecuteSwitch(object inputSelector) + { + throw new System.NotImplementedException(); + } } /// diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/MessengerBase.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/MessengerBase.cs index 6fc80adc..3031f4ba 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/MessengerBase.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/MessengerBase.cs @@ -194,7 +194,6 @@ namespace PepperDash.Essentials.AppServer.Messengers { if (!enableMessengerSubscriptions) { - this.LogWarning("Messenger subscriptions not enabled"); return; } @@ -218,7 +217,6 @@ namespace PepperDash.Essentials.AppServer.Messengers { if (!enableMessengerSubscriptions) { - this.LogWarning("Messenger subscriptions not enabled"); return; } @@ -238,7 +236,7 @@ namespace PepperDash.Essentials.AppServer.Messengers return; } - this.LogInformation("Client with ID {clientId} unsubscribed", clientId); + this.LogDebug("Client with ID {clientId} unsubscribed", clientId); } /// @@ -272,7 +270,8 @@ namespace PepperDash.Essentials.AppServer.Messengers } catch (Exception ex) { - this.LogError(ex, "Exception posting status message for {messagePath} to {clientId}", MessagePath, clientId ?? "all clients"); + this.LogError("Exception posting status message for {messagePath} to {clientId}: {message}", MessagePath, clientId ?? "all clients", ex.Message); + this.LogDebug(ex, "Stack trace: "); } } @@ -301,7 +300,8 @@ namespace PepperDash.Essentials.AppServer.Messengers } catch (Exception ex) { - this.LogError(ex, "Exception posting status message for {type} to {clientId}", type, clientId ?? "all clients"); + this.LogError("Exception posting status message for {type} to {clientId}: {message}", type, clientId ?? "all clients", ex.Message); + this.LogDebug(ex, "Stack trace: "); } } diff --git a/src/PepperDash.Essentials.MobileControl/MobileControlSystemController.cs b/src/PepperDash.Essentials.MobileControl/MobileControlSystemController.cs index 2fe20391..45ff814a 100644 --- a/src/PepperDash.Essentials.MobileControl/MobileControlSystemController.cs +++ b/src/PepperDash.Essentials.MobileControl/MobileControlSystemController.cs @@ -1312,6 +1312,11 @@ namespace PepperDash.Essentials /// public override void Initialize() { + if (!Config.EnableMessengerSubscriptions) + { + this.LogWarning("Messenger subscriptions disabled. add \"enableMessengerSubscriptions\": true to config for {key} to enable.", Key); + } + foreach (var messenger in _messengers) { try