mirror of
https://github.com/PepperDash/PepperDashCore.git
synced 2026-02-10 02:04:53 +00:00
Updated dynamic server class as I created simpl+ module
This commit is contained in:
Binary file not shown.
@@ -8,30 +8,6 @@ using PepperDash.Core;
|
||||
|
||||
namespace PepperDash_Core
|
||||
{
|
||||
#region UNUSED OBJECT JUST IN CASE TILL DONE WITH CODING
|
||||
//public class DynamicServer
|
||||
//{
|
||||
// public object Server
|
||||
// {
|
||||
// get
|
||||
// {
|
||||
// if(Secure)
|
||||
// return secureServer;
|
||||
// else
|
||||
// return unsecureServer;
|
||||
// }
|
||||
// private set;
|
||||
// }
|
||||
// public bool Secure { get; set; }
|
||||
// private TCPServer unsecureServer;
|
||||
// private SecureTCPServer secureServer;
|
||||
// public DynamicServer(bool secure)
|
||||
// {
|
||||
// Secure = secure;
|
||||
// }
|
||||
//}
|
||||
#endregion
|
||||
|
||||
public class DynamicTCPServer : Device
|
||||
{
|
||||
#region Events
|
||||
@@ -49,7 +25,7 @@ namespace PepperDash_Core
|
||||
public bool Secure { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// S+ Helper for Secure bool
|
||||
/// S+ Helper for Secure bool. Parameter in SIMPL+ so there is no get, one way set from simpl+ Param to property in func main of SIMPL+
|
||||
/// </summary>
|
||||
public ushort uSecure
|
||||
{
|
||||
@@ -62,20 +38,17 @@ namespace PepperDash_Core
|
||||
}
|
||||
}
|
||||
|
||||
public string status
|
||||
{
|
||||
get { return Secure ? SecureServer.State.ToString() : UnsecureServer.State.ToString(); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Bool showing if socket is connected
|
||||
/// </summary>
|
||||
public bool IsConnected
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Secure && SecureServer != null)
|
||||
return SecureServer.State == ServerState.SERVER_CONNECTED;
|
||||
else if (!Secure && UnsecureServer != null)
|
||||
return UnsecureServer.State == ServerState.SERVER_CONNECTED;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
get { return Secure ? SecureServer.State == ServerState.SERVER_CONNECTED : UnsecureServer.State == ServerState.SERVER_CONNECTED; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -91,15 +64,7 @@ namespace PepperDash_Core
|
||||
/// </summary>
|
||||
public bool IsListening
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Secure && SecureServer != null)
|
||||
return SecureServer.State == ServerState.SERVER_LISTENING;
|
||||
else if (!Secure && UnsecureServer != null)
|
||||
return UnsecureServer.State == ServerState.SERVER_LISTENING;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
get { return Secure ? SecureServer.State == ServerState.SERVER_LISTENING : UnsecureServer.State == ServerState.SERVER_LISTENING; }
|
||||
}
|
||||
|
||||
public ushort MaxConnections { get; set; } // should be set by parameter in SIMPL+ in the MAIN method, Should not ever need to be configurable
|
||||
@@ -117,15 +82,7 @@ namespace PepperDash_Core
|
||||
/// </summary>
|
||||
public ushort NumberOfClientsConnected
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Secure && SecureServer != null)
|
||||
return (ushort)SecureServer.NumberOfClientsConnected;
|
||||
else if (!Secure && UnsecureServer != null)
|
||||
return (ushort)UnsecureServer.NumberOfClientsConnected;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
get { return Secure ? (ushort)SecureServer.NumberOfClientsConnected : (ushort)UnsecureServer.NumberOfClientsConnected; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -136,7 +93,7 @@ namespace PepperDash_Core
|
||||
/// <summary>
|
||||
/// S+ helper
|
||||
/// </summary>
|
||||
public ushort UPort
|
||||
public ushort uPort
|
||||
{
|
||||
get { return Convert.ToUInt16(Port); }
|
||||
set { Port = Convert.ToInt32(value); }
|
||||
@@ -173,10 +130,7 @@ namespace PepperDash_Core
|
||||
}
|
||||
set
|
||||
{
|
||||
if (Secure && SecureServer != null && SecureServer.State == ServerState.SERVER_CONNECTED)
|
||||
DisconnectAllClients();
|
||||
if (!Secure && UnsecureServer != null && UnsecureServer.State == ServerState.SERVER_CONNECTED)
|
||||
DisconnectAllClients();
|
||||
DisconnectAllClients();
|
||||
_SharedKey = value;
|
||||
}
|
||||
}
|
||||
@@ -203,10 +157,7 @@ namespace PepperDash_Core
|
||||
get { return _OnlyAcceptConnectionFromAddress; }
|
||||
set
|
||||
{
|
||||
if (Secure && SecureServer != null && SecureServer.State == ServerState.SERVER_CONNECTED)
|
||||
DisconnectAllClients();
|
||||
if (!Secure && UnsecureServer != null && UnsecureServer.State == ServerState.SERVER_CONNECTED)
|
||||
DisconnectAllClients();
|
||||
DisconnectAllClients();
|
||||
MaxConnections = 1;
|
||||
_OnlyAcceptConnectionFromAddress = value;
|
||||
}
|
||||
@@ -229,20 +180,14 @@ namespace PepperDash_Core
|
||||
BufferSize = 2000;
|
||||
Secure = false;
|
||||
}
|
||||
|
||||
|
||||
void CrestronEnvironment_ProgramStatusEventHandler(eProgramStatusEventType programEventType)
|
||||
{
|
||||
if (programEventType == eProgramStatusEventType.Stopping)
|
||||
{
|
||||
Debug.Console(1, this, "Program stopping. Closing server");
|
||||
DisconnectAllClients();
|
||||
StopListening();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Methods - Server Actions
|
||||
public void Initialize(string key)
|
||||
{
|
||||
Key = key;
|
||||
}
|
||||
|
||||
public void Listen()
|
||||
{
|
||||
if (Port < 1 || Port > 65535)
|
||||
@@ -311,7 +256,7 @@ namespace PepperDash_Core
|
||||
{
|
||||
if (ConnectedClientsIndexes.Count > 0)
|
||||
{
|
||||
if (Secure && SecureServer != null)
|
||||
if (Secure)
|
||||
{
|
||||
foreach (uint i in ConnectedClientsIndexes)
|
||||
{
|
||||
@@ -319,7 +264,7 @@ namespace PepperDash_Core
|
||||
SecureServer.SendDataAsync(i, b, b.Length, SecureSendDataAsyncCallback);
|
||||
}
|
||||
}
|
||||
else if (!Secure && UnsecureServer != null)
|
||||
else
|
||||
{
|
||||
foreach (uint i in ConnectedClientsIndexes)
|
||||
{
|
||||
@@ -337,12 +282,12 @@ namespace PepperDash_Core
|
||||
/// <param name="clientIndex"></param>
|
||||
public void SendTextToClient(string text, uint clientIndex)
|
||||
{
|
||||
if (Secure && SecureServer != null)
|
||||
if (Secure)
|
||||
{
|
||||
byte[] b = Encoding.ASCII.GetBytes(text);
|
||||
SecureServer.SendDataAsync(clientIndex, b, b.Length, SecureSendDataAsyncCallback);
|
||||
}
|
||||
else if (!Secure && UnsecureServer != null)
|
||||
else
|
||||
{
|
||||
byte[] b = Encoding.ASCII.GetBytes(text);
|
||||
UnsecureServer.SendDataAsync(clientIndex, b, b.Length, UnsecureSendDataAsyncCallback);
|
||||
@@ -400,7 +345,7 @@ namespace PepperDash_Core
|
||||
Debug.Console(0, "Sent Shared Key to client at {0}", mySecureTCPServer.GetAddressServerAcceptedConnectionFromForSpecificClient(clientIndex));
|
||||
}
|
||||
mySecureTCPServer.ReceiveDataAsync(clientIndex, SecureReceivedCallback);
|
||||
if (mySecureTCPServer.State != ServerState.SERVER_LISTENING && MaxConnections > 1)
|
||||
if (mySecureTCPServer.State != ServerState.SERVER_LISTENING && MaxConnections > 1 && !ServerStopped)
|
||||
SecureServer.WaitForConnectionAsync(IPAddress.Any, SecureConnectCallback);
|
||||
}
|
||||
}
|
||||
@@ -412,7 +357,7 @@ namespace PepperDash_Core
|
||||
Debug.Console(0, "Connected to client at {0}", myTCPServer.GetAddressServerAcceptedConnectionFromForSpecificClient(clientIndex));
|
||||
myTCPServer.ReceiveDataAsync(clientIndex, UnsecureReceivedCallback);
|
||||
}
|
||||
if (myTCPServer.State != ServerState.SERVER_LISTENING && MaxConnections > 1)
|
||||
if (myTCPServer.State != ServerState.SERVER_LISTENING && MaxConnections > 1 && !ServerStopped)
|
||||
UnsecureServer.WaitForConnectionAsync(IPAddress.Any, UnsecureConnectCallback);
|
||||
}
|
||||
#endregion
|
||||
@@ -483,7 +428,7 @@ namespace PepperDash_Core
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Methods - EventHelper
|
||||
#region Methods - EventHelpers/Callbacks
|
||||
void onConnectionChange()
|
||||
{
|
||||
var handler = ClientConnectionChange;
|
||||
@@ -502,6 +447,16 @@ namespace PepperDash_Core
|
||||
if (handler != null)
|
||||
TextReceived(this, new GenericCommMethodReceiveTextArgs(text));
|
||||
}
|
||||
|
||||
void CrestronEnvironment_ProgramStatusEventHandler(eProgramStatusEventType programEventType)
|
||||
{
|
||||
if (programEventType == eProgramStatusEventType.Stopping)
|
||||
{
|
||||
Debug.Console(1, this, "Program stopping. Closing server");
|
||||
DisconnectAllClients();
|
||||
StopListening();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -10,8 +10,8 @@
|
||||
<ArchiveName />
|
||||
</RequiredInfo>
|
||||
<OptionalInfo>
|
||||
<CompiledOn>3/15/2017 12:09:01 AM</CompiledOn>
|
||||
<CompilerRev>1.0.6282.41670</CompilerRev>
|
||||
<CompiledOn>3/15/2017 3:30:41 PM</CompiledOn>
|
||||
<CompilerRev>1.0.6283.26120</CompilerRev>
|
||||
</OptionalInfo>
|
||||
<Plugin>
|
||||
<Version>Crestron.SIMPLSharp, Version=2.0.52.0, Culture=neutral, PublicKeyToken=812d080f93e2de10</Version>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
MainAssembly=PepperDash_Core.dll:5c64dc849bf12d4e264b1963b820aee1
|
||||
MainAssembly=PepperDash_Core.dll:36d08f49a05b4a3b41534e1c11044524
|
||||
MainAssemblyMinFirmwareVersion=1.007.0017
|
||||
MainAssemblyResource=SimplSharpData.dat:315526abf906cded47fb0c7510266a7e
|
||||
ü
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user