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