diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs
index 4fc6401..a1fcd56 100644
--- a/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs
+++ b/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs
@@ -10,7 +10,7 @@ namespace PepperDash.Core
///
///
///
- public class GenericSshClient : Device, IBasicCommunication, IAutoReconnect
+ public class GenericSshClient : Device, ISocketStatus, IAutoReconnect
{
///
/// Event that fires when data is received. Delivers args with byte array
@@ -27,6 +27,10 @@ namespace PepperDash.Core
///
public event EventHandler ConnectionChange;
+
+ public event Crestron.SimplSharp.CrestronSockets.TCPClientSocketStatusChangeEventHandler SocketStatusChange;
+
+
///
/// Address of server
///
@@ -55,6 +59,15 @@ namespace PepperDash.Core
// returns false if no client or not connected
get { return UStatus == 2; }
}
+
+ ///
+ ///
+ ///
+ public Crestron.SimplSharp.CrestronSockets.SocketStatus ClientStatus
+ {
+ get { throw new NotImplementedException(); }
+ }
+
///
/// Contains the familiar Simpl analog status values. This drives the ConnectionChange event
/// and IsConnected with be true when this == 2.
diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs
index 59fb3f3..5f41d7c 100644
--- a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs
+++ b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs
@@ -11,7 +11,7 @@ using Newtonsoft.Json.Linq;
namespace PepperDash.Core
{
- public class GenericTcpIpClient : Device, IBasicCommunication, IAutoReconnect
+ public class GenericTcpIpClient : Device, ISocketStatus, IAutoReconnect
{
///
///
@@ -23,6 +23,11 @@ namespace PepperDash.Core
///
public event EventHandler TextReceived;
+ ///
+ ///
+ ///
+ public event TCPClientSocketStatusChangeEventHandler SocketStatusChange;
+
///
///
///
@@ -82,7 +87,7 @@ namespace PepperDash.Core
: base(key)
{
Client = new TCPClient(address, port, bufferSize);
- Client.SocketStatusChange += new TCPClientSocketStatusChangeEventHandler(Client_SocketStatusChange);
+ Client.SocketStatusChange += Client_SocketStatusChange;
}
//public override bool CustomActivate()
@@ -175,40 +180,23 @@ namespace PepperDash.Core
void Client_SocketStatusChange(TCPClient client, SocketStatus clientSocketStatus)
{
-
Debug.Console(2, this, "Socket status change {0} ({1})", clientSocketStatus, UClientStatus);
if (client.ClientStatus != SocketStatus.SOCKET_STATUS_CONNECTED && !DisconnectCalledByUser)
WaitAndTryReconnect();
+ // Probably doesn't need to be a switch since all other cases were eliminated
switch (clientSocketStatus)
{
- case SocketStatus.SOCKET_STATUS_BROKEN_LOCALLY:
- break;
- case SocketStatus.SOCKET_STATUS_BROKEN_REMOTELY:
- break;
case SocketStatus.SOCKET_STATUS_CONNECTED:
Client.ReceiveDataAsync(Receive);
DisconnectCalledByUser = false;
break;
- case SocketStatus.SOCKET_STATUS_CONNECT_FAILED:
- break;
- case SocketStatus.SOCKET_STATUS_DNS_FAILED:
- break;
- case SocketStatus.SOCKET_STATUS_DNS_LOOKUP:
- break;
- case SocketStatus.SOCKET_STATUS_DNS_RESOLVED:
- break;
- case SocketStatus.SOCKET_STATUS_LINK_LOST:
- break;
- case SocketStatus.SOCKET_STATUS_NO_CONNECT:
- break;
- case SocketStatus.SOCKET_STATUS_SOCKET_NOT_EXIST:
- break;
- case SocketStatus.SOCKET_STATUS_WAITING:
- break;
- default:
- break;
}
+
+ // Relay the event
+ var handler = SocketStatusChange;
+ if (handler != null)
+ SocketStatusChange(client, clientSocketStatus);
}
}
diff --git a/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs b/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs
index 910d277..b92282d 100644
--- a/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs
+++ b/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
+using Crestron.SimplSharp.CrestronSockets;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
@@ -23,6 +24,17 @@ namespace PepperDash.Core
void Connect();
}
+ ///
+ /// For IBasicCommunication classes that have SocketStatus. GenericSshClient,
+ /// GenericTcpIpClient
+ ///
+ public interface ISocketStatus : IBasicCommunication
+ {
+ event TCPClientSocketStatusChangeEventHandler SocketStatusChange;
+ SocketStatus ClientStatus { get; }
+ }
+
+
public interface IAutoReconnect
{
bool AutoReconnect { get; set; }
@@ -78,6 +90,8 @@ namespace PepperDash.Core
public GenericCommMethodReceiveTextArgs() { }
}
+
+
///
///
///
diff --git a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj
index 7ccc33b..6634b12 100644
--- a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj
+++ b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj
@@ -85,7 +85,7 @@
C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\bin\PepperDash_Core.clz
1.007.0017
- 9/26/2016 8:35:29 AM
+ 9/26/2016 9:02:28 AM
False
diff --git a/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.clz b/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.clz
index 0888cd4..29daa2e 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 147ed58..9589b7a 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 8:35:29 AM
- 1.0.0.13663
+ 9/26/2016 9:02:28 AM
+ 1.0.0.14473
\ 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 1dff3dd..72a09a4 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 6449a35..edb7e7e 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:03807ccdf300afd429e7566545de5e6c
+MainAssembly=PepperDash_Core.dll:ddd7e6504766069b1c909eac0c499966
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 bc074a0..f16e3ff 100644
Binary files a/Pepperdash Core/Pepperdash Core/bin/manifest.ser and b/Pepperdash Core/Pepperdash Core/bin/manifest.ser differ
diff --git a/Pepperdash Core/Pepperdash Core/obj/Debug/Pepperdash_Core.csproj.FileListAbsolute.txt b/Pepperdash Core/Pepperdash Core/obj/Debug/Pepperdash_Core.csproj.FileListAbsolute.txt
index 5518a24..a6dc748 100644
--- a/Pepperdash Core/Pepperdash Core/obj/Debug/Pepperdash_Core.csproj.FileListAbsolute.txt
+++ b/Pepperdash Core/Pepperdash Core/obj/Debug/Pepperdash_Core.csproj.FileListAbsolute.txt
@@ -1,8 +1,8 @@
-C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\obj\Debug\ResolveAssemblyReference.cache
-C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\bin\SimplSharpCustomAttributesInterface.dll
-C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\bin\SimplSharpHelperInterface.dll
-C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\bin\Newtonsoft.Json.Compact.dll
-C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\bin\PepperDash_Core.dll
-C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\bin\PepperDash_Core.pdb
-C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\obj\Debug\PepperDash_Core.dll
-C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\obj\Debug\PepperDash_Core.pdb
+C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\obj\Debug\ResolveAssemblyReference.cache
+C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\bin\SimplSharpCustomAttributesInterface.dll
+C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\bin\SimplSharpHelperInterface.dll
+C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\bin\Newtonsoft.Json.Compact.dll
+C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\bin\PepperDash_Core.dll
+C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\bin\PepperDash_Core.pdb
+C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\obj\Debug\PepperDash_Core.dll
+C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\obj\Debug\PepperDash_Core.pdb