From 83621970301e6c5bd7f78dff6337e773771cf516 Mon Sep 17 00:00:00 2001 From: Joshua Gutenplan Date: Thu, 6 Jun 2019 15:05:01 -0700 Subject: [PATCH 1/4] Updated to add check for heartbeat enabled before setting a SendOrReceiveTimeOutInMs. Used find to find all refs of that prop being set and added check for heartbeat enable. --- .../Pepperdash Core/Comm/GenericSecureTcpIpClient_ForServer.cs | 3 ++- .../Pepperdash Core/Comm/GenericSecureTcpIpServer.cs | 3 ++- .../Pepperdash Core/Comm/GenericTcpIpClient_ForServer.cs | 3 ++- Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpServer.cs | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericSecureTcpIpClient_ForServer.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericSecureTcpIpClient_ForServer.cs index 13e1c66..3b551b2 100644 --- a/Pepperdash Core/Pepperdash Core/Comm/GenericSecureTcpIpClient_ForServer.cs +++ b/Pepperdash Core/Pepperdash Core/Comm/GenericSecureTcpIpClient_ForServer.cs @@ -328,7 +328,8 @@ namespace PepperDash.Core Client = new SecureTCPClient(Hostname, Port, BufferSize); Client.SocketStatusChange += Client_SocketStatusChange; - Client.SocketSendOrReceiveTimeOutInMs = (HeartbeatInterval * 5); + if(HeartbeatEnabled) + Client.SocketSendOrReceiveTimeOutInMs = (HeartbeatInterval * 5); Client.AddressClientConnectedTo = Hostname; Client.PortNumber = Port; // SecureClient = c; diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericSecureTcpIpServer.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericSecureTcpIpServer.cs index 3047a60..5554764 100644 --- a/Pepperdash Core/Pepperdash Core/Comm/GenericSecureTcpIpServer.cs +++ b/Pepperdash Core/Pepperdash Core/Comm/GenericSecureTcpIpServer.cs @@ -384,7 +384,8 @@ namespace PepperDash.Core if (SecureServer == null) { SecureServer = new SecureTCPServer(Port, MaxClients); - SecureServer.SocketSendOrReceiveTimeOutInMs = (this.HeartbeatRequiredIntervalMs * 5); + if(HeartbeatRequired) + SecureServer.SocketSendOrReceiveTimeOutInMs = (this.HeartbeatRequiredIntervalMs * 5); SecureServer.HandshakeTimeout = 30; SecureServer.SocketStatusChange += new SecureTCPServerSocketStatusChangeEventHandler(SecureServer_SocketStatusChange); } diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient_ForServer.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient_ForServer.cs index 820f5bb..491fe14 100644 --- a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient_ForServer.cs +++ b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient_ForServer.cs @@ -328,7 +328,8 @@ namespace PepperDash.Core Client = new TCPClient(Hostname, Port, BufferSize); Client.SocketStatusChange += Client_SocketStatusChange; - Client.SocketSendOrReceiveTimeOutInMs = (HeartbeatInterval * 5); + if(HeartbeatEnabled) + Client.SocketSendOrReceiveTimeOutInMs = (HeartbeatInterval * 5); Client.AddressClientConnectedTo = Hostname; Client.PortNumber = Port; // SecureClient = c; diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpServer.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpServer.cs index 7dfb682..a079c60 100644 --- a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpServer.cs +++ b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpServer.cs @@ -384,7 +384,8 @@ namespace PepperDash.Core if (myTcpServer == null) { myTcpServer = new TCPServer(Port, MaxClients); - myTcpServer.SocketSendOrReceiveTimeOutInMs = (this.HeartbeatRequiredIntervalMs * 5); + if(HeartbeatRequired) + myTcpServer.SocketSendOrReceiveTimeOutInMs = (this.HeartbeatRequiredIntervalMs * 5); // myTcpServer.HandshakeTimeout = 30; } From 229723b50fb7464d62d8a3e0787e72a6f13befe8 Mon Sep 17 00:00:00 2001 From: Joshua Gutenplan Date: Mon, 10 Jun 2019 02:07:00 -0700 Subject: [PATCH 2/4] Moved on ready to call on connect callback if shared key not required and connected. Moved text received event to else to get called on first message if shared key is off --- .../Comm/GenericTcpIpClient_ForServer.cs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient_ForServer.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient_ForServer.cs index 491fe14..ec59259 100644 --- a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient_ForServer.cs +++ b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient_ForServer.cs @@ -382,6 +382,15 @@ namespace PepperDash.Core //OnClientReadyForcommunications(false); // Should send false event }, 15000); } + else + { + //CLient connected and shared key is not required so just raise the ready for communication event. if Shared key + //required this is called by the shared key being negotiated + if (IsReadyForCommunication == false) + { + OnClientReadyForcommunications(true); // Key not required + } + } } else { @@ -486,7 +495,6 @@ namespace PepperDash.Core Debug.Console(2, this, "Client Received:\r--------\r{0}\r--------", str); if (!string.IsNullOrEmpty(checkHeartbeat(str))) { - if (SharedKeyRequired && str == "SharedKey:") { Debug.Console(1, this, "Server asking for shared key, sending"); @@ -495,19 +503,11 @@ namespace PepperDash.Core else if (SharedKeyRequired && str == "Shared Key Match") { StopWaitForSharedKeyTimer(); - - Debug.Console(1, this, Debug.ErrorLogLevel.Notice, "Shared key confirmed. Ready for communication"); OnClientReadyForcommunications(true); // Successful key exchange } - else if (SharedKeyRequired == false && IsReadyForCommunication == false) - { - OnClientReadyForcommunications(true); // Key not required - } - else { - //var bytesHandler = BytesReceived; //if (bytesHandler != null) // bytesHandler(this, new GenericCommMethodReceiveBytesArgs(bytes)); @@ -699,6 +699,7 @@ namespace PepperDash.Core Debug.Console(1, this, Debug.ErrorLogLevel.Notice, "Socket status change: {0} ({1})", client.ClientStatus, (ushort)(client.ClientStatus)); OnConnectionChange(); + // The client could be null or disposed by this time... if (Client == null || Client.ClientStatus != SocketStatus.SOCKET_STATUS_CONNECTED) { From fcc1ef3d1dd5e56ca72643de75f0210cd7fae9c5 Mon Sep 17 00:00:00 2001 From: Joshua Gutenplan Date: Mon, 10 Jun 2019 02:23:34 -0700 Subject: [PATCH 3/4] add same updates to secure tcp client for server. Moves on ready to fire on connect call back and makes sure that first message fires text received when shared key not enabled. --- .../Comm/GenericSecureTcpIpClient_ForServer.cs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericSecureTcpIpClient_ForServer.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericSecureTcpIpClient_ForServer.cs index 3b551b2..df61965 100644 --- a/Pepperdash Core/Pepperdash Core/Comm/GenericSecureTcpIpClient_ForServer.cs +++ b/Pepperdash Core/Pepperdash Core/Comm/GenericSecureTcpIpClient_ForServer.cs @@ -382,6 +382,15 @@ namespace PepperDash.Core //OnClientReadyForcommunications(false); // Should send false event }, 15000); } + else + { + //CLient connected and shared key is not required so just raise the ready for communication event. if Shared key + //required this is called by the shared key being negotiated + if (IsReadyForCommunication == false) + { + OnClientReadyForcommunications(true); // Key not required + } + } } else { @@ -500,14 +509,8 @@ namespace PepperDash.Core Debug.Console(1, this, Debug.ErrorLogLevel.Notice, "Shared key confirmed. Ready for communication"); OnClientReadyForcommunications(true); // Successful key exchange } - else if (SharedKeyRequired == false && IsReadyForCommunication == false) - { - OnClientReadyForcommunications(true); // Key not required - } - else { - //var bytesHandler = BytesReceived; //if (bytesHandler != null) // bytesHandler(this, new GenericCommMethodReceiveBytesArgs(bytes)); From 3d270499bac4fbcdefd49ee35eae8609e4a11211 Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Wed, 12 Jun 2019 12:10:45 -0600 Subject: [PATCH 4/4] Incremented Assembly version to 1.0.22. Set build option to generate .xml file. Added .xml file to CLZ Builds folder as well as compiled output --- CLZ Builds/PepperDash_Core.clz | Bin 1247413 -> 1259138 bytes CLZ Builds/PepperDash_Core.dll | Bin 126648 -> 127160 bytes CLZ Builds/PepperDash_Core.xml | 2137 +++++++++++++++++ .../Pepperdash Core/PepperDash_Core.csproj | 1 + .../Properties/AssemblyInfo.cs | 2 +- 5 files changed, 2139 insertions(+), 1 deletion(-) create mode 100644 CLZ Builds/PepperDash_Core.xml diff --git a/CLZ Builds/PepperDash_Core.clz b/CLZ Builds/PepperDash_Core.clz index 9e602198bbe81feeb7429ca407a56e38e3dc76be..57de2ccd28acb97995b1367686b29d79e1fab4cc 100644 GIT binary patch delta 62843 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≤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 K{EqhJm;VO~;}T5( delta 51026 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 dFCdSpP;0AFAD>M5Q{L-{{YvMR}BCF diff --git a/CLZ Builds/PepperDash_Core.dll b/CLZ Builds/PepperDash_Core.dll index 63c9a8fa25a7a79a5f3f94dcbdfa464bb703977f..14b07ee9d6a56c59b8c34c424efbc0085c81ac33 100644 GIT binary patch delta 45650 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 + + + PepperDash_Core + + + +

+ An embedded JsonToSimpl master object. + + + + + SIMPL+ can only execute the default constructor. If you have variables that require initialization, please + use an Initialize method + + + + + + + + + + + + + + + + + + + After save operation on JSON master happens, send it to server + + + + + + The core event and status-bearing class that most if not all device and connectors can derive from. + + + + + Base constructor for all Devices. + + + + + + Gets this device ready to be used in the system. Runs any added pre-activation items, and + all post-activation at end. Classes needing additional logic to + run should override CustomActivate() + + + + + Called in between Pre and PostActivationActions when Activate() is called. + Override to provide addtitional setup when calling activation. Overriding classes + do not need to call base.CustomActivate() + + true if device activated successfully. + + + + Call to deactivate device - unlink events, etc. Overriding classes do not + need to call base.Deactivate() + + + + + + Helper method to check object for bool value false and fire an Action method + + Should be of type bool, others will be ignored + Action to be run when o is false + + + + + + + + + A bandaid client that monitors whether the server is reachable + + + + + Timer to operate the bandaid monitor client in a loop. + + + + + + + + + + + + + + + constructor S+ Does not accept a key. Use initialze with key to set the debug key on this device. If using with + make sure to set all properties manually. + + + + + constructor with debug key set at instantiation. Make sure to set all properties before listening. + + + + + + Contstructor that sets all properties by calling the initialize method with a config object. + + + + + + Disconnects all clients and stops the server + + + + + Initialize Key for device using client name from SIMPL+. Called on Listen from SIMPL+ + + + + + + Start listening on the specified port + + + + + Stop Listeneing + + + + + Disconnects Client + + + + + + Disconnect All Clients + + + + + Broadcast text from server to all connected clients + + + + + + Not sure this is useful in library, maybe Pro?? + + + + + + + Secure Server Socket Status Changed Callback + + + + + + + + Secure TCP Client Connected to Secure Server Callback + + + + + + + Secure Received Data Async Callback + + + + + + + + Private Event Handler method to handle the closing of connections when the program stops + + + + + + Starts the monitor client cycle. Timed wait, then call RunMonitorClient + + + + + + + + + + + + + + + On monitor connect, restart the operation + + + + + If the client hangs, add to counter and maybe fire the choke event + + + + + Event for Receiving text + + + + + Event for client connection socket status change + + + + + Event for Server State Change + + + + + For a server with a pre shared key, this will fire after the communication is established and the key exchange is complete. If no shared key, this will fire + after connection is successful. Use this event to know when the client is ready for communication to avoid stepping on shared key. + + + + + A band aid event to notify user that the server has choked. + + + + + 3 by default + + + + + Text representation of the Socket Status enum values for the server + + + + + Bool showing if socket is connected + + + + + S+ helper for IsConnected + + + + + Bool showing if socket is connected + + + + + S+ helper for IsConnected + + + + + Number of clients currently connected. + + + + + Port Server should listen on + + + + + S+ helper for Port + + + + + Bool to show whether the server requires a preshared key. Must be set the same in the client, and if true shared keys must be identical on server/client + + + + + S+ helper for requires shared key bool + + + + + SharedKey is sent for varification to the server. Shared key can be any text (255 char limit in SIMPL+ Module), but must match the Shared Key on the Server module. + If SharedKey changes while server is listening or clients are connected, disconnect and stop listening will be called + + + + + Heartbeat Required bool sets whether server disconnects client if heartbeat is not received + + + + + S+ Helper for Heartbeat Required + + + + + Milliseconds before server expects another heartbeat. Set by property HeartbeatRequiredIntervalInSeconds which is driven from S+ + + + + + Simpl+ Heartbeat Analog value in seconds + + + + + String to Match for heartbeat. If null or empty any string will reset heartbeat timer + + + + + Defaults to 2000 + + + + + Private flag to note that the server has stopped intentionally + + + + Privates * + + + + SIMPL+ default constructor. + + + + + Sets up class - overriding methods should always call this. + + + + + + Adds a child "module" to this master + + + + + + Called from the child to add changed or new values for saving + + + + Events * + + + + Mirrors the Unique ID for now. + + + + + Merely for use in debug messages + + + + + This will be prepended to all paths to allow path swapping or for more organized + sub-paths + + + + + This is added to the end of all paths + + + + + Enables debugging output to the console. Certain error messages will be logged to the + system's error log regardless of this setting + + + + + Ushort helper for Debug property + + + + Privates * + + + + SIMPL+ default constructor. + + + + + Read, evaluate and udpate status + + + + + Sets the filepath as well as registers this with the Global.Masters list + + + + + Call this before doing anything else + + + + + + + + + Set the JPath to evaluate for a given bool out index. + + + + + Set the JPath for a ushort out index. + + + + + Set the JPath for a string output index. + + + + + Evalutates all outputs with defined paths. called by S+ when paths are ready to process + and by Master when file is read. + + + + + Processes a bool property, converting to bool, firing off a BoolChange event + + + + + Processes the given path. + + JPath formatted path to the desired property + The string value of the property, or a default value if it + doesn't exist + This will return false in the case that EvaulateAllOnJsonChange + is false and the path does not evaluate to a property in the incoming JSON. + + + + Called from Master to read inputs and update their values in master JObject + Callback should hit one of the following four methods + + + + + Called during Process(...) to get the path to a given property. By default, + returns PathPrefix+path+PathSuffix. Override to change the way path is built. + + + + + Use a callback to reduce task switch/threading + + + + + This will be prepended to all paths to allow path swapping or for more organized + sub-paths + + + + + This is added to the end of all paths + + + + + + + + + + Defaults to Environment.NewLine; + + + + + This is something of a band-aid callback. If the client times out during the connection process, because the server + is stuck, this will fire. It is intended to be used by the Server class monitor client, to help + keep a watch on the server and reset it if necessary. + + + + + Semaphore on connect method + + + + + Flag Set only when the disconnect method is called. + + + + + private Timer for auto reconnect + + + + + Used to force disconnection on a dead connect attempt + + + + + Internal secure client + + + + + Just to help S+ set the key + + + + + Handles closing this up when the program shuts down + + + + + Connect Method. Will return if already connected. Will write errors if missing address, port, or unique key/name. + + + + + + + + + + Internal call to close up client. ALWAYS use this when disconnecting. + + + + ff + Called from Connect failure or Socket Status change if + auto reconnect and socket disconnected (Not disconnected by user) + + + + + Receive callback + + + + + + + + + + + + General send method + + + + + + + + + + SocketStatusChange Callback + + + + + + + Helper for ConnectionChange event + + + + + Helper to fire ClientReadyForCommunications event + + + + + For a client with a pre shared key, this will fire after the communication is established and the key exchange is complete. If you require + a key and subscribe to the socket change event and try to send data on a connection the data sent will interfere with the key exchange and disconnect. + + + + + Address of server + + + + + Port on server + + + + + S+ helper + + + + + Bool to show whether the server requires a preshared key. This is used in the DynamicTCPServer class + + + + + S+ helper for requires shared key bool + + + + + SharedKey is sent for varification to the server. Shared key can be any text (255 char limit in SIMPL+ Module), but must match the Shared Key on the Server module + + + + + flag to show the client is waiting for the server to send the shared key + + + + + Defaults to 2000 + + + + + Bool showing if socket is connected + + + + + S+ helper for IsConnected + + + + + Bool showing if socket is ready for communication after shared key exchange + + + + + S+ helper for IsReadyForCommunication + + + + + Client socket status Read only + + + + + Contains the familiar Simpl analog status values. This drives the ConnectionChange event + and IsConnected would be true when this == 2. + + + + + Status text shows the message associated with socket status + + + + + bool to track if auto reconnect should be set on the socket + + + + + S+ helper for AutoReconnect + + + + + Milliseconds to wait before attempting to reconnect. Defaults to 5000 + + + + + Band aid delegate for choked server + + + + + An incoming communication stream + + + + + Represents a device that uses basic connection + + + + + For IBasicCommunication classes that have SocketStatus. GenericSshClient, + GenericTcpIpClient + + + + + + + + + + This delegate defines handler for IBasicCommunication status changes + + Device firing the status change + + + + + + + + + + Stupid S+ Constructor + + + + + + + + + + Stupid S+ Constructor + + + + + + + + + + + Gets a level or creates it if not existing + + + + + + + Adds a file master. If the master's key or filename is equivalent to any existing + master, this will fail + + New master to add + + + + + Gets a master by its key. Case-insensitive + + + + Privates * + + + + SIMPL+ default constructor. + + + + + Loads in JSON and triggers evaluation on all children + + + + + + Loads JSON into JsonObject, but does not trigger evaluation by children + + + + + + + + + + + This is something of a band-aid callback. If the client times out during the connection process, because the server + is stuck, this will fire. It is intended to be used by the Server class monitor client, to help + keep a watch on the server and reset it if necessary. + + + + + Semaphore on connect method + + + + + Flag Set only when the disconnect method is called. + + + + + private Timer for auto reconnect + + + + + Used to force disconnection on a dead connect attempt + + + + + Internal secure client + + + + + Just to help S+ set the key + + + + + Handles closing this up when the program shuts down + + + + + Connect Method. Will return if already connected. Will write errors if missing address, port, or unique key/name. + + + + + + + + + + Internal call to close up client. ALWAYS use this when disconnecting. + + + + ff + Called from Connect failure or Socket Status change if + auto reconnect and socket disconnected (Not disconnected by user) + + + + + Receive callback + + + + + + + + + + + + General send method + + + + + + + + + + SocketStatusChange Callback + + + + + + + Helper for ConnectionChange event + + + + + Helper to fire ClientReadyForCommunications event + + + + + For a client with a pre shared key, this will fire after the communication is established and the key exchange is complete. If you require + a key and subscribe to the socket change event and try to send data on a connection the data sent will interfere with the key exchange and disconnect. + + + + + Address of server + + + + + Port on server + + + + + S+ helper + + + + + Bool to show whether the server requires a preshared key. This is used in the DynamicTCPServer class + + + + + S+ helper for requires shared key bool + + + + + SharedKey is sent for varification to the server. Shared key can be any text (255 char limit in SIMPL+ Module), but must match the Shared Key on the Server module + + + + + flag to show the client is waiting for the server to send the shared key + + + + + Defaults to 2000 + + + + + Bool showing if socket is connected + + + + + S+ helper for IsConnected + + + + + Bool showing if socket is ready for communication after shared key exchange + + + + + S+ helper for IsReadyForCommunication + + + + + Client socket status Read only + + + + + Contains the familiar Simpl analog status values. This drives the ConnectionChange event + and IsConnected would be true when this == 2. + + + + + Status text shows the message associated with socket status + + + + + bool to track if auto reconnect should be set on the socket + + + + + S+ helper for AutoReconnect + + + + + Milliseconds to wait before attempting to reconnect. Defaults to 5000 + + + + + Band aid delegate for choked server + + + + + + + + + + + + + + + For Simpl+ + + + + + True when user is found + + + + + For stupid S+ + + + + + + + + + + + For newer >=2.4.1 array lookups. + + + + + + + + + + + + + + + + + + + Provides the path append for GetFullPath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Stores the state of the request + + + + + Waithandle for main thread. + + + + + + + + + + For Simpl+ + + + + + True when the preset is found + + + + + S+ helper for stupid S+ + + + + + Set only when the disconnect method is called. + + + + + Just to help S+ set the key + + + + + Handles closing this up when the program shuts down + + + + + General send method + + + + + This is useful from console and...? + + + + + + + + + + + + + + + + + + + + Address of server + + + + + Port on server + + + + + Another damn S+ helper because S+ seems to treat large port nums as signed ints + which screws up things + + + + + Defaults to 2000 + + + + + + + + + + + + + + + S+ helper for IsConnected + + + + + + + + + + Contains the familiar Simpl analog status values. This drives the ConnectionChange event + and IsConnected with be true when this == 2. + + + + + + + + + + + + + + + + + + + + S+ helper for AutoReconnect + + + + + Milliseconds to wait before attempting to reconnect. Defaults to 5000 + + + + + + + + + + Defaults to 32768 + + + + + Defaults to true + + + + + Defaults to 5000ms + + + + + Creates or gets a debug context + + + + + + + Do not use. For S+ access. + + + + + Used to save memory when shutting down + + + + + + Callback for console command + + + + + + Sets the debug level + + Valid values 0 (no debug), 1 (critical), 2 (all messages) + + + + Prints message to console if current debug level is equal to or higher than the level of this message. + Uses CrestronConsole.PrintLine. + + + Console format string + Object parameters + + + + Appends a device Key to the beginning of a message + + + + + Writes the memory object after timeout + + + + + Writes the memory - use SaveMemoryOnTimeout + + + + + + + + + + Helper to get the file path for this app's debug memory + + + + + Describes the folder location where a given program stores it's debug level memory. By default, the + file written will be named appNdebug where N is 1-10. + + + + + Defines the string event handler for line events on the gather + + + + + + Attaches to IBasicCommunication as a text gather + + + + + For receive buffer + + + + + Delimiter, like it says! + + + + + Fires up a gather, given a IBasicCommunicaion port and char for de + + + + + + + + + + + + + + Disconnects this gather from the Port's TextReceived event. This will not fire LineReceived + after the this call. + + + + + Handler for raw data coming from port + + + + + + + + + + + + Deconstructor. Disconnects from port TextReceived events. + + + + + Event that fires when a line is received from the IBasicCommunication source. + The event merely contains the text, not an EventArgs type class. + + + + + The communication port that this gathers on + + + + + Default false. If true, the delimiter will be included in the line output + events + + + + Privates * + + + + SIMPL+ default constructor. + + + + + Read, evaluate and udpate status + + + + + Returns the FileInfo object for a given path, with possible wildcards + + + + + + + + + + + + + + + + + + Sets the filepath as well as registers this with the Global.Masters list + + + + + + + + + + A bandaid client that monitors whether the server is reachable + + + + + Timer to operate the bandaid monitor client in a loop. + + + + + + + + + + + + + + + constructor S+ Does not accept a key. Use initialze with key to set the debug key on this device. If using with + make sure to set all properties manually. + + + + + constructor with debug key set at instantiation. Make sure to set all properties before listening. + + + + + + Contstructor that sets all properties by calling the initialize method with a config object. + + + + + + Disconnects all clients and stops the server + + + + + Initialize Key for device using client name from SIMPL+. Called on Listen from SIMPL+ + + + + + + Start listening on the specified port + + + + + Stop Listeneing + + + + + Disconnects Client + + + + + + Disconnect All Clients + + + + + Broadcast text from server to all connected clients + + + + + + Not sure this is useful in library, maybe Pro?? + + + + + + + Secure Server Socket Status Changed Callback + + + + + + + + Secure TCP Client Connected to Secure Server Callback + + + + + + + Secure Received Data Async Callback + + + + + + + + Private Event Handler method to handle the closing of connections when the program stops + + + + + + Starts the monitor client cycle. Timed wait, then call RunMonitorClient + + + + + + + + + + + + + + + On monitor connect, restart the operation + + + + + If the client hangs, add to counter and maybe fire the choke event + + + + + Event for Receiving text + + + + + Event for client connection socket status change + + + + + Event for Server State Change + + + + + For a server with a pre shared key, this will fire after the communication is established and the key exchange is complete. If no shared key, this will fire + after connection is successful. Use this event to know when the client is ready for communication to avoid stepping on shared key. + + + + + A band aid event to notify user that the server has choked. + + + + + 3 by default + + + + + Text representation of the Socket Status enum values for the server + + + + + Bool showing if socket is connected + + + + + S+ helper for IsConnected + + + + + Bool showing if socket is connected + + + + + S+ helper for IsConnected + + + + + Number of clients currently connected. + + + + + Port Server should listen on + + + + + S+ helper for Port + + + + + Bool to show whether the server requires a preshared key. Must be set the same in the client, and if true shared keys must be identical on server/client + + + + + S+ helper for requires shared key bool + + + + + SharedKey is sent for varification to the server. Shared key can be any text (255 char limit in SIMPL+ Module), but must match the Shared Key on the Server module. + If SharedKey changes while server is listening or clients are connected, disconnect and stop listening will be called + + + + + Heartbeat Required bool sets whether server disconnects client if heartbeat is not received + + + + + S+ Helper for Heartbeat Required + + + + + Milliseconds before server expects another heartbeat. Set by property HeartbeatRequiredIntervalInSeconds which is driven from S+ + + + + + Simpl+ Heartbeat Analog value in seconds + + + + + String to Match for heartbeat. If null or empty any string will reset heartbeat timer + + + + + Defaults to 2000 + + + + + Private flag to note that the server has stopped intentionally + + + + + Describes the folder location where a given program stores it's debug level memory. By default, the + file written will be named appNdebug where N is 1-10. + + + + + The name of the file containing the current debug settings. + + + + + When true, the IncludedExcludedKeys dict will contain keys to include. + When false (default), IncludedExcludedKeys will contain keys to exclude. + + + + + Used to save memory when shutting down + + + + + + Callback for console command + + + + + + Sets the debug level + + Valid values 0 (no debug), 1 (critical), 2 (all messages) + + + + + + + + + Prints message to console if current debug level is equal to or higher than the level of this message. + Uses CrestronConsole.PrintLine. + + + Console format string + Object parameters + + + + Logs to Console when at-level, and all messages to error log, including device key + + + + + Logs to Console when at-level, and all messages to error log + + + + + Logs to both console and the custom user log (not the built-in error log). If appdebug level is set at + or above the level provided, then the output will be written to both console and the log. Otherwise + it will only be written to the log. + + + + + + + + Logs to both console and the custom user log (not the built-in error log). If appdebug level is set at + or above the level provided, then the output will be written to both console and the log. Otherwise + it will only be written to the log. + + + + String.format string + Parameters for substitution in the format string. + + + + Prints to log and error log + + + + + + + Writes the memory object after timeout + + + + + Writes the memory - use SaveMemoryOnTimeout + + + + + + + + + + Helper to get the file path for this app's debug memory + + + + + Reads the config file, checks if it needs a merge, merges and saves, then returns the merged Object. + + JObject of config file + + + + + + + + + + + Merges the contents of a base and a delta array, matching the entries on a top-level property + given by propertyName. Returns a merge of them. Items in the delta array that do not have + a matched item in base array will not be merged. Non keyed system items will replace the template items. + + + + + Helper for using with JTokens. Converts to JObject + + + + + Merge o2 onto o1 + + + + + + + Queue to temporarily store received messages with the source IP and Port info + + + + + Enables the UDP Server + + + + + Disabled the UDP Server + + + + + Recursive method to receive data + + + + + + + This method gets spooled up in its own thread an protected by a CCriticalSection to prevent multiple threads from running concurrently. + It will dequeue items as they are enqueued automatically. + + + + + General send method + + + + + + + + + + + + + + + + This event will fire when a message is dequeued that includes the source IP and Port info if needed to determine the source of the received data. + + + + + + + + + + Address of server + + + + + Port on server + + + + + Another damn S+ helper because S+ seems to treat large port nums as signed ints + which screws up things + + + + + Indicates that the UDP Server is enabled + + + + + Defaults to 2000 + + + + + Stupid S+ Constructor + + + + + Defaults to 32768 + + + + + + + + + + Typical constructor. + + + + + S+ Constructor - Must set all properties before calling Connect + + + + + Just to help S+ set the key + + + + + Handles closing this up when the program shuts down + + + + + Connect to the server, using the provided properties. + + + + + Disconnect the clients and put away it's resources. + + + + + Anything to do with reestablishing connection on failures + + + + + Handles the keyboard interactive authentication, should it be required. + + + + + Handler for data receive on ShellStream. Passes data across to queue for line parsing. + + + + + Error event handler for client events - disconnect, etc. Will forward those events via ConnectionChange + event + + + + + Helper for ConnectionChange event + + + + + + + + + + + Event that fires when data is received. Delivers args with byte array + + + + + Event that fires when data is received. Delivered as text. + + + + + Event when the connection status changes. + + + + + Address of server + + + + + Port on server + + + + + Username for server + + + + + And... Password for server. That was worth documenting! + + + + + True when the server is connected - when status == 2. + + + + + S+ helper for IsConnected + + + + + + + + + + Contains the familiar Simpl analog status values. This drives the ConnectionChange event + and IsConnected with be true when this == 2. + + + + + Determines whether client will attempt reconnection on failure. Default is true + + + + + Will be set and unset by connect and disconnect only + + + + + S+ helper for AutoReconnect + + + + + Millisecond value, determines the timeout period in between reconnect attempts. + Set to 5000 by default + + + + + Fired when connection changes + + + + + Background class that manages debug features for sockets + + + + + Sets up the backing class. Adds console commands for S#Pro programs + + + + + Helper for socket list, to show types + + + + + + + + + + + + + + + + diff --git a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj index 8a033a2..548590e 100644 --- a/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj +++ b/Pepperdash Core/Pepperdash Core/PepperDash_Core.csproj @@ -42,6 +42,7 @@ 512 true true + bin\PepperDash_Core.xml diff --git a/Pepperdash Core/Pepperdash Core/Properties/AssemblyInfo.cs b/Pepperdash Core/Pepperdash Core/Properties/AssemblyInfo.cs index 63fe3d0..509f8ee 100644 --- a/Pepperdash Core/Pepperdash Core/Properties/AssemblyInfo.cs +++ b/Pepperdash Core/Pepperdash Core/Properties/AssemblyInfo.cs @@ -4,4 +4,4 @@ [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("Pepperdash_Core")] [assembly: AssemblyCopyright("Copyright © PepperDash 2019")] -[assembly: AssemblyVersion("1.0.21.*")] +[assembly: AssemblyVersion("1.0.22.*")]