diff --git a/Pepperdash Core/Pepperdash Core.suo b/Pepperdash Core/Pepperdash Core.suo
index f6a264d..b9d2a14 100644
Binary files a/Pepperdash Core/Pepperdash Core.suo and b/Pepperdash Core/Pepperdash Core.suo differ
diff --git a/Pepperdash Core/Pepperdash Core/Comm/DynamicTCPServer.cs b/Pepperdash Core/Pepperdash Core/Comm/DynamicTCPServer.cs
index a408950..792b1a8 100644
--- a/Pepperdash Core/Pepperdash Core/Comm/DynamicTCPServer.cs
+++ b/Pepperdash Core/Pepperdash Core/Comm/DynamicTCPServer.cs
@@ -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; }
///
- /// 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+
///
public ushort uSecure
{
@@ -62,20 +38,17 @@ namespace PepperDash_Core
}
}
+ public string status
+ {
+ get { return Secure ? SecureServer.State.ToString() : UnsecureServer.State.ToString(); }
+ }
+
///
/// Bool showing if socket is connected
///
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; }
}
///
@@ -91,15 +64,7 @@ namespace PepperDash_Core
///
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
///
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; }
}
///
@@ -136,7 +93,7 @@ namespace PepperDash_Core
///
/// S+ helper
///
- 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
///
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
}
}
\ No newline at end of file
diff --git a/Pepperdash Core/Pepperdash Core/PepperDash_Core.projectinfo b/Pepperdash Core/Pepperdash Core/PepperDash_Core.projectinfo
index 970d782..a0d0bd4 100644
Binary files a/Pepperdash Core/Pepperdash Core/PepperDash_Core.projectinfo and b/Pepperdash Core/Pepperdash Core/PepperDash_Core.projectinfo differ
diff --git a/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.clz b/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.clz
index 278003b..b8ce03e 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 938a55e..287c6a1 100644
--- a/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.config
+++ b/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.config
@@ -10,8 +10,8 @@
- 3/15/2017 12:09:01 AM
- 1.0.6282.41670
+ 3/15/2017 3:30:41 PM
+ 1.0.6283.26120
Crestron.SIMPLSharp, Version=2.0.52.0, Culture=neutral, PublicKeyToken=812d080f93e2de10
diff --git a/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.dll b/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.dll
index 00a2c14..a745858 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/PepperDash_Core.pdb b/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.pdb
index 2bb936d..4771332 100644
Binary files a/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.pdb and b/Pepperdash Core/Pepperdash Core/bin/PepperDash_Core.pdb differ
diff --git a/Pepperdash Core/Pepperdash Core/bin/manifest.info b/Pepperdash Core/Pepperdash Core/bin/manifest.info
index 9e7f67f..a357fc1 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:5c64dc849bf12d4e264b1963b820aee1
+MainAssembly=PepperDash_Core.dll:36d08f49a05b4a3b41534e1c11044524
MainAssemblyMinFirmwareVersion=1.007.0017
MainAssemblyResource=SimplSharpData.dat:315526abf906cded47fb0c7510266a7e
ü
diff --git a/Pepperdash Core/Pepperdash Core/bin/manifest.ser b/Pepperdash Core/Pepperdash Core/bin/manifest.ser
index 1a62c41..2c88bc1 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.dll b/Pepperdash Core/Pepperdash Core/obj/Debug/PepperDash_Core.dll
index cd4c49f..982a762 100644
Binary files a/Pepperdash Core/Pepperdash Core/obj/Debug/PepperDash_Core.dll and b/Pepperdash Core/Pepperdash Core/obj/Debug/PepperDash_Core.dll differ
diff --git a/Pepperdash Core/Pepperdash Core/obj/Debug/PepperDash_Core.pdb b/Pepperdash Core/Pepperdash Core/obj/Debug/PepperDash_Core.pdb
index f9a36ef..b8f8c4b 100644
Binary files a/Pepperdash Core/Pepperdash Core/obj/Debug/PepperDash_Core.pdb and b/Pepperdash Core/Pepperdash Core/obj/Debug/PepperDash_Core.pdb differ