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