diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs
index db9541f..9b2c36f 100644
--- a/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs
+++ b/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs
@@ -147,7 +147,7 @@ namespace PepperDash.Core
IsConnected = true;
Debug.Console(1, this, "Connected");
TheStream = Client.CreateShellStream("PDTShell", 100, 80, 100, 200, 65534);
- TheStream.DataReceived += Stream_DataReceived;
+ TheStream.DataReceived += Stream_DataReceived;
}
return;
}
@@ -162,14 +162,18 @@ namespace PepperDash.Core
Key, Hostname, Port, ie.GetType());
else if (ie is SshAuthenticationException)
{
- msg = string.Format("'{0}' Authentication failure for username '{1}', ({2})",
+ msg = string.Format("'{0}' Authentication failure for username '{1}', ({2})",
Username, Key, ie.GetType());
- Debug.Console(0, this, "Authentication failure for username '{0}', ({1})",
+ Debug.Console(0, this, "Authentication failure for username '{0}', ({1})",
Username, ie.GetType());
}
else
Debug.Console(0, this, "Error on connect:\r({0})", e);
- }
+ }
+ catch (Exception e)
+ {
+ Debug.Console(0, this, "Unhandled exception on connect:\r({0})", e);
+ }
}
else
{
diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs
index 015843b..d5c618f 100644
--- a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs
+++ b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs
@@ -13,17 +13,64 @@ namespace PepperDash.Core
{
public class GenericTcpIpClient : Device, IBasicCommunication, IAutoReconnect
{
+ ///
+ ///
+ ///
public event EventHandler BytesReceived;
+
+ ///
+ ///
+ ///
public event EventHandler TextReceived;
+ ///
+ ///
+ ///
public TCPClient Client { get; private set; }
+
+ ///
+ ///
+ ///
public bool IsConnected { get { return Client.ClientStatus == SocketStatus.SOCKET_STATUS_CONNECTED; } }
- public string Status { get { return Client.ClientStatus.ToString(); } }
+
+ ///
+ ///
+ ///
+ public SocketStatus ClientStatus { get { return Client.ClientStatus; } }
+
+ ///
+ ///
+ ///
+ public string ClientStatusText { get { return Client.ClientStatus.ToString(); } }
+
+ ///
+ ///
+ ///
+ public ushort UClientStatus { get { return (ushort)Client.ClientStatus; } }
+
+ ///
+ ///
+ ///
public string ConnectionFailure { get { return Client.ClientStatus.ToString(); } }
+ ///
+ ///
+ ///
public bool AutoReconnect { get; set; }
+
+ ///
+ ///
+ ///
public int AutoReconnectIntervalMs { get; set; }
+ ///
+ /// Set only when the disconnect method is called.
+ ///
+ bool DisconnectCalledByUser;
+
+ ///
+ ///
+ ///
public bool Connected
{
get { return Client.ClientStatus == SocketStatus.SOCKET_STATUS_CONNECTED; }
@@ -52,10 +99,12 @@ namespace PepperDash.Core
public void Connect()
{
Client.ConnectToServerAsync(null);
+ DisconnectCalledByUser = false;
}
public void Disconnnect()
{
+ DisconnectCalledByUser = true;
Client.DisconnectFromServer();
}
@@ -126,12 +175,11 @@ namespace PepperDash.Core
void Client_SocketStatusChange(TCPClient client, SocketStatus clientSocketStatus)
{
- if (client.ClientStatus != SocketStatus.SOCKET_STATUS_CONNECTED &&
- client.ClientStatus != SocketStatus.SOCKET_STATUS_BROKEN_LOCALLY)
+
+ Debug.Console(2, this, "Socket status change {0} ({1})", clientSocketStatus, UClientStatus);
+ if (client.ClientStatus != SocketStatus.SOCKET_STATUS_CONNECTED && !DisconnectCalledByUser)
WaitAndTryReconnect();
-
- Debug.Console(2, this, "Socket status change {0}", clientSocketStatus);
switch (clientSocketStatus)
{
case SocketStatus.SOCKET_STATUS_BROKEN_LOCALLY:
@@ -140,6 +188,7 @@ namespace PepperDash.Core
break;
case SocketStatus.SOCKET_STATUS_CONNECTED:
Client.ReceiveDataAsync(Receive);
+ DisconnectCalledByUser = false;
break;
case SocketStatus.SOCKET_STATUS_CONNECT_FAILED:
break;
diff --git a/Pepperdash Core/Pepperdash Core/Network/DiscoveryThings.cs b/Pepperdash Core/Pepperdash Core/Network/DiscoveryThings.cs
new file mode 100644
index 0000000..72f2285
--- /dev/null
+++ b/Pepperdash Core/Pepperdash Core/Network/DiscoveryThings.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+
+namespace PepperDash.Core
+{
+
+ public static class NetworkComm
+ {
+
+ static NetworkComm()
+ {
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj
index d695374..1f6615c 100644
--- a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj
+++ b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj
@@ -72,6 +72,7 @@
+
@@ -84,7 +85,7 @@
C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\bin\PepperDash_Core.clz
1.007.0017
- 9/2/2016 4:24:23 PM
+ 9/12/2016 2:06:04 PM
False
diff --git a/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.clz b/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.clz
index ff20d0e..ea64be7 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 a704865..fec6f6c 100644
--- a/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.config
+++ b/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.config
@@ -10,7 +10,7 @@
- 9/2/2016 4:24:23 PM
- 1.0.0.27730
+ 9/12/2016 2:06:04 PM
+ 1.0.0.23581
\ No newline at end of file
diff --git a/Pepperdash Core/Pepperdash Core/bin/manifest.info b/Pepperdash Core/Pepperdash Core/bin/manifest.info
index 9a6a262..fc82798 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:91ae222c64760e498b41b5b05b1e591d
+MainAssembly=PepperDash_Core.dll:841414db99de3a39f802c9ba80e23ad1
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 133c1ab..e02831d 100644
Binary files a/Pepperdash Core/Pepperdash Core/bin/manifest.ser and b/Pepperdash Core/Pepperdash Core/bin/manifest.ser differ