diff --git a/.gitignore b/.gitignore index 6c7cb0d..744fc2c 100644 --- a/.gitignore +++ b/.gitignore @@ -397,3 +397,5 @@ FodyWeavers.xsd # JetBrains Rider *.sln.iml *.projectinfo + +output/ \ No newline at end of file diff --git a/output/PepperDashCore.2.0.0-local.clz b/output/PepperDashCore.2.0.0-local.clz deleted file mode 100644 index c4f7a62..0000000 Binary files a/output/PepperDashCore.2.0.0-local.clz and /dev/null differ diff --git a/src/Comm/GenericSshClient.cs b/src/Comm/GenericSshClient.cs index ea24876..9ef882d 100644 --- a/src/Comm/GenericSshClient.cs +++ b/src/Comm/GenericSshClient.cs @@ -14,125 +14,125 @@ namespace PepperDash.Core /// /// public class GenericSshClient : Device, ISocketStatusWithStreamDebugging, IAutoReconnect - { - private const string SPlusKey = "Uninitialized SshClient"; + { + private const string SPlusKey = "Uninitialized SshClient"; /// /// Object to enable stream debugging /// public CommunicationStreamDebugging StreamDebugging { get; private set; } - /// - /// Event that fires when data is received. Delivers args with byte array - /// - public event EventHandler BytesReceived; + /// + /// Event that fires when data is received. Delivers args with byte array + /// + public event EventHandler BytesReceived; - /// - /// Event that fires when data is received. Delivered as text. - /// - public event EventHandler TextReceived; + /// + /// Event that fires when data is received. Delivered as text. + /// + public event EventHandler TextReceived; - /// - /// Event when the connection status changes. - /// - public event EventHandler ConnectionChange; + /// + /// Event when the connection status changes. + /// + public event EventHandler ConnectionChange; ///// ///// ///// //public event GenericSocketStatusChangeEventDelegate SocketStatusChange; - /// - /// Address of server - /// - public string Hostname { get; set; } + /// + /// Address of server + /// + public string Hostname { get; set; } - /// - /// Port on server - /// - public int Port { get; set; } + /// + /// Port on server + /// + public int Port { get; set; } - /// - /// Username for server - /// - public string Username { get; set; } + /// + /// Username for server + /// + public string Username { get; set; } - /// - /// And... Password for server. That was worth documenting! - /// - public string Password { get; set; } + /// + /// And... Password for server. That was worth documenting! + /// + public string Password { get; set; } - /// - /// True when the server is connected - when status == 2. - /// - public bool IsConnected - { - // returns false if no client or not connected + /// + /// True when the server is connected - when status == 2. + /// + public bool IsConnected + { + // returns false if no client or not connected get { return Client != null && ClientStatus == SocketStatus.SOCKET_STATUS_CONNECTED; } - } + } - /// - /// S+ helper for IsConnected - /// - public ushort UIsConnected - { - get { return (ushort)(IsConnected ? 1 : 0); } - } + /// + /// S+ helper for IsConnected + /// + public ushort UIsConnected + { + get { return (ushort)(IsConnected ? 1 : 0); } + } - /// - /// - /// - public SocketStatus ClientStatus - { - get { return _ClientStatus; } - private set - { - if (_ClientStatus == value) - return; - _ClientStatus = value; - OnConnectionChange(); - } - } - SocketStatus _ClientStatus; + /// + /// + /// + public SocketStatus ClientStatus + { + get { return _ClientStatus; } + private set + { + if (_ClientStatus == value) + return; + _ClientStatus = value; + OnConnectionChange(); + } + } + SocketStatus _ClientStatus; - /// - /// Contains the familiar Simpl analog status values. This drives the ConnectionChange event - /// and IsConnected with be true when this == 2. - /// - public ushort UStatus - { - get { return (ushort)_ClientStatus; } - } + /// + /// Contains the familiar Simpl analog status values. This drives the ConnectionChange event + /// and IsConnected with be true when this == 2. + /// + public ushort UStatus + { + get { return (ushort)_ClientStatus; } + } - /// - /// Determines whether client will attempt reconnection on failure. Default is true - /// - public bool AutoReconnect { get; set; } + /// + /// Determines whether client will attempt reconnection on failure. Default is true + /// + public bool AutoReconnect { get; set; } - /// - /// Will be set and unset by connect and disconnect only - /// - public bool ConnectEnabled { get; private set; } + /// + /// Will be set and unset by connect and disconnect only + /// + public bool ConnectEnabled { get; private set; } - /// - /// S+ helper for AutoReconnect - /// - public ushort UAutoReconnect - { - get { return (ushort)(AutoReconnect ? 1 : 0); } - set { AutoReconnect = value == 1; } - } + /// + /// S+ helper for AutoReconnect + /// + public ushort UAutoReconnect + { + get { return (ushort)(AutoReconnect ? 1 : 0); } + set { AutoReconnect = value == 1; } + } - /// - /// Millisecond value, determines the timeout period in between reconnect attempts. - /// Set to 5000 by default - /// - public int AutoReconnectIntervalMs { get; set; } + /// + /// Millisecond value, determines the timeout period in between reconnect attempts. + /// Set to 5000 by default + /// + public int AutoReconnectIntervalMs { get; set; } - SshClient Client; + SshClient Client; - ShellStream TheStream; + ShellStream TheStream; - CTimer ReconnectTimer; + CTimer ReconnectTimer; //Lock object to prevent simulatneous connect/disconnect operations //private CCriticalSection connectLock = new CCriticalSection(); @@ -140,12 +140,12 @@ namespace PepperDash.Core private bool DisconnectLogged = false; - /// - /// Typical constructor. - /// - public GenericSshClient(string key, string hostname, int port, string username, string password) : - base(key) - { + /// + /// Typical constructor. + /// + public GenericSshClient(string key, string hostname, int port, string username, string password) : + base(key) + { StreamDebugging = new CommunicationStreamDebugging(key); CrestronEnvironment.ProgramStatusEventHandler += new ProgramStatusEventHandler(CrestronEnvironment_ProgramStatusEventHandler); Key = key; @@ -182,14 +182,6 @@ namespace PepperDash.Core }, System.Threading.Timeout.Infinite); } - /// - /// Just to help S+ set the key - /// - public void Initialize(string key) - { - Key = key; - } - /// /// Handles closing this up when the program shuts down /// @@ -201,14 +193,14 @@ namespace PepperDash.Core { this.LogDebug("Program stopping. Closing connection"); Disconnect(); - } - } - } + } + } + } - /// - /// Connect to the server, using the provided properties. - /// - public void Connect() + /// + /// Connect to the server, using the provided properties. + /// + public void Connect() { // Don't go unless everything is here if (string.IsNullOrEmpty(Hostname) || Port < 1 || Port > 65535 @@ -347,7 +339,7 @@ namespace PepperDash.Core } KillClient(SocketStatus.SOCKET_STATUS_BROKEN_LOCALLY); - } + } /// /// Kills the stream, cleans up the client and sets it to null @@ -468,18 +460,18 @@ namespace PepperDash.Core ReconnectTimer.Reset(AutoReconnectIntervalMs); } }); - } + } - /// - /// Helper for ConnectionChange event - /// - void OnConnectionChange() - { - if (ConnectionChange != null) - ConnectionChange(this, new GenericSocketStatusChageEventArgs(this)); - } + /// + /// Helper for ConnectionChange event + /// + void OnConnectionChange() + { + if (ConnectionChange != null) + ConnectionChange(this, new GenericSocketStatusChageEventArgs(this)); + } - #region IBasicCommunication Members + #region IBasicCommunication Members /// /// Sends text to the server @@ -582,10 +574,10 @@ public class SshConnectionChangeEventArgs : EventArgs /// public ushort Status { get { return Client.UStatus; } } - /// + /// /// S+ Constructor - /// - public SshConnectionChangeEventArgs() { } + /// + public SshConnectionChangeEventArgs() { } /// /// EventArgs class @@ -593,9 +585,9 @@ public class SshConnectionChangeEventArgs : EventArgs /// Connection State /// The Client public SshConnectionChangeEventArgs(bool isConnected, GenericSshClient client) - { - IsConnected = isConnected; - Client = client; - } - } -} + { + IsConnected = isConnected; + Client = client; + } + } +} \ No newline at end of file diff --git a/src/CommunicationExtras.cs b/src/CommunicationExtras.cs index 9db5420..81fd76c 100644 --- a/src/CommunicationExtras.cs +++ b/src/CommunicationExtras.cs @@ -90,7 +90,7 @@ namespace PepperDash.Core /// /// The current socket status of the client /// - [JsonProperty("clinetStatus")] + [JsonProperty("clientStatus")] [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] SocketStatus ClientStatus { get; } } diff --git a/src/Config/PortalConfigReader.cs b/src/Config/PortalConfigReader.cs index f639f0c..59a8164 100644 --- a/src/Config/PortalConfigReader.cs +++ b/src/Config/PortalConfigReader.cs @@ -98,9 +98,22 @@ namespace PepperDash.Core.Config merged.Add("destinationLists", Merge(template["destinationLists"], system["destinationLists"], "destinationLists")); - // Template tie lines take precedence. Config tool doesn't do them at system - // level anyway... - if (template["tieLines"] != null) + + if (system["cameraLists"] == null) + merged.Add("cameraLists", template["cameraLists"]); + else + merged.Add("cameraLists", Merge(template["cameraLists"], system["cameraLists"], "cameraLists")); + + if (system["audioControlPointLists"] == null) + merged.Add("audioControlPointLists", template["audioControlPointLists"]); + else + merged.Add("audioControlPointLists", + Merge(template["audioControlPointLists"], system["audioControlPointLists"], "audioControlPointLists")); + + + // Template tie lines take precedence. Config tool doesn't do them at system + // level anyway... + if (template["tieLines"] != null) merged.Add("tieLines", template["tieLines"]); else if (system["tieLines"] != null) merged.Add("tieLines", system["tieLines"]); diff --git a/src/PepperDash.Core.4Series.csproj b/src/PepperDash.Core.4Series.csproj index d2a2c62..bbc7f11 100644 --- a/src/PepperDash.Core.4Series.csproj +++ b/src/PepperDash.Core.4Series.csproj @@ -12,7 +12,8 @@ PepperDash Technologies git https://github.com/PepperDash/PepperDashCore - crestron;4series; + crestron;4series; + false $(Version) true