diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericSocketStatusChangeEventArgs.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericSocketStatusChangeEventArgs.cs
new file mode 100644
index 0000000..3a388ee
--- /dev/null
+++ b/Pepperdash Core/Pepperdash Core/Comm/GenericSocketStatusChangeEventArgs.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+using Crestron.SimplSharp.CrestronSockets;
+
+
+namespace PepperDash.Core
+{
+ public delegate void GenericSocketStatusChangeEventDelegate(ISocketStatus client);
+}
\ No newline at end of file
diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs
index a1fcd56..d3df82d 100644
--- a/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs
+++ b/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs
@@ -2,6 +2,7 @@
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
+using Crestron.SimplSharp.CrestronSockets;
using Crestron.SimplSharp.Ssh;
using Crestron.SimplSharp.Ssh.Common;
@@ -25,11 +26,13 @@ namespace PepperDash.Core
///
/// Event when the connection status changes.
///
- public event EventHandler ConnectionChange;
-
-
- public event Crestron.SimplSharp.CrestronSockets.TCPClientSocketStatusChangeEventHandler SocketStatusChange;
+ //[Obsolete("Use SocketStatusChange instead")]
+ //public event EventHandler ConnectionChange;
+ ///
+ ///
+ ///
+ public event GenericSocketStatusChangeEventDelegate SocketStatusChange;
///
/// Address of server
@@ -57,16 +60,24 @@ namespace PepperDash.Core
public bool IsConnected
{
// returns false if no client or not connected
- get { return UStatus == 2; }
+ get { return ClientStatus == SocketStatus.SOCKET_STATUS_CONNECTED; }
}
///
///
///
- public Crestron.SimplSharp.CrestronSockets.SocketStatus ClientStatus
+ public SocketStatus ClientStatus
{
- get { throw new NotImplementedException(); }
+ 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
@@ -74,17 +85,8 @@ namespace PepperDash.Core
///
public ushort UStatus
{
- get { return _UStatus; }
- private set
- {
- if (_UStatus == value)
- return;
- _UStatus = value;
- OnConnectionChange();
- }
-
+ get { return (ushort)_ClientStatus; }
}
- ushort _UStatus;
///
/// Determines whether client will attempt reconnection on failure. Default is true
@@ -226,7 +228,7 @@ namespace PepperDash.Core
PreviousUsername = Username;
//You can do it!
- UStatus = 1;
+ ClientStatus = SocketStatus.SOCKET_STATUS_WAITING;
try
{
Client.Connect();
@@ -237,7 +239,7 @@ namespace PepperDash.Core
TheStream = Client.CreateShellStream("PDTShell", 100, 80, 100, 200, 65534);
TheStream.DataReceived += Stream_DataReceived;
Debug.Console(1, this, "Connected");
- UStatus = 2;
+ ClientStatus = SocketStatus.SOCKET_STATUS_CONNECTED;
PreviousHostname = Hostname;
PreviousPassword = Password;
PreviousPort = Port;
@@ -268,7 +270,7 @@ namespace PepperDash.Core
// Sucess will not make it this far
Client.Disconnect();
- UStatus = 3;
+ ClientStatus = SocketStatus.SOCKET_STATUS_CONNECT_FAILED;
HandleConnectionFailure();
}
@@ -286,7 +288,7 @@ namespace PepperDash.Core
if(TheStream != null)
TheStream.DataReceived -= Stream_DataReceived;
Client.Disconnect();
- UStatus = 5;
+ ClientStatus = SocketStatus.SOCKET_STATUS_BROKEN_LOCALLY;
Debug.Console(1, this, "Disconnected");
}
@@ -386,7 +388,7 @@ namespace PepperDash.Core
//Client.Dispose();
//Client = null;
}
- UStatus = 4;
+ ClientStatus = SocketStatus.SOCKET_STATUS_BROKEN_REMOTELY;
HandleConnectionFailure();
}
@@ -395,8 +397,12 @@ namespace PepperDash.Core
///
void OnConnectionChange()
{
- if(ConnectionChange != null)
- ConnectionChange(this, new SshConnectionChangeEventArgs(IsConnected, this));
+ //if(ConnectionChange != null)
+ // ConnectionChange(this, new SshConnectionChangeEventArgs(IsConnected, this));
+
+ var handler = SocketStatusChange;
+ if (handler != null)
+ SocketStatusChange(this);
}
#region IBasicCommunication Members
@@ -415,7 +421,7 @@ namespace PepperDash.Core
catch
{
Debug.Console(1, this, "Stream write failed. Disconnected, closing");
- UStatus = 4;
+ ClientStatus = SocketStatus.SOCKET_STATUS_BROKEN_REMOTELY;
HandleConnectionFailure();
}
}
@@ -430,7 +436,7 @@ namespace PepperDash.Core
catch
{
Debug.Console(1, this, "Stream write failed. Disconnected, closing");
- UStatus = 4;
+ ClientStatus = SocketStatus.SOCKET_STATUS_BROKEN_REMOTELY;
HandleConnectionFailure();
}
}
diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs
index 5f41d7c..4b45522 100644
--- a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs
+++ b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs
@@ -26,7 +26,7 @@ namespace PepperDash.Core
///
///
///
- public event TCPClientSocketStatusChangeEventHandler SocketStatusChange;
+ public event GenericSocketStatusChangeEventDelegate SocketStatusChange;
///
///
@@ -107,7 +107,7 @@ namespace PepperDash.Core
DisconnectCalledByUser = false;
}
- public void Disconnnect()
+ public void Disconnect()
{
DisconnectCalledByUser = true;
Client.DisconnectFromServer();
@@ -196,7 +196,7 @@ namespace PepperDash.Core
// Relay the event
var handler = SocketStatusChange;
if (handler != null)
- SocketStatusChange(client, clientSocketStatus);
+ SocketStatusChange(this);
}
}
diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClientWithGather.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClientWithGather.cs
deleted file mode 100644
index 078c9ec..0000000
--- a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClientWithGather.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Crestron.SimplSharp;
-
-namespace PepperDash.Core
-{
- ///
- /// A wrapper class that creates a TCP client and gather for use within S+
- ///
- public class SplusGenericTcpIpClientWithGather
- {
- public GenericTcpIpClient Client { get; private set; }
- public CommunicationGather Gather { get; private set; }
-
- public SplusGenericTcpIpClientWithGather()
- {
- }
-
- ///
- /// In place of the useless contstructor, for S+ compatability
- ///
- ///
- ///
- ///
- ///
- ///
- public void Initialize(string key, string host, int port, int bufferSize, char delimiter)
- {
- Client = new GenericTcpIpClient(key, host, port, bufferSize);
- Gather = new CommunicationGather(Client, delimiter);
- }
- }
-}
\ No newline at end of file
diff --git a/Pepperdash Core/Pepperdash Core/Comm/SshConfig.cs b/Pepperdash Core/Pepperdash Core/Comm/SshConfig.cs
deleted file mode 100644
index e9f1b86..0000000
--- a/Pepperdash Core/Pepperdash Core/Comm/SshConfig.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-//using System;
-//using System.Collections.Generic;
-//using System.Linq;
-//using System.Text;
-//using Crestron.SimplSharp;
-
-//using Newtonsoft.Json;
-
-//namespace PepperDash.Core
-//{
-// public class SshConfig : TcpIpConfig
-// {
-// public string Username { get; set; }
-// public string Password { get; set; }
-// }
-//}
\ No newline at end of file
diff --git a/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs b/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs
index b92282d..73917b1 100644
--- a/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs
+++ b/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs
@@ -22,6 +22,7 @@ namespace PepperDash.Core
void SendText(string text);
void SendBytes(byte[] bytes);
void Connect();
+ void Disconnect();
}
///
@@ -30,7 +31,7 @@ namespace PepperDash.Core
///
public interface ISocketStatus : IBasicCommunication
{
- event TCPClientSocketStatusChangeEventHandler SocketStatusChange;
+ event GenericSocketStatusChangeEventDelegate SocketStatusChange;
SocketStatus ClientStatus { get; }
}
diff --git a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj
index 6634b12..3e42cb4 100644
--- a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj
+++ b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj
@@ -64,9 +64,8 @@
+
-
-
@@ -85,7 +84,7 @@
C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\bin\PepperDash_Core.clz
1.007.0017
- 9/26/2016 9:02:28 AM
+ 9/27/2016 5:17:31 PM
False
diff --git a/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.clz b/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.clz
index 29daa2e..11358db 100644
Binary files a/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.clz and b/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.clz differ
diff --git a/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.config b/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.config
index 9589b7a..8ff292e 100644
--- a/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.config
+++ b/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.config
@@ -10,7 +10,7 @@
- 9/26/2016 9:02:28 AM
- 1.0.0.14473
+ 9/27/2016 5:17:31 PM
+ 1.0.0.29325
\ No newline at end of file
diff --git a/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.dll b/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.dll
index 72a09a4..acf38fd 100644
Binary files a/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.dll and b/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.dll differ
diff --git a/Pepperdash Core/Pepperdash Core/bin/manifest.info b/Pepperdash Core/Pepperdash Core/bin/manifest.info
index edb7e7e..ba28745 100644
--- a/Pepperdash Core/Pepperdash Core/bin/manifest.info
+++ b/Pepperdash Core/Pepperdash Core/bin/manifest.info
@@ -1,4 +1,4 @@
-MainAssembly=PepperDash_Core.dll:ddd7e6504766069b1c909eac0c499966
+MainAssembly=PepperDash_Core.dll:945e6c6366e369445585fb8cacdefe8e
MainAssemblyMinFirmwareVersion=1.007.0017
ü
DependencySource=Newtonsoft.Json.Compact.dll:ea996aa2ec65aa1878e7c9d09e37a896
diff --git a/Pepperdash Core/Pepperdash Core/bin/manifest.ser b/Pepperdash Core/Pepperdash Core/bin/manifest.ser
index f16e3ff..f0933ea 100644
Binary files a/Pepperdash Core/Pepperdash Core/bin/manifest.ser and b/Pepperdash Core/Pepperdash Core/bin/manifest.ser differ