mirror of
https://github.com/PepperDash/PepperDashCore.git
synced 2026-01-30 12:54:46 +00:00
Adding status enum to Clients; Added interface for these statuses
This commit is contained in:
@@ -10,7 +10,7 @@ namespace PepperDash.Core
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class GenericSshClient : Device, IBasicCommunication, IAutoReconnect
|
||||
public class GenericSshClient : Device, ISocketStatus, IAutoReconnect
|
||||
{
|
||||
/// <summary>
|
||||
/// Event that fires when data is received. Delivers args with byte array
|
||||
@@ -27,6 +27,10 @@ namespace PepperDash.Core
|
||||
/// </summary>
|
||||
public event EventHandler<SshConnectionChangeEventArgs> ConnectionChange;
|
||||
|
||||
|
||||
public event Crestron.SimplSharp.CrestronSockets.TCPClientSocketStatusChangeEventHandler SocketStatusChange;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Address of server
|
||||
/// </summary>
|
||||
@@ -55,6 +59,15 @@ namespace PepperDash.Core
|
||||
// returns false if no client or not connected
|
||||
get { return UStatus == 2; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public Crestron.SimplSharp.CrestronSockets.SocketStatus ClientStatus
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Contains the familiar Simpl analog status values. This drives the ConnectionChange event
|
||||
/// and IsConnected with be true when this == 2.
|
||||
|
||||
@@ -11,7 +11,7 @@ using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace PepperDash.Core
|
||||
{
|
||||
public class GenericTcpIpClient : Device, IBasicCommunication, IAutoReconnect
|
||||
public class GenericTcpIpClient : Device, ISocketStatus, IAutoReconnect
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
@@ -23,6 +23,11 @@ namespace PepperDash.Core
|
||||
/// </summary>
|
||||
public event EventHandler<GenericCommMethodReceiveTextArgs> TextReceived;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public event TCPClientSocketStatusChangeEventHandler SocketStatusChange;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// For IBasicCommunication classes that have SocketStatus. GenericSshClient,
|
||||
/// GenericTcpIpClient
|
||||
/// </summary>
|
||||
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() { }
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
<Programmer />
|
||||
<ArchiveFilename>C:\Users\hvolm\Desktop\working\pepperdash-simplsharp-core\Pepperdash Core\Pepperdash Core\bin\PepperDash_Core.clz</ArchiveFilename>
|
||||
<MinFirmwareVersion>1.007.0017</MinFirmwareVersion>
|
||||
<CompiledOn>9/26/2016 8:35:29 AM</CompiledOn>
|
||||
<CompiledOn>9/26/2016 9:02:28 AM</CompiledOn>
|
||||
<AdditionalInfo />
|
||||
<EmbedSourceArchive>False</EmbedSourceArchive>
|
||||
<CopyTo />
|
||||
|
||||
Binary file not shown.
@@ -10,7 +10,7 @@
|
||||
<ArchiveName />
|
||||
</RequiredInfo>
|
||||
<OptionalInfo>
|
||||
<CompiledOn>9/26/2016 8:35:29 AM</CompiledOn>
|
||||
<CompilerRev>1.0.0.13663</CompilerRev>
|
||||
<CompiledOn>9/26/2016 9:02:28 AM</CompiledOn>
|
||||
<CompilerRev>1.0.0.14473</CompilerRev>
|
||||
</OptionalInfo>
|
||||
</ProgramInfo>
|
||||
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
MainAssembly=PepperDash_Core.dll:03807ccdf300afd429e7566545de5e6c
|
||||
MainAssembly=PepperDash_Core.dll:ddd7e6504766069b1c909eac0c499966
|
||||
MainAssemblyMinFirmwareVersion=1.007.0017
|
||||
ü
|
||||
DependencySource=Newtonsoft.Json.Compact.dll:ea996aa2ec65aa1878e7c9d09e37a896
|
||||
|
||||
Binary file not shown.
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user