From 71d1b43fc9973a89b51f2c33b579893884441ea1 Mon Sep 17 00:00:00 2001 From: Heath Volmer Date: Mon, 12 Sep 2016 14:42:53 -0600 Subject: [PATCH] Fixed undesirable auto-reconnect behavior when manually disconnecting --- .../Pepperdash Core/Comm/GenericSshClient.cs | 12 ++-- .../Comm/GenericTcpIpClient.cs | 59 ++++++++++++++++-- .../Network/DiscoveryThings.cs | 18 ++++++ .../Pepperdash Core/PepperDash_Core.csproj | 3 +- .../Pepperdash Core/bin/PepperDash_Core.clz | Bin 678756 -> 678943 bytes .../bin/PepperDash_Core.config | 4 +- .../Pepperdash Core/bin/manifest.info | 2 +- .../Pepperdash Core/bin/manifest.ser | Bin 649 -> 647 bytes 8 files changed, 85 insertions(+), 13 deletions(-) create mode 100644 Pepperdash Core/Pepperdash Core/Network/DiscoveryThings.cs 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 ff20d0e1d9e8b361ff06e2b45663a7721f808e48..ea64be7488cfb9b78dd709613b9ae81671ddc213 100644 GIT binary patch delta 13813 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 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 133c1aba789361180dca06f3b7826c5866f435b7..e02831d9109cb7cdd30454c0b2155e5d78745c89 100644 GIT binary patch delta 380 zcmV-?0fYXD1&0NYynpxZAE3W4ie<4_FP;_k;wr0i`F`gC{eSlXzJ7ZD+XRU|KG@%- z|7Mei4`=zk?B2ukgPpzU!%23qlkeTjW`Om&TG!KI>|bW>eDKTX)if)$#mS@J_xJs( zA%uV5-*Q2VXy1J;d#Y@wy&3@nC_oU97wyubPub=*2zwht68B&Lu-yePSDsOls{O2zj8T#&r z^nHyveT_LiSvPI9IBwgzn5^5pIa{`QeV$Ftd^w6doRbFvT_x!(J_~WEUE1FQ_N{0i a@9pbRJPzw7I`=;KCI1gizF!Ch1^@t17}}Nq delta 382 zcmV-^0fGL91&IZaynhcK+}i=jVp%NKi)Tf>xXS8WzTbI3|KELpub*+A|FSB+&_~r9znw8q(T#qaz3KFyoAZMFJ+f8VRBep@Ure&64B#eYy{1ZBG^7OS$EXZ31( zN&tV~-}j~cEpH#`#l^OuYa zefLB9zQ&xs#+;t4o3>gUw{2Za)@|OLE!(_4&!%R+JPw_c1p-|qX`m-=g4(71Enwe@ c_VM1n9>wFZZlZJVgJ1Ih0N!ZoZ3PAZ0A5nv3IG5A