diff --git a/PepperDashCore.1.3.1/.signature.p7s b/PepperDashCore.1.3.1/.signature.p7s new file mode 100644 index 00000000..aa6bfa5b Binary files /dev/null and b/PepperDashCore.1.3.1/.signature.p7s differ diff --git a/PepperDashCore.1.3.1/lib/net35/PepperDash_Core.clz b/PepperDashCore.1.3.1/lib/net35/PepperDash_Core.clz new file mode 100644 index 00000000..9d58f07a Binary files /dev/null and b/PepperDashCore.1.3.1/lib/net35/PepperDash_Core.clz differ diff --git a/PepperDashCore.1.3.1/lib/net35/PepperDash_Core.dll b/PepperDashCore.1.3.1/lib/net35/PepperDash_Core.dll new file mode 100644 index 00000000..22fdba74 Binary files /dev/null and b/PepperDashCore.1.3.1/lib/net35/PepperDash_Core.dll differ diff --git a/PepperDashCore.1.3.1/lib/net35/PepperDash_Core.xml b/PepperDashCore.1.3.1/lib/net35/PepperDash_Core.xml new file mode 100644 index 00000000..2bb8effe --- /dev/null +++ b/PepperDashCore.1.3.1/lib/net35/PepperDash_Core.xml @@ -0,0 +1,6857 @@ + + + + PepperDash_Core + + + + + Constants + + + + + Generic boolean value change constant + + + + + Evaluated boolean change constant + + + + + Update busy change const + + + + + Password is valid change constant + + + + + Password LED change constant + + + + + Generic ushort value change constant + + + + + Password count + + + + + Password selecte index change constant + + + + + Password length + + + + + Generic string value change constant + + + + + Device class + + + + + Constructor + + + + + Initialize method + + + + + + + BoolChange event handler helper + + + + + + + + UshrtChange event handler helper + + + + + + + + StringChange event handler helper + + + + + + + + ObjectChange event handler helper + + + + + + + + JSON config key property + + + + + JSON config name property + + + + + JSON config type property + + + + + JSON config properties + + + + + Bool change event handler + + + + + Ushort change event handler + + + + + String change event handler + + + + + Object change event handler + + + + + Client for communicating with an HTTP Server Side Event pattern + + + + + An incoming communication stream + + + + + Unique key interface to require a unique key for the class + + + + + Unique Key + + + + + Connect to the device + + + + + Disconnect from the device + + + + + Notifies of bytes received + + + + + Notifies of text received + + + + + Indicates connection status + + + + + Constructor + + + + + + + Connects to the server. Requires Url to be set first. + + + + + Disconnects from the server + + + + + Initiates connection to the server + + + + + + Closes the connection to the server + + + + + + + + + + + + + + Notifies when bytes have been received + + + + + Notifies when text has been received + + + + + Indicates connection status + + + + + Unique identifier for the instance + + + + + Name for the instance + + + + + URL of the server + + + + + Stores the state of the request + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Constructor + + + + + Waithandle for main thread. + + + + + + + + + + XSigToken stream reader. + + + + + + XSigToken stream reader constructor. + + Input stream to read from. + Stream is null. + Stream cannot be read from. + + + + XSigToken stream reader constructor. + + Input stream to read from. + Determines whether to leave the stream open or not. + Stream is null. + Stream cannot be read from. + + + + Reads a 16-bit unsigned integer from the specified stream using Big Endian byte order. + + Input stream + Result + True if successful, otherwise false. + + + + Read XSig token from the stream. + + XSigToken + Offset is less than 0. + + + + Reads all available XSig tokens from the stream. + + XSigToken collection. + + + + Attempts to deserialize all XSig data within the stream from the current position. + + Type to deserialize the information to. + Deserialized object. + + + + Disposes of the internal stream if specified to not leave open. + + + + + Represents an XSigAnalogToken + + + + + Represents the base class for all XSig datatypes. + + + + + Constructs an XSigToken with the specified index. + + Index for the data. + + + + Generates the XSig bytes for the corresponding token. + + XSig byte array. + + + + Returns a new token if necessary with an updated index based on the specified offset. + + Offset to adjust the index with. + XSigToken + + + + XSig 1-based index. + + + + + XSigToken type. + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Constants + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Processor Change Event Args Class + + + + + Constructor + + + + + Constructor overload + + + + + Constructor + + + + + + + + + + + + + + + + + + + + Ethernet Change Event Args Class + + + + + Constructor + + + + + Constructor overload + + + + + + + Constructor overload + + + + + + + + + + + + + + + + + + + + + + + Control Subnet Chage Event Args Class + + + + + Constructor + + + + + Constructor overload + + + + + Constructor overload + + + + + + + + + + + + + + + + + + + + Program Change Event Args Class + + + + + Constructor + + + + + Constructor overload + + + + + + + Constructor overload + + + + + + + + + + + + + + + + + + + + + + + Generic TCP/IP server device + + + + + The core event and status-bearing class that most if not all device and connectors can derive from. + + + + + Named Keyed device interface. Forces the devie to have a Unique Key and a name. + + + + + Isn't it obvious :) + + + + + Base constructor for all Devices. + + + + + + Constructor with key and name + + + + + + + Adds a pre activation action + + + + + + Adds a post activation action + + + + + + Executes the preactivation actions + + + + + 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() + + + + + Executes the postactivation actions + + + + + 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() + + + + + + Call this method to start communications with a device. Overriding classes do not need to call base.Initialize() + + + + + 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 + + + + Unique Key + + + + + Name of the devie + + + + + + + + + + + + + + + + + + + + A bandaid client that monitors whether the server is reachable + + + + + Timer to operate the bandaid monitor client in a loop. + + + + + + + + + + The connected client indexes + + + + + + + + + + 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+ + + + + + + Initialze with server configuration object + + + + + + Start listening on the specified port + + + + + Stop Listening + + + + + Disconnects Client + + + + + + Disconnect All Clients + + + + + Broadcast text from server to all connected clients + + + + + + Not sure this is useful in library, maybe Pro?? + + + + + + + Gets the IP address based on the client index + + + IP address of the client + + + + 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 + + + + + The maximum number of clients. + Should be set by parameter in SIMPL+ in the MAIN method, Should not ever need to be configurable + + + + + 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 + + + + + + + + + + Represents a debugging context + + + + + 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. + + + + + + + + + + + + + + + Device communication parameter class + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Device TCP/SSH properties class + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Device control class + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Device properties class + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Root device class + + + + + The collection of devices + + + + + Constants for simpl modules + + + + + Json object evaluated constant + + + + + Json object changed constant + + + + + + + + + + Default constructor + + + + + Constructor overload + + + + + + + Constructor overload + + + + + + + + Device change event args object + + + + + Device change event args type + + + + + Device change event args index + + + + + Bool change event args + + + + + Constructor + + + + + Constructor overload + + + + + + + Constructor overload + + + + + + + + Boolean state property + + + + + Boolean ushort value property + + + + + Boolean change event args type + + + + + Boolean change event args index + + + + + Ushort change event args + + + + + Constructor + + + + + Constructor overload + + + + + + + Constructor overload + + + + + + + + Ushort change event args integer value + + + + + Ushort change event args type + + + + + Ushort change event args index + + + + + String change event args + + + + + Constructor + + + + + Constructor overload + + + + + + + Constructor overload + + + + + + + + String change event args value + + + + + String change event args type + + + + + string change event args index + + + + + CWS Base Handler, implements IHttpCwsHandler + + + + + Constructor + + + + + Constructor + + + + + Handles CONNECT method requests + + + + + + Handles DELETE method requests + + + + + + Handles GET method requests + + + + + + Handles HEAD method requests + + + + + + Handles OPTIONS method requests + + + + + + Handles PATCH method requests + + + + + + Handles POST method requests + + + + + + Handles PUT method requests + + + + + + Handles TRACE method requests + + + + + + Process request + + + + + + Generic UDP Server device + + + + + Describes a device that implements ISocketStatus and IStreamDebugging + + + + + For IBasicCommunication classes that have SocketStatus. GenericSshClient, + GenericTcpIpClient + + + + + Represents a device that uses basic connection + + + + + Send text to the device + + + + + + Send bytes to the device + + + + + + Notifies of socket status changes + + + + + The current socket status of the client + + + + + Represents a device with stream debugging capablities + + + + + Object to enable stream debugging + + + + + Constructor for S+. Make sure to set key, address, port, and buffersize using init method + + + + + + + + + + + + + + Call from S+ to initialize values + + + + + + + + + + + + + + + + + + + + Enables the UDP Server + + + + + Disabled the UDP Server + + + + + Recursive method to receive data + + + + + + + General send method + + + + + + + + + + + + Object to enable stream debugging + + + + + + + + + + + + + + + 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 + + + + + Numeric value indicating + + + + + Defaults to 2000 + + + + + The server + + + + + + + + + + + + + + + + + + + Stupid S+ Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defaults to 32768 + + + + + XSigToken stream writer. + + + + + + XSigToken stream writer constructor. + + Input stream to write to. + Stream is null. + Stream cannot be written to. + + + + XSigToken stream writer constructor. + + Input stream to write to. + Determines whether to leave the stream open or not. + Stream is null. + Stream cannot be written to. + + + + Write XSig data gathered from an IXSigStateResolver to the stream. + + IXSigStateResolver object. + + + + Write XSig data gathered from an IXSigStateResolver to the stream. + + IXSigStateResolver object. + Index offset for each XSigToken. + + + + Write XSigToken to the stream. + + XSigToken object. + + + + Write XSigToken to the stream. + + XSigToken object. + Index offset for each XSigToken. + + + + Writes an array of XSigTokens to the stream. + + XSigToken objects. + + + + Write an enumerable collection of XSigTokens to the stream. + + XSigToken objects. + + + + Write an enumerable collection of XSigTokens to the stream. + + XSigToken objects. + Index offset for each XSigToken. + + + + Disposes of the internal stream if specified to not leave open. + + + + + The global class to manage all the instances of JsonToSimplMaster + + + + + 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 + + + + + + + + + + Describes a device that can automatically attempt to reconnect + + + + + Enable automatic recconnect + + + + + Interval in ms to attempt automatic recconnections + + + + + 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. + + + + + Kills the stream, cleans up the client and sets it to null + + + + + Anything to do with reestablishing connection on failures + + + + + Kills the stream + + + + + 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 + + + + + Sends text to the server + + + + + + Sends Bytes to the server + + + + + + Object to enable stream debugging + + + + + 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 + + + + + S+ Constructor + + + + + EventArgs class + + Connection State + The Client + + + + Connection State + + + + + Connection Status represented as a ushort + + + + + The client + + + + + Socket Status as represented by + + + + + System Info class + + + + + Constructor + + + + + Gets the current processor info + + + + + Gets the current ethernet info + + + + + Gets the current control subnet info + + + + + Gets the program info by index + + + + + + Gets the processor uptime and passes it to S+ + + + + + Gets the program uptime, by index, and passes it to S+ + + + + + + Sends command to console, passes response back using string change event + + + + + + private method to parse console messages + + + + + + + + + + Protected boolean change event handler + + + + + + + + Protected string change event handler + + + + + + + + Protected processor config change event handler + + + + + + + + Ethernet change event handler + + + + + + + + Control Subnet change event handler + + + + + + + + Program change event handler + + + + + + + + Notifies of bool change + + + + + Notifies of string change + + + + + Notifies of processor change + + + + + Notifies of ethernet change + + + + + Notifies of control subnet change + + + + + Notifies of program change + + + + + Generic RESTful communication class + + + + + Constructor + + + + + Generic RESTful submit request + + + + + + + + + + + Private HTTP submit request + + + + + + + + + + + Private HTTPS submit request + + + + + + + + + + + Private method to encode username and password to Base64 string + + + + authorization + + + + Protected method to handle boolean change events + + + + + + + + Protected mehtod to handle ushort change events + + + + + + + + Protected method to handle string change events + + + + + + + + Boolean event handler + + + + + Ushort event handler + + + + + String event handler + + + + + Represents an XSigDigitalToken + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Base class for JSON objects + + + + + Reference to Master instance + + + + + Paths to boolean values in JSON structure + + + + + Paths to numeric values in JSON structure + + + + + Paths to string values in JSON structure + + + + + Call this before doing anything else + + + + + + + + + Sets the path prefix for the object + + + + + + 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. + + + + + Event helper + + + + + + + + Event helper + + + + + + + + Event helper + + + + + + + + Notifies of bool change + + + + + Notifies of ushort change + + + + + Notifies of string change + + + + + Delegate to get all values + + + + + Use a callback to reduce task switch/threading + + + + + Unique identifier for instance + + + + + 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 + + + + + Indicates if the instance is linked to an object + + + + + Used to interact with an array of values with the S+ modules + + + + + For gt2.4.1 array lookups + + + + + + + + + + + For newer >=2.4.1 array lookups. + + + + + + + + + + + + + + + + + + + Process all values + + + + + Provides the path append for GetFullPath + + + + + + + + + + + + + + + + + + + + + + Interface to determine XSig serialization for an object. + + + + + Serialize the sig data + + + + + + Deserialize the sig data + + + + + + + + Not in use + + + + + Not in use + + + + + Crestron Control Methods for a comm object + + + + + + + + + + RS232/422/485 + + + + + Crestron IpId (most Crestron ethernet devices) + + + + + Crestron IpIdTcp (HD-MD series, etc.) + + + + + Crestron IR control + + + + + SSH client + + + + + TCP/IP client + + + + + Telnet + + + + + Crestnet device + + + + + CEC Control, via a DM HDMI port + + + + + UDP Server + + + + + HTTP client + + + + + HTTPS client + + + + + Websocket client + + + + + Secure Websocket client + + + + + Secure TCP/IP + + + + + Processor info class + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ethernet info class + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Control subnet info class + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Program info class + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Contains debug commands for use in various situations + + + + + 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. + + + + + Describes the new 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 + + + + + + Callback for console command + + + + + + Callback for console command + + + + + + Sets the debug level + + Valid values 0 (no debug), 1 (critical), 2 (all messages) + + + + sets the settings for a device or creates a new entry + + + + + + + + Gets the device settings for a device by key or returns null + + + + + + + Sets the flag to prevent application starting on next boot + + + + + + + + + + + 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 + + + + + Prints message to console if current debug level is equal to or higher than the level of this message. Always sends message to Error Log. + Uses CrestronConsole.PrintLine. + + + + + 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. + + + + + 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 + + + + + Debug level to set for a given program. + + + + + When this is true, the configuration file will NOT be loaded until triggered by either a console command or a signal + + + + + Version for the currently loaded PepperDashCore dll + + + + + Error level to for message to be logged at + + + + + Error + + + + + Warning + + + + + Notice + + + + + None + + + + + Reads a Portal formatted config file + + + + + 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 + + + + + + + + XSig token types. + + + + + Digital signal datatype. + + + + + Analog signal datatype. + + + + + Serial signal datatype. + + + + + A class to allow user interaction with the PasswordManager + + + + + Constructor + + + + + Initialize method + + + + + Retrieve password by index + + + + + + Password validation method + + + + + + Builds the user entered passwrod string, will attempt to validate the user entered + password against the selected password when the length of the 2 are equal + + + + + + Clears the user entered password and resets the LEDs + + + + + Protected boolean change event handler + + + + + + + + Protected ushort change event handler + + + + + + + + Protected string change event handler + + + + + + + + If password changes while selected change event will be notifed and update the client + + + + + + + Password selected + + + + + Password selected key + + + + + Used to build the password entered by the user + + + + + Boolean event + + + + + Ushort event + + + + + String event + + + + + JSON password configuration + + + + + Constructor + + + + + Password object configured password + + + + + Represents a JSON file that can be read and written to + + + + + Abstract base class for JsonToSimpl interactions + + + + + A collection of associated child modules + + + + 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 + + + + + Saves the file + + + + + Helper event + + + + + + + + Helper event + + + + + + + + Helper event + + + + + + + + Notifies of bool change + + + + + Notifies of ushort change + + + + + Notifies of string change + + + + + Mirrors the Unique ID for now. + + + + + A unique ID + + + + + 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 + + + + + + + + + + + + + + + Deserializes a string into a JObject + + + + + + + Deserializes a string into a JArray + + + + + + Privates * + + + + SIMPL+ default constructor. + + + + + Read, evaluate and udpate status + + + + + Sets the debug level + + + + + + Saves the values to the file + + + + + Sets the filepath as well as registers this with the Global.Masters list + + + + + Filepath to the actual file that will be read (Portal or local) + + + + + + + + + + + + + + + Portal File Master + + + + 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 + + + + + File path of the actual file being read (Portal or local) + + + + + Client config object for TCP client with server that inherits from TcpSshPropertiesConfig and adds properties for shared key and heartbeat + + + + + TcpSsh Properties + + + + + Bool value for secure. Currently not implemented in TCP sockets as they are not dynamic + + + + + Require a shared key that both server and client negotiate. If negotiation fails server disconnects the client + + + + + The shared key that must match on the server and client + + + + + Require a heartbeat on the client/server connection that will cause the server/client to disconnect if the heartbeat is not received. + heartbeats do not raise received events. + + + + + The interval in seconds for the heartbeat from the client. If not received client is disconnected + + + + + HeartbeatString that will be checked against the message received. defaults to heartbeat if no string is provided. + + + + + Receive Queue size must be greater than 20 or defaults to 20 + + + + + Allows for two simultaneous TCP clients to connect to a redundant pair of QSC Core DSPs and manages + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default constuctor for S+ + + + + + Connects to both DSP units + + + + + + + + + + + + + + + + + + + Does not include line feed + + + + + Key to uniquely identify the instance of the class + + + + + Fires when a bool value changes to notify the S+ module + + + + + Fires when a ushort value changes to notify the S+ module + + + + + Fires when a string value changes to notify the S+ module + + + + + The client for the master DSP unit + + + + + The client for the slave DSP unit + + + + + A class to handle secure TCP/IP communications with a server + + + + + Internal secure client + + + + + Flag Set only when the disconnect method is called. + + + + + Semaphore on connect method + + + + + Queue lock + + + + + Queue to temporarily store received messages with the source IP and Port info. Defaults to size 20. Use constructor or set queue size property before + calling initialize. + + + + + Constructor + + + + + + + + + Contstructor that sets all properties by calling the initialize method with a config object. + + + + + + + Default constructor for S+ + + + + + Just to help S+ set the key + + + + + Initialize called by the constructor that accepts a client config object. Can be called later to reset properties of client. + + + + + + Handles closing this up when the program shuts down + + + + + Deactivate the client + + + + + + Connect Method. Will return if already connected. Will write errors if missing address, port, or unique key/name. + + + + + + + + + + Does the actual disconnect business + + + + + Called from Connect failure or Socket Status change if + auto reconnect and socket disconnected (Not disconnected by user) + + + + + Receive callback + + + + + + + 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 + + + + + + + + + + SocketStatusChange Callback + + + + + + + Helper for ConnectionChange event + + + + + Helper to fire ClientReadyForCommunications event + + + + + Stream debugging + + + + + Fires when data is received from the server and returns it as a Byte array + + + + + Fires when data is received from the server and returns it as text + + + + + + + + + + Auto reconnect evant handler + + + + + Event for Receiving text. Once subscribed to this event the receive callback will start a thread that dequeues the messages and invokes the event on a new thread. + It is not recommended to use both the TextReceived event and the TextReceivedQueueInvoke 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 + + + + + Defaults to 2000 + + + + + Bool showing if socket is connected + + + + + S+ helper for IsConnected + + + + + _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 + + + + + Connection failure reason + + + + + 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 + + + + + + + + + + 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 + + + + + Bool showing if socket is ready for communication after shared key exchange + + + + + S+ helper for IsReadyForCommunication + + + + + Bool Heartbeat Enabled flag + + + + + S+ helper for Heartbeat Enabled + + + + + Heartbeat String + + + + + Milliseconds before server expects another heartbeat. Set by property HeartbeatRequiredIntervalInSeconds which is driven from S+ + + + + + Simpl+ Heartbeat Analog value in seconds + + + + + Receive Queue size. Defaults to 20. Will set to 20 if QueueSize property is less than 20. Use constructor or set queue size property before + calling initialize. + + + + + Represents a device that implements IBasicCommunication and IStreamDebugging + + + + + + + + + + Connected + + + + + Disconnected + + + + + This delegate defines handler for IBasicCommunication status changes + + Device firing the status change + + + + + + + + + + + + + + + + S+ Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + S+ Constructor + + + + + + + + + + + + + + + + + + + + Gets escaped text for a byte array + + + + + + + Gets escaped text for a string + + + + + + + Gets debug text for a string + + + + + + + Represents an XSigSerialToken + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Class to help with accessing values from the CrestronEthernetHelper class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Class to persist current Debug settings across program restarts + + + + + To prevent threading issues with the DeviceDebugSettings collection + + + + + Default constructor + + + + + Sets the level of a given context item, and adds that item if it does not + exist + + + + + + + Gets a level or creates it if not existing + + + + + + + sets the settings for a device or creates a new entry + + + + + + + + Gets the device settings for a device by key or returns null + + + + + + + Collection of the debug settings for each device where the dictionary key is the device key + + + + + Contains information about + + + + + The level of debug messages to print + + + + + Property to tell the program not to intitialize when it boots, if desired + + + + + Web API server + + + + + Constructor for S+. Make sure to set necessary properties using init method + + + + + Constructor + + + + + + + Constructor + + + + + + + + Program status event handler + + + + + + Ethernet event handler + + + + + + Initializes CWS class + + + + + Adds a route to CWS + + + + + Removes a route from CWS + + + + + + Returns a list of the current routes + + + + + Starts CWS instance + + + + + Stop CWS instance + + + + + Received request handler + + + This is here for development and testing + + + + + + + Web API server key + + + + + Web API server name + + + + + CWS base path, will default to "/api" if not set via initialize method + + + + + Indicates CWS is registered with base path + + + + + Generic Master + + + + Privates * + + + + SIMPL+ default constructor. + + + + + Loads in JSON and triggers evaluation on all children + + + + + + Loads JSON into JsonObject, but does not trigger evaluation by children + + + + + + + + + + + Callback action for saving + + + + + + + + + + Constructor + + + + + Constants + + + + + Generic boolean change + + + + + Generic Ushort change + + + + + Response Code Ushort change + + + + + Generic String chagne + + + + + Response string change + + + + + Error string change + + + + + Web API default request handler + + + + + Constructor + + + + + Passcode client for the WebApi + + + + + An embedded JsonToSimpl master object. + + + + + SIMPL+ can only execute the default constructor. If you have variables that require initialization, please + use an Initialize method + + + + + Initializes the instance + + + + + + + + + Gets the user for a passcode + + + + + + + + + + + + + + + + + + + + After save operation on JSON master happens, send it to server + + + + + + Notifies when user received + + + + + Notifies when Preset received + + + + + Unique identifier for this instance + + + + + Delegate for notifying of socket status changes + + + + + + EventArgs class for socket status changes + + + + + + + + + + + S+ Constructor + + + + + + + + + + Delegate for notifying of TCP Server state changes + + + + + + EventArgs class for TCP Server state changes + + + + + + + + + + + S+ Constructor + + + + + + + + + + Delegate for TCP Server socket status changes + + + + + + + + EventArgs for TCP server socket status changes + + + + + + + + + + + + + + + + + + + + S+ Constructor + + + + + + + + + + + + + + + + + + + + EventArgs for TCP server com method receive text + + + + + + + + + + + + + + + + + + S+ Constructor + + + + + + + + + + + + + + + + + + + + EventArgs for TCP server client ready for communication + + + + + + + + + + + + + + + + S+ Constructor + + + + + EventArgs for UDP connected + + + + + + + + + + + + + + + Constructor + + + + + + + + + + + + + + + + + Generic secure TCP/IP server + + + + + Server listen lock + + + + + Queue lock + + + + + Queue to temporarily store received messages with the source IP and Port info. Defaults to size 20. Use constructor or set queue size property before + calling initialize. + + + + + A bandaid client that monitors whether the server is reachable + + + + + Timer to operate the bandaid monitor client in a loop. + + + + + + + + + + The connected client indexes + + + + + + + + + + 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. This does set Queue size. + + + + + + Disconnects all clients and stops the server + + + + + Initialize Key for device using client name from SIMPL+. Called on Listen from SIMPL+ + + + + + + Initialze the server + + + + + + 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?? + + + + + + + Get the IP Address for the client at the specifed index + + + + + + + Secure Server Socket Status Changed Callback + + + + + + + + Secure TCP Client Connected to Secure Server Callback + + + + + + + Secure Received Data Async Callback + + + + + + + + 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. + + + + + 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 Receiving text. Once subscribed to this event the receive callback will start a thread that dequeues the messages and invokes the event on a new thread. + It is not recommended to use both the TextReceived event and the TextReceivedQueueInvoke event. + + + + + 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. + + + + + Receive Queue size. Defaults to 20. Will set to 20 if QueueSize property is less than 20. Use constructor or set queue size property before + calling initialize. + + + + + 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 + + + + + Max number of clients this server will allow for connection. Crestron max is 64. This number should be less than 65 + + + + + 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 + + + + + + + + + + Controls the ability to disable/enable debugging of TX/RX data sent to/from a device with a built in timer to disable + + + + + Timer to disable automatically if not manually disabled + + + + + Constructor + + + + + + Sets the debugging setting and if not setting to off, assumes the default of 30 mintues + + + + + + Sets the debugging setting for the specified number of minutes + + + + + + + Disabled debugging + + + + + Device Key that this instance configures + + + + + The current debug setting + + + + + Timeout in Minutes + + + + + Indicates that receive stream debugging is enabled + + + + + Indicates that transmit stream debugging is enabled + + + + + The available settings for stream debugging + + + + + Debug off + + + + + Debug received data + + + + + Debug transmitted data + + + + + Debug both received and transmitted data + + + + + The available settings for stream debugging response types + + + + + Debug data in byte format + + + + + Debug data in text format + + + + + Debug data in both byte and text formats + + + + + Class to handle this specific exception type + + + + + default constructor + + + + + constructor with message + + + + + + constructor with message and innner exception + + + + + + + Constants for Simpl modules + + + + + + + + + + + + + + + Reports the if the device is 3-series compatible + + + + + Reports the if the device is 4-series compatible + + + + + Reports the device platform enum value + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reports the root directory change + + + + + Reports the room ID change + + + + + Reports the room name change + + + + + S+ values delegate + + + + + S+ values wrapper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + S+ types enum + + + + + Digital + + + + + Analog + + + + + String + + + + + 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! + + + + + Constructor for using a char delimiter + + + + + + + Constructor for using a single string delimiter + + + + + + + Constructor for using an array of string delimiters + + + + + + + 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 + + + + + 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 + + + + + + + + + + + + + + + + + Generic TCP/IP client for server + + + + + 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 + + + + + Constructor + + + + + + + + + Constructor for S+ + + + + + 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 + + + + + Notifies of text received + + + + + Notifies of socket status change + + + + + 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+ + + + + + Constructor + + + + + + + True when user is found + + + + + For stupid S+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a preset + + + + + Constructor + + + + + ID of preset + + + + + User ID + + + + + Room Type ID + + + + + Preset Name + + + + + Preset Number + + + + + Preset Data + + + + + + + + + + For Simpl+ + + + + + Constructor + + + + + + + True when the preset is found + + + + + S+ helper + + + + + The preset + + + + + Config properties that indicate how to communicate with a device for control + + + + + Constructor + + + + + The method of control + + + + + The key of the device that contains the control port + + + + + The number of the control port on the device specified by ControlPortDevKey + + + + + The name of the control port on the device specified by ControlPortDevKey + + + + + Properties for ethernet based communications + + + + + The filename and path for the IR file + + + + + The IpId of a Crestron device + + + + + Readonly uint representation of the IpId + + + + + Char indicating end of line + + + + + Defaults to Environment.NewLine; + + + + + Indicates + + + + + Used when communcating to programs running in VC-4 + + + + + Allows passwords to be stored and managed + + + + + Public dictionary of known passwords + + + + + Private dictionary, used when passwords are updated + + + + + Timer used to wait until password changes have stopped before updating the dictionary + + + + + Timer length + + + + + Constructor + + + + + Initialize password manager + + + + + Updates password stored in the dictonary + + + + + + + CTimer callback function + + + + + Method to change the default timer value, (default 5000ms/5s) + + + + + + Helper method for debugging to see what passwords are in the lists + + + + + Protected boolean change event handler + + + + + + + + Protected ushort change event handler + + + + + + + + Protected string change event handler + + + + + + + + Protected password change event handler + + + + + + + + Boolean event + + + + + Ushort event + + + + + String event + + + + + Event to notify clients of an updated password at the specified index (uint) + + + + + A class to handle basic TCP/IP communications with a server + + + + + The actual client class + + + + + Set only when the disconnect method is called + + + + + Constructor + + unique string to differentiate between instances + + + + + + + Constructor + + + + + + Default constructor for S+ + + + + + Just to help S+ set the key + + + + + Handles closing this up when the program shuts down + + + + + + + + + + + Attempts to connect to the server + + + + + Attempts to disconnect the client + + + + + Does the actual disconnect business + + + + + Callback method for connection attempt + + + + + + Disconnects, waits and attemtps to connect again + + + + + Recieves incoming data + + + + + + + General send method + + + + + This is useful from console and...? + + + + + Sends Bytes to the server + + + + + + Socket Status Change Handler + + + + + + + Object to enable stream debugging + + + + + Fires when data is received from the server and returns it as a Byte array + + + + + Fires when data is received from the server and returns it as text + + + + + + + + + + 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 + + + + + Bool showing if socket is connected + + + + + S+ helper for IsConnected + + + + + _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 + + + + + Ushort representation of client status + + + + + Connection failure reason + + + + + 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 + + + + + + + + + + Configuration properties for TCP/SSH Connections + + + + + Default constructor + + + + + Address to connect to + + + + + Port to connect to + + + + + Username credential + + + + + Passord credential + + + + + Defaults to 32768 + + + + + Defaults to true + + + + + Defaults to 5000ms + + + + + Tcp Server Config object with properties for a tcp server with shared key and heartbeat capabilities + + + + + Uique key + + + + + Max Clients that the server will allow to connect. + + + + + Bool value for secure. Currently not implemented in TCP sockets as they are not dynamic + + + + + Port for the server to listen on + + + + + Require a shared key that both server and client negotiate. If negotiation fails server disconnects the client + + + + + The shared key that must match on the server and client + + + + + Require a heartbeat on the client/server connection that will cause the server/client to disconnect if the heartbeat is not received. + heartbeats do not raise received events. + + + + + The interval in seconds for the heartbeat from the client. If not received client is disconnected + + + + + HeartbeatString that will be checked against the message received. defaults to heartbeat if no string is provided. + + + + + Client buffer size. See Crestron help. defaults to 2000 if not greater than 2000 + + + + + Receive Queue size must be greater than 20 or defaults to 20 + + + + + Helper methods for creating XSig byte sequences compatible with the Intersystem Communications (ISC) symbol. + + + Indexing is not from the start of each signal type but rather from the beginning of the first defined signal + the Intersystem Communications (ISC) symbol. + + + + + Forces all outputs to 0. + + Bytes in XSig format for clear outputs trigger. + + + + Evaluate all inputs and re-transmit any digital, analog, and permanent serail signals not set to 0. + + Bytes in XSig format for send status trigger. + + + + Get bytes for an IXSigStateResolver object. + + XSig state resolver. + Bytes in XSig format for each token within the state representation. + + + + Get bytes for an IXSigStateResolver object, with a specified offset. + + XSig state resolver. + Offset to which the data will be aligned. + Bytes in XSig format for each token within the state representation. + + + + Get bytes for a single digital signal. + + 1-based digital index + Digital data to be encoded + Bytes in XSig format for digtial information. + + + + Get bytes for a single digital signal. + + 1-based digital index + Index offset. + Digital data to be encoded + Bytes in XSig format for digtial information. + + + + Get byte sequence for multiple digital signals. + + Starting index of the sequence. + Digital signal value array. + Byte sequence in XSig format for digital signal information. + + + + Get byte sequence for multiple digital signals. + + Starting index of the sequence. + Index offset. + Digital signal value array. + Byte sequence in XSig format for digital signal information. + + + + Get bytes for a single analog signal. + + 1-based analog index + Analog data to be encoded + Bytes in XSig format for analog signal information. + + + + Get bytes for a single analog signal. + + 1-based analog index + Index offset. + Analog data to be encoded + Bytes in XSig format for analog signal information. + + + + Get byte sequence for multiple analog signals. + + Starting index of the sequence. + Analog signal value array. + Byte sequence in XSig format for analog signal information. + + + + Get byte sequence for multiple analog signals. + + Starting index of the sequence. + Index offset. + Analog signal value array. + Byte sequence in XSig format for analog signal information. + + + + Get bytes for a single serial signal. + + 1-based serial index + Serial data to be encoded + Bytes in XSig format for serial signal information. + + + + Get bytes for a single serial signal. + + 1-based serial index + Index offset. + Serial data to be encoded + Bytes in XSig format for serial signal information. + + + + Get byte sequence for multiple serial signals. + + Starting index of the sequence. + Serial signal value array. + Byte sequence in XSig format for serial signal information. + + + + Get byte sequence for multiple serial signals. + + Starting index of the sequence. + Index offset. + Serial signal value array. + Byte sequence in XSig format for serial signal information. + + + + Generic secure TCP/IP client for server + + + + + 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 + + + + + Queue lock + + + + + Queue to temporarily store received messages with the source IP and Port info. Defaults to size 20. Use constructor or set queue size property before + calling initialize. + + + + + Constructor + + + + + + + + + Constructor for S+ + + + + + Contstructor that sets all properties by calling the initialize method with a config object. + + + + + + + Just to help S+ set the key + + + + + Initialize called by the constructor that accepts a client config object. Can be called later to reset properties of client. + + + + + + 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 + + + + + + + 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 + + + + + + + + + + SocketStatusChange Callback + + + + + + + Helper for ConnectionChange event + + + + + Helper to fire ClientReadyForCommunications event + + + + + Notifies of text received + + + + + Notifies of auto reconnect sequence triggered + + + + + Event for Receiving text. Once subscribed to this event the receive callback will start a thread that dequeues the messages and invokes the event on a new thread. + It is not recommended to use both the TextReceived event and the TextReceivedQueueInvoke event. + + + + + Notifies of socket status change + + + + + 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 + + + + + + + + + + + + + + + + + + + + Milliseconds before server expects another heartbeat. Set by property HeartbeatRequiredIntervalInSeconds which is driven from S+ + + + + + Simpl+ Heartbeat Analog value in seconds + + + + + Receive Queue size. Defaults to 20. Will set to 20 if QueueSize property is less than 20. Use constructor or set queue size property before + calling initialize. + + + + + Band aid delegate for choked server + + + + diff --git a/PepperDashCore.1.3.1/lib/net47/PepperDash_Core.clz b/PepperDashCore.1.3.1/lib/net47/PepperDash_Core.clz new file mode 100644 index 00000000..9d58f07a Binary files /dev/null and b/PepperDashCore.1.3.1/lib/net47/PepperDash_Core.clz differ diff --git a/PepperDashCore.1.3.1/lib/net47/PepperDash_Core.dll b/PepperDashCore.1.3.1/lib/net47/PepperDash_Core.dll new file mode 100644 index 00000000..22fdba74 Binary files /dev/null and b/PepperDashCore.1.3.1/lib/net47/PepperDash_Core.dll differ diff --git a/PepperDashCore.1.3.1/lib/net47/PepperDash_Core.xml b/PepperDashCore.1.3.1/lib/net47/PepperDash_Core.xml new file mode 100644 index 00000000..2bb8effe --- /dev/null +++ b/PepperDashCore.1.3.1/lib/net47/PepperDash_Core.xml @@ -0,0 +1,6857 @@ + + + + PepperDash_Core + + + + + Constants + + + + + Generic boolean value change constant + + + + + Evaluated boolean change constant + + + + + Update busy change const + + + + + Password is valid change constant + + + + + Password LED change constant + + + + + Generic ushort value change constant + + + + + Password count + + + + + Password selecte index change constant + + + + + Password length + + + + + Generic string value change constant + + + + + Device class + + + + + Constructor + + + + + Initialize method + + + + + + + BoolChange event handler helper + + + + + + + + UshrtChange event handler helper + + + + + + + + StringChange event handler helper + + + + + + + + ObjectChange event handler helper + + + + + + + + JSON config key property + + + + + JSON config name property + + + + + JSON config type property + + + + + JSON config properties + + + + + Bool change event handler + + + + + Ushort change event handler + + + + + String change event handler + + + + + Object change event handler + + + + + Client for communicating with an HTTP Server Side Event pattern + + + + + An incoming communication stream + + + + + Unique key interface to require a unique key for the class + + + + + Unique Key + + + + + Connect to the device + + + + + Disconnect from the device + + + + + Notifies of bytes received + + + + + Notifies of text received + + + + + Indicates connection status + + + + + Constructor + + + + + + + Connects to the server. Requires Url to be set first. + + + + + Disconnects from the server + + + + + Initiates connection to the server + + + + + + Closes the connection to the server + + + + + + + + + + + + + + Notifies when bytes have been received + + + + + Notifies when text has been received + + + + + Indicates connection status + + + + + Unique identifier for the instance + + + + + Name for the instance + + + + + URL of the server + + + + + Stores the state of the request + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Constructor + + + + + Waithandle for main thread. + + + + + + + + + + XSigToken stream reader. + + + + + + XSigToken stream reader constructor. + + Input stream to read from. + Stream is null. + Stream cannot be read from. + + + + XSigToken stream reader constructor. + + Input stream to read from. + Determines whether to leave the stream open or not. + Stream is null. + Stream cannot be read from. + + + + Reads a 16-bit unsigned integer from the specified stream using Big Endian byte order. + + Input stream + Result + True if successful, otherwise false. + + + + Read XSig token from the stream. + + XSigToken + Offset is less than 0. + + + + Reads all available XSig tokens from the stream. + + XSigToken collection. + + + + Attempts to deserialize all XSig data within the stream from the current position. + + Type to deserialize the information to. + Deserialized object. + + + + Disposes of the internal stream if specified to not leave open. + + + + + Represents an XSigAnalogToken + + + + + Represents the base class for all XSig datatypes. + + + + + Constructs an XSigToken with the specified index. + + Index for the data. + + + + Generates the XSig bytes for the corresponding token. + + XSig byte array. + + + + Returns a new token if necessary with an updated index based on the specified offset. + + Offset to adjust the index with. + XSigToken + + + + XSig 1-based index. + + + + + XSigToken type. + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Constants + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Processor Change Event Args Class + + + + + Constructor + + + + + Constructor overload + + + + + Constructor + + + + + + + + + + + + + + + + + + + + Ethernet Change Event Args Class + + + + + Constructor + + + + + Constructor overload + + + + + + + Constructor overload + + + + + + + + + + + + + + + + + + + + + + + Control Subnet Chage Event Args Class + + + + + Constructor + + + + + Constructor overload + + + + + Constructor overload + + + + + + + + + + + + + + + + + + + + Program Change Event Args Class + + + + + Constructor + + + + + Constructor overload + + + + + + + Constructor overload + + + + + + + + + + + + + + + + + + + + + + + Generic TCP/IP server device + + + + + The core event and status-bearing class that most if not all device and connectors can derive from. + + + + + Named Keyed device interface. Forces the devie to have a Unique Key and a name. + + + + + Isn't it obvious :) + + + + + Base constructor for all Devices. + + + + + + Constructor with key and name + + + + + + + Adds a pre activation action + + + + + + Adds a post activation action + + + + + + Executes the preactivation actions + + + + + 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() + + + + + Executes the postactivation actions + + + + + 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() + + + + + + Call this method to start communications with a device. Overriding classes do not need to call base.Initialize() + + + + + 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 + + + + Unique Key + + + + + Name of the devie + + + + + + + + + + + + + + + + + + + + A bandaid client that monitors whether the server is reachable + + + + + Timer to operate the bandaid monitor client in a loop. + + + + + + + + + + The connected client indexes + + + + + + + + + + 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+ + + + + + + Initialze with server configuration object + + + + + + Start listening on the specified port + + + + + Stop Listening + + + + + Disconnects Client + + + + + + Disconnect All Clients + + + + + Broadcast text from server to all connected clients + + + + + + Not sure this is useful in library, maybe Pro?? + + + + + + + Gets the IP address based on the client index + + + IP address of the client + + + + 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 + + + + + The maximum number of clients. + Should be set by parameter in SIMPL+ in the MAIN method, Should not ever need to be configurable + + + + + 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 + + + + + + + + + + Represents a debugging context + + + + + 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. + + + + + + + + + + + + + + + Device communication parameter class + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Device TCP/SSH properties class + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Device control class + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Device properties class + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Root device class + + + + + The collection of devices + + + + + Constants for simpl modules + + + + + Json object evaluated constant + + + + + Json object changed constant + + + + + + + + + + Default constructor + + + + + Constructor overload + + + + + + + Constructor overload + + + + + + + + Device change event args object + + + + + Device change event args type + + + + + Device change event args index + + + + + Bool change event args + + + + + Constructor + + + + + Constructor overload + + + + + + + Constructor overload + + + + + + + + Boolean state property + + + + + Boolean ushort value property + + + + + Boolean change event args type + + + + + Boolean change event args index + + + + + Ushort change event args + + + + + Constructor + + + + + Constructor overload + + + + + + + Constructor overload + + + + + + + + Ushort change event args integer value + + + + + Ushort change event args type + + + + + Ushort change event args index + + + + + String change event args + + + + + Constructor + + + + + Constructor overload + + + + + + + Constructor overload + + + + + + + + String change event args value + + + + + String change event args type + + + + + string change event args index + + + + + CWS Base Handler, implements IHttpCwsHandler + + + + + Constructor + + + + + Constructor + + + + + Handles CONNECT method requests + + + + + + Handles DELETE method requests + + + + + + Handles GET method requests + + + + + + Handles HEAD method requests + + + + + + Handles OPTIONS method requests + + + + + + Handles PATCH method requests + + + + + + Handles POST method requests + + + + + + Handles PUT method requests + + + + + + Handles TRACE method requests + + + + + + Process request + + + + + + Generic UDP Server device + + + + + Describes a device that implements ISocketStatus and IStreamDebugging + + + + + For IBasicCommunication classes that have SocketStatus. GenericSshClient, + GenericTcpIpClient + + + + + Represents a device that uses basic connection + + + + + Send text to the device + + + + + + Send bytes to the device + + + + + + Notifies of socket status changes + + + + + The current socket status of the client + + + + + Represents a device with stream debugging capablities + + + + + Object to enable stream debugging + + + + + Constructor for S+. Make sure to set key, address, port, and buffersize using init method + + + + + + + + + + + + + + Call from S+ to initialize values + + + + + + + + + + + + + + + + + + + + Enables the UDP Server + + + + + Disabled the UDP Server + + + + + Recursive method to receive data + + + + + + + General send method + + + + + + + + + + + + Object to enable stream debugging + + + + + + + + + + + + + + + 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 + + + + + Numeric value indicating + + + + + Defaults to 2000 + + + + + The server + + + + + + + + + + + + + + + + + + + Stupid S+ Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defaults to 32768 + + + + + XSigToken stream writer. + + + + + + XSigToken stream writer constructor. + + Input stream to write to. + Stream is null. + Stream cannot be written to. + + + + XSigToken stream writer constructor. + + Input stream to write to. + Determines whether to leave the stream open or not. + Stream is null. + Stream cannot be written to. + + + + Write XSig data gathered from an IXSigStateResolver to the stream. + + IXSigStateResolver object. + + + + Write XSig data gathered from an IXSigStateResolver to the stream. + + IXSigStateResolver object. + Index offset for each XSigToken. + + + + Write XSigToken to the stream. + + XSigToken object. + + + + Write XSigToken to the stream. + + XSigToken object. + Index offset for each XSigToken. + + + + Writes an array of XSigTokens to the stream. + + XSigToken objects. + + + + Write an enumerable collection of XSigTokens to the stream. + + XSigToken objects. + + + + Write an enumerable collection of XSigTokens to the stream. + + XSigToken objects. + Index offset for each XSigToken. + + + + Disposes of the internal stream if specified to not leave open. + + + + + The global class to manage all the instances of JsonToSimplMaster + + + + + 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 + + + + + + + + + + Describes a device that can automatically attempt to reconnect + + + + + Enable automatic recconnect + + + + + Interval in ms to attempt automatic recconnections + + + + + 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. + + + + + Kills the stream, cleans up the client and sets it to null + + + + + Anything to do with reestablishing connection on failures + + + + + Kills the stream + + + + + 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 + + + + + Sends text to the server + + + + + + Sends Bytes to the server + + + + + + Object to enable stream debugging + + + + + 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 + + + + + S+ Constructor + + + + + EventArgs class + + Connection State + The Client + + + + Connection State + + + + + Connection Status represented as a ushort + + + + + The client + + + + + Socket Status as represented by + + + + + System Info class + + + + + Constructor + + + + + Gets the current processor info + + + + + Gets the current ethernet info + + + + + Gets the current control subnet info + + + + + Gets the program info by index + + + + + + Gets the processor uptime and passes it to S+ + + + + + Gets the program uptime, by index, and passes it to S+ + + + + + + Sends command to console, passes response back using string change event + + + + + + private method to parse console messages + + + + + + + + + + Protected boolean change event handler + + + + + + + + Protected string change event handler + + + + + + + + Protected processor config change event handler + + + + + + + + Ethernet change event handler + + + + + + + + Control Subnet change event handler + + + + + + + + Program change event handler + + + + + + + + Notifies of bool change + + + + + Notifies of string change + + + + + Notifies of processor change + + + + + Notifies of ethernet change + + + + + Notifies of control subnet change + + + + + Notifies of program change + + + + + Generic RESTful communication class + + + + + Constructor + + + + + Generic RESTful submit request + + + + + + + + + + + Private HTTP submit request + + + + + + + + + + + Private HTTPS submit request + + + + + + + + + + + Private method to encode username and password to Base64 string + + + + authorization + + + + Protected method to handle boolean change events + + + + + + + + Protected mehtod to handle ushort change events + + + + + + + + Protected method to handle string change events + + + + + + + + Boolean event handler + + + + + Ushort event handler + + + + + String event handler + + + + + Represents an XSigDigitalToken + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Base class for JSON objects + + + + + Reference to Master instance + + + + + Paths to boolean values in JSON structure + + + + + Paths to numeric values in JSON structure + + + + + Paths to string values in JSON structure + + + + + Call this before doing anything else + + + + + + + + + Sets the path prefix for the object + + + + + + 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. + + + + + Event helper + + + + + + + + Event helper + + + + + + + + Event helper + + + + + + + + Notifies of bool change + + + + + Notifies of ushort change + + + + + Notifies of string change + + + + + Delegate to get all values + + + + + Use a callback to reduce task switch/threading + + + + + Unique identifier for instance + + + + + 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 + + + + + Indicates if the instance is linked to an object + + + + + Used to interact with an array of values with the S+ modules + + + + + For gt2.4.1 array lookups + + + + + + + + + + + For newer >=2.4.1 array lookups. + + + + + + + + + + + + + + + + + + + Process all values + + + + + Provides the path append for GetFullPath + + + + + + + + + + + + + + + + + + + + + + Interface to determine XSig serialization for an object. + + + + + Serialize the sig data + + + + + + Deserialize the sig data + + + + + + + + Not in use + + + + + Not in use + + + + + Crestron Control Methods for a comm object + + + + + + + + + + RS232/422/485 + + + + + Crestron IpId (most Crestron ethernet devices) + + + + + Crestron IpIdTcp (HD-MD series, etc.) + + + + + Crestron IR control + + + + + SSH client + + + + + TCP/IP client + + + + + Telnet + + + + + Crestnet device + + + + + CEC Control, via a DM HDMI port + + + + + UDP Server + + + + + HTTP client + + + + + HTTPS client + + + + + Websocket client + + + + + Secure Websocket client + + + + + Secure TCP/IP + + + + + Processor info class + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ethernet info class + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Control subnet info class + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Program info class + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Contains debug commands for use in various situations + + + + + 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. + + + + + Describes the new 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 + + + + + + Callback for console command + + + + + + Callback for console command + + + + + + Sets the debug level + + Valid values 0 (no debug), 1 (critical), 2 (all messages) + + + + sets the settings for a device or creates a new entry + + + + + + + + Gets the device settings for a device by key or returns null + + + + + + + Sets the flag to prevent application starting on next boot + + + + + + + + + + + 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 + + + + + Prints message to console if current debug level is equal to or higher than the level of this message. Always sends message to Error Log. + Uses CrestronConsole.PrintLine. + + + + + 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. + + + + + 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 + + + + + Debug level to set for a given program. + + + + + When this is true, the configuration file will NOT be loaded until triggered by either a console command or a signal + + + + + Version for the currently loaded PepperDashCore dll + + + + + Error level to for message to be logged at + + + + + Error + + + + + Warning + + + + + Notice + + + + + None + + + + + Reads a Portal formatted config file + + + + + 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 + + + + + + + + XSig token types. + + + + + Digital signal datatype. + + + + + Analog signal datatype. + + + + + Serial signal datatype. + + + + + A class to allow user interaction with the PasswordManager + + + + + Constructor + + + + + Initialize method + + + + + Retrieve password by index + + + + + + Password validation method + + + + + + Builds the user entered passwrod string, will attempt to validate the user entered + password against the selected password when the length of the 2 are equal + + + + + + Clears the user entered password and resets the LEDs + + + + + Protected boolean change event handler + + + + + + + + Protected ushort change event handler + + + + + + + + Protected string change event handler + + + + + + + + If password changes while selected change event will be notifed and update the client + + + + + + + Password selected + + + + + Password selected key + + + + + Used to build the password entered by the user + + + + + Boolean event + + + + + Ushort event + + + + + String event + + + + + JSON password configuration + + + + + Constructor + + + + + Password object configured password + + + + + Represents a JSON file that can be read and written to + + + + + Abstract base class for JsonToSimpl interactions + + + + + A collection of associated child modules + + + + 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 + + + + + Saves the file + + + + + Helper event + + + + + + + + Helper event + + + + + + + + Helper event + + + + + + + + Notifies of bool change + + + + + Notifies of ushort change + + + + + Notifies of string change + + + + + Mirrors the Unique ID for now. + + + + + A unique ID + + + + + 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 + + + + + + + + + + + + + + + Deserializes a string into a JObject + + + + + + + Deserializes a string into a JArray + + + + + + Privates * + + + + SIMPL+ default constructor. + + + + + Read, evaluate and udpate status + + + + + Sets the debug level + + + + + + Saves the values to the file + + + + + Sets the filepath as well as registers this with the Global.Masters list + + + + + Filepath to the actual file that will be read (Portal or local) + + + + + + + + + + + + + + + Portal File Master + + + + 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 + + + + + File path of the actual file being read (Portal or local) + + + + + Client config object for TCP client with server that inherits from TcpSshPropertiesConfig and adds properties for shared key and heartbeat + + + + + TcpSsh Properties + + + + + Bool value for secure. Currently not implemented in TCP sockets as they are not dynamic + + + + + Require a shared key that both server and client negotiate. If negotiation fails server disconnects the client + + + + + The shared key that must match on the server and client + + + + + Require a heartbeat on the client/server connection that will cause the server/client to disconnect if the heartbeat is not received. + heartbeats do not raise received events. + + + + + The interval in seconds for the heartbeat from the client. If not received client is disconnected + + + + + HeartbeatString that will be checked against the message received. defaults to heartbeat if no string is provided. + + + + + Receive Queue size must be greater than 20 or defaults to 20 + + + + + Allows for two simultaneous TCP clients to connect to a redundant pair of QSC Core DSPs and manages + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default constuctor for S+ + + + + + Connects to both DSP units + + + + + + + + + + + + + + + + + + + Does not include line feed + + + + + Key to uniquely identify the instance of the class + + + + + Fires when a bool value changes to notify the S+ module + + + + + Fires when a ushort value changes to notify the S+ module + + + + + Fires when a string value changes to notify the S+ module + + + + + The client for the master DSP unit + + + + + The client for the slave DSP unit + + + + + A class to handle secure TCP/IP communications with a server + + + + + Internal secure client + + + + + Flag Set only when the disconnect method is called. + + + + + Semaphore on connect method + + + + + Queue lock + + + + + Queue to temporarily store received messages with the source IP and Port info. Defaults to size 20. Use constructor or set queue size property before + calling initialize. + + + + + Constructor + + + + + + + + + Contstructor that sets all properties by calling the initialize method with a config object. + + + + + + + Default constructor for S+ + + + + + Just to help S+ set the key + + + + + Initialize called by the constructor that accepts a client config object. Can be called later to reset properties of client. + + + + + + Handles closing this up when the program shuts down + + + + + Deactivate the client + + + + + + Connect Method. Will return if already connected. Will write errors if missing address, port, or unique key/name. + + + + + + + + + + Does the actual disconnect business + + + + + Called from Connect failure or Socket Status change if + auto reconnect and socket disconnected (Not disconnected by user) + + + + + Receive callback + + + + + + + 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 + + + + + + + + + + SocketStatusChange Callback + + + + + + + Helper for ConnectionChange event + + + + + Helper to fire ClientReadyForCommunications event + + + + + Stream debugging + + + + + Fires when data is received from the server and returns it as a Byte array + + + + + Fires when data is received from the server and returns it as text + + + + + + + + + + Auto reconnect evant handler + + + + + Event for Receiving text. Once subscribed to this event the receive callback will start a thread that dequeues the messages and invokes the event on a new thread. + It is not recommended to use both the TextReceived event and the TextReceivedQueueInvoke 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 + + + + + Defaults to 2000 + + + + + Bool showing if socket is connected + + + + + S+ helper for IsConnected + + + + + _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 + + + + + Connection failure reason + + + + + 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 + + + + + + + + + + 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 + + + + + Bool showing if socket is ready for communication after shared key exchange + + + + + S+ helper for IsReadyForCommunication + + + + + Bool Heartbeat Enabled flag + + + + + S+ helper for Heartbeat Enabled + + + + + Heartbeat String + + + + + Milliseconds before server expects another heartbeat. Set by property HeartbeatRequiredIntervalInSeconds which is driven from S+ + + + + + Simpl+ Heartbeat Analog value in seconds + + + + + Receive Queue size. Defaults to 20. Will set to 20 if QueueSize property is less than 20. Use constructor or set queue size property before + calling initialize. + + + + + Represents a device that implements IBasicCommunication and IStreamDebugging + + + + + + + + + + Connected + + + + + Disconnected + + + + + This delegate defines handler for IBasicCommunication status changes + + Device firing the status change + + + + + + + + + + + + + + + + S+ Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + S+ Constructor + + + + + + + + + + + + + + + + + + + + Gets escaped text for a byte array + + + + + + + Gets escaped text for a string + + + + + + + Gets debug text for a string + + + + + + + Represents an XSigSerialToken + + + + + Constructor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Class to help with accessing values from the CrestronEthernetHelper class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Class to persist current Debug settings across program restarts + + + + + To prevent threading issues with the DeviceDebugSettings collection + + + + + Default constructor + + + + + Sets the level of a given context item, and adds that item if it does not + exist + + + + + + + Gets a level or creates it if not existing + + + + + + + sets the settings for a device or creates a new entry + + + + + + + + Gets the device settings for a device by key or returns null + + + + + + + Collection of the debug settings for each device where the dictionary key is the device key + + + + + Contains information about + + + + + The level of debug messages to print + + + + + Property to tell the program not to intitialize when it boots, if desired + + + + + Web API server + + + + + Constructor for S+. Make sure to set necessary properties using init method + + + + + Constructor + + + + + + + Constructor + + + + + + + + Program status event handler + + + + + + Ethernet event handler + + + + + + Initializes CWS class + + + + + Adds a route to CWS + + + + + Removes a route from CWS + + + + + + Returns a list of the current routes + + + + + Starts CWS instance + + + + + Stop CWS instance + + + + + Received request handler + + + This is here for development and testing + + + + + + + Web API server key + + + + + Web API server name + + + + + CWS base path, will default to "/api" if not set via initialize method + + + + + Indicates CWS is registered with base path + + + + + Generic Master + + + + Privates * + + + + SIMPL+ default constructor. + + + + + Loads in JSON and triggers evaluation on all children + + + + + + Loads JSON into JsonObject, but does not trigger evaluation by children + + + + + + + + + + + Callback action for saving + + + + + + + + + + Constructor + + + + + Constants + + + + + Generic boolean change + + + + + Generic Ushort change + + + + + Response Code Ushort change + + + + + Generic String chagne + + + + + Response string change + + + + + Error string change + + + + + Web API default request handler + + + + + Constructor + + + + + Passcode client for the WebApi + + + + + An embedded JsonToSimpl master object. + + + + + SIMPL+ can only execute the default constructor. If you have variables that require initialization, please + use an Initialize method + + + + + Initializes the instance + + + + + + + + + Gets the user for a passcode + + + + + + + + + + + + + + + + + + + + After save operation on JSON master happens, send it to server + + + + + + Notifies when user received + + + + + Notifies when Preset received + + + + + Unique identifier for this instance + + + + + Delegate for notifying of socket status changes + + + + + + EventArgs class for socket status changes + + + + + + + + + + + S+ Constructor + + + + + + + + + + Delegate for notifying of TCP Server state changes + + + + + + EventArgs class for TCP Server state changes + + + + + + + + + + + S+ Constructor + + + + + + + + + + Delegate for TCP Server socket status changes + + + + + + + + EventArgs for TCP server socket status changes + + + + + + + + + + + + + + + + + + + + S+ Constructor + + + + + + + + + + + + + + + + + + + + EventArgs for TCP server com method receive text + + + + + + + + + + + + + + + + + + S+ Constructor + + + + + + + + + + + + + + + + + + + + EventArgs for TCP server client ready for communication + + + + + + + + + + + + + + + + S+ Constructor + + + + + EventArgs for UDP connected + + + + + + + + + + + + + + + Constructor + + + + + + + + + + + + + + + + + Generic secure TCP/IP server + + + + + Server listen lock + + + + + Queue lock + + + + + Queue to temporarily store received messages with the source IP and Port info. Defaults to size 20. Use constructor or set queue size property before + calling initialize. + + + + + A bandaid client that monitors whether the server is reachable + + + + + Timer to operate the bandaid monitor client in a loop. + + + + + + + + + + The connected client indexes + + + + + + + + + + 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. This does set Queue size. + + + + + + Disconnects all clients and stops the server + + + + + Initialize Key for device using client name from SIMPL+. Called on Listen from SIMPL+ + + + + + + Initialze the server + + + + + + 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?? + + + + + + + Get the IP Address for the client at the specifed index + + + + + + + Secure Server Socket Status Changed Callback + + + + + + + + Secure TCP Client Connected to Secure Server Callback + + + + + + + Secure Received Data Async Callback + + + + + + + + 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. + + + + + 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 Receiving text. Once subscribed to this event the receive callback will start a thread that dequeues the messages and invokes the event on a new thread. + It is not recommended to use both the TextReceived event and the TextReceivedQueueInvoke event. + + + + + 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. + + + + + Receive Queue size. Defaults to 20. Will set to 20 if QueueSize property is less than 20. Use constructor or set queue size property before + calling initialize. + + + + + 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 + + + + + Max number of clients this server will allow for connection. Crestron max is 64. This number should be less than 65 + + + + + 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 + + + + + + + + + + Controls the ability to disable/enable debugging of TX/RX data sent to/from a device with a built in timer to disable + + + + + Timer to disable automatically if not manually disabled + + + + + Constructor + + + + + + Sets the debugging setting and if not setting to off, assumes the default of 30 mintues + + + + + + Sets the debugging setting for the specified number of minutes + + + + + + + Disabled debugging + + + + + Device Key that this instance configures + + + + + The current debug setting + + + + + Timeout in Minutes + + + + + Indicates that receive stream debugging is enabled + + + + + Indicates that transmit stream debugging is enabled + + + + + The available settings for stream debugging + + + + + Debug off + + + + + Debug received data + + + + + Debug transmitted data + + + + + Debug both received and transmitted data + + + + + The available settings for stream debugging response types + + + + + Debug data in byte format + + + + + Debug data in text format + + + + + Debug data in both byte and text formats + + + + + Class to handle this specific exception type + + + + + default constructor + + + + + constructor with message + + + + + + constructor with message and innner exception + + + + + + + Constants for Simpl modules + + + + + + + + + + + + + + + Reports the if the device is 3-series compatible + + + + + Reports the if the device is 4-series compatible + + + + + Reports the device platform enum value + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reports the root directory change + + + + + Reports the room ID change + + + + + Reports the room name change + + + + + S+ values delegate + + + + + S+ values wrapper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + S+ types enum + + + + + Digital + + + + + Analog + + + + + String + + + + + 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! + + + + + Constructor for using a char delimiter + + + + + + + Constructor for using a single string delimiter + + + + + + + Constructor for using an array of string delimiters + + + + + + + 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 + + + + + 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 + + + + + + + + + + + + + + + + + Generic TCP/IP client for server + + + + + 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 + + + + + Constructor + + + + + + + + + Constructor for S+ + + + + + 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 + + + + + Notifies of text received + + + + + Notifies of socket status change + + + + + 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+ + + + + + Constructor + + + + + + + True when user is found + + + + + For stupid S+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a preset + + + + + Constructor + + + + + ID of preset + + + + + User ID + + + + + Room Type ID + + + + + Preset Name + + + + + Preset Number + + + + + Preset Data + + + + + + + + + + For Simpl+ + + + + + Constructor + + + + + + + True when the preset is found + + + + + S+ helper + + + + + The preset + + + + + Config properties that indicate how to communicate with a device for control + + + + + Constructor + + + + + The method of control + + + + + The key of the device that contains the control port + + + + + The number of the control port on the device specified by ControlPortDevKey + + + + + The name of the control port on the device specified by ControlPortDevKey + + + + + Properties for ethernet based communications + + + + + The filename and path for the IR file + + + + + The IpId of a Crestron device + + + + + Readonly uint representation of the IpId + + + + + Char indicating end of line + + + + + Defaults to Environment.NewLine; + + + + + Indicates + + + + + Used when communcating to programs running in VC-4 + + + + + Allows passwords to be stored and managed + + + + + Public dictionary of known passwords + + + + + Private dictionary, used when passwords are updated + + + + + Timer used to wait until password changes have stopped before updating the dictionary + + + + + Timer length + + + + + Constructor + + + + + Initialize password manager + + + + + Updates password stored in the dictonary + + + + + + + CTimer callback function + + + + + Method to change the default timer value, (default 5000ms/5s) + + + + + + Helper method for debugging to see what passwords are in the lists + + + + + Protected boolean change event handler + + + + + + + + Protected ushort change event handler + + + + + + + + Protected string change event handler + + + + + + + + Protected password change event handler + + + + + + + + Boolean event + + + + + Ushort event + + + + + String event + + + + + Event to notify clients of an updated password at the specified index (uint) + + + + + A class to handle basic TCP/IP communications with a server + + + + + The actual client class + + + + + Set only when the disconnect method is called + + + + + Constructor + + unique string to differentiate between instances + + + + + + + Constructor + + + + + + Default constructor for S+ + + + + + Just to help S+ set the key + + + + + Handles closing this up when the program shuts down + + + + + + + + + + + Attempts to connect to the server + + + + + Attempts to disconnect the client + + + + + Does the actual disconnect business + + + + + Callback method for connection attempt + + + + + + Disconnects, waits and attemtps to connect again + + + + + Recieves incoming data + + + + + + + General send method + + + + + This is useful from console and...? + + + + + Sends Bytes to the server + + + + + + Socket Status Change Handler + + + + + + + Object to enable stream debugging + + + + + Fires when data is received from the server and returns it as a Byte array + + + + + Fires when data is received from the server and returns it as text + + + + + + + + + + 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 + + + + + Bool showing if socket is connected + + + + + S+ helper for IsConnected + + + + + _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 + + + + + Ushort representation of client status + + + + + Connection failure reason + + + + + 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 + + + + + + + + + + Configuration properties for TCP/SSH Connections + + + + + Default constructor + + + + + Address to connect to + + + + + Port to connect to + + + + + Username credential + + + + + Passord credential + + + + + Defaults to 32768 + + + + + Defaults to true + + + + + Defaults to 5000ms + + + + + Tcp Server Config object with properties for a tcp server with shared key and heartbeat capabilities + + + + + Uique key + + + + + Max Clients that the server will allow to connect. + + + + + Bool value for secure. Currently not implemented in TCP sockets as they are not dynamic + + + + + Port for the server to listen on + + + + + Require a shared key that both server and client negotiate. If negotiation fails server disconnects the client + + + + + The shared key that must match on the server and client + + + + + Require a heartbeat on the client/server connection that will cause the server/client to disconnect if the heartbeat is not received. + heartbeats do not raise received events. + + + + + The interval in seconds for the heartbeat from the client. If not received client is disconnected + + + + + HeartbeatString that will be checked against the message received. defaults to heartbeat if no string is provided. + + + + + Client buffer size. See Crestron help. defaults to 2000 if not greater than 2000 + + + + + Receive Queue size must be greater than 20 or defaults to 20 + + + + + Helper methods for creating XSig byte sequences compatible with the Intersystem Communications (ISC) symbol. + + + Indexing is not from the start of each signal type but rather from the beginning of the first defined signal + the Intersystem Communications (ISC) symbol. + + + + + Forces all outputs to 0. + + Bytes in XSig format for clear outputs trigger. + + + + Evaluate all inputs and re-transmit any digital, analog, and permanent serail signals not set to 0. + + Bytes in XSig format for send status trigger. + + + + Get bytes for an IXSigStateResolver object. + + XSig state resolver. + Bytes in XSig format for each token within the state representation. + + + + Get bytes for an IXSigStateResolver object, with a specified offset. + + XSig state resolver. + Offset to which the data will be aligned. + Bytes in XSig format for each token within the state representation. + + + + Get bytes for a single digital signal. + + 1-based digital index + Digital data to be encoded + Bytes in XSig format for digtial information. + + + + Get bytes for a single digital signal. + + 1-based digital index + Index offset. + Digital data to be encoded + Bytes in XSig format for digtial information. + + + + Get byte sequence for multiple digital signals. + + Starting index of the sequence. + Digital signal value array. + Byte sequence in XSig format for digital signal information. + + + + Get byte sequence for multiple digital signals. + + Starting index of the sequence. + Index offset. + Digital signal value array. + Byte sequence in XSig format for digital signal information. + + + + Get bytes for a single analog signal. + + 1-based analog index + Analog data to be encoded + Bytes in XSig format for analog signal information. + + + + Get bytes for a single analog signal. + + 1-based analog index + Index offset. + Analog data to be encoded + Bytes in XSig format for analog signal information. + + + + Get byte sequence for multiple analog signals. + + Starting index of the sequence. + Analog signal value array. + Byte sequence in XSig format for analog signal information. + + + + Get byte sequence for multiple analog signals. + + Starting index of the sequence. + Index offset. + Analog signal value array. + Byte sequence in XSig format for analog signal information. + + + + Get bytes for a single serial signal. + + 1-based serial index + Serial data to be encoded + Bytes in XSig format for serial signal information. + + + + Get bytes for a single serial signal. + + 1-based serial index + Index offset. + Serial data to be encoded + Bytes in XSig format for serial signal information. + + + + Get byte sequence for multiple serial signals. + + Starting index of the sequence. + Serial signal value array. + Byte sequence in XSig format for serial signal information. + + + + Get byte sequence for multiple serial signals. + + Starting index of the sequence. + Index offset. + Serial signal value array. + Byte sequence in XSig format for serial signal information. + + + + Generic secure TCP/IP client for server + + + + + 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 + + + + + Queue lock + + + + + Queue to temporarily store received messages with the source IP and Port info. Defaults to size 20. Use constructor or set queue size property before + calling initialize. + + + + + Constructor + + + + + + + + + Constructor for S+ + + + + + Contstructor that sets all properties by calling the initialize method with a config object. + + + + + + + Just to help S+ set the key + + + + + Initialize called by the constructor that accepts a client config object. Can be called later to reset properties of client. + + + + + + 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 + + + + + + + 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 + + + + + + + + + + SocketStatusChange Callback + + + + + + + Helper for ConnectionChange event + + + + + Helper to fire ClientReadyForCommunications event + + + + + Notifies of text received + + + + + Notifies of auto reconnect sequence triggered + + + + + Event for Receiving text. Once subscribed to this event the receive callback will start a thread that dequeues the messages and invokes the event on a new thread. + It is not recommended to use both the TextReceived event and the TextReceivedQueueInvoke event. + + + + + Notifies of socket status change + + + + + 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 + + + + + + + + + + + + + + + + + + + + Milliseconds before server expects another heartbeat. Set by property HeartbeatRequiredIntervalInSeconds which is driven from S+ + + + + + Simpl+ Heartbeat Analog value in seconds + + + + + Receive Queue size. Defaults to 20. Will set to 20 if QueueSize property is less than 20. Use constructor or set queue size property before + calling initialize. + + + + + Band aid delegate for choked server + + + + diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/DmRmcControllerJoinMap.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/DmRmcControllerJoinMap.cs index 06dbd578..8352bb1d 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/DmRmcControllerJoinMap.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/DmRmcControllerJoinMap.cs @@ -70,7 +70,11 @@ namespace PepperDash.Essentials.Core.Bridges [JoinName("ScalerOutWallMode")] public JoinDataComplete ScalerOutWallMode = new JoinDataComplete(new JoinData { JoinNumber = 6, JoinSpan = 1 }, - new JoinMetadata { Description = "Number of Input Ports that support HDCP", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Analog }); + new JoinMetadata { Description = "Set Wall Mode for Scaler video Wall mode", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog }); + + [JoinName("ScalerOutWallModeRaw")] + public JoinDataComplete ScalerOutWallModeRaw = new JoinDataComplete(new JoinData { JoinNumber = 7, JoinSpan = 1 }, + new JoinMetadata { Description = "Set Wall Mode for Scaler video Wall mode", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog }); /// /// Constructor to use when instantiating this Join Map without inheriting from it diff --git a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/EndpointInterfaces.cs b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/EndpointInterfaces.cs index 489880f6..e7df4547 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/EndpointInterfaces.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/EndpointInterfaces.cs @@ -91,7 +91,7 @@ namespace PepperDash_Essentials_DM public interface IhasWallMode { - void SeteWallMode(ushort walLMode); + void SetWallMode(ushort walLMode); } } \ No newline at end of file diff --git a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Receivers/DmRmc4kZScalerCController.cs b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Receivers/DmRmc4kZScalerCController.cs index 6762687a..3b156405 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Receivers/DmRmc4kZScalerCController.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Receivers/DmRmc4kZScalerCController.cs @@ -27,6 +27,7 @@ namespace PepperDash.Essentials.DM public IntFeedback DmInHdcpStateFeedback { get; private set; } public IntFeedback HdmiInHdcpStateFeedback { get; private set; } + public BoolFeedback HdmiVideoSyncFeedback { get; private set; } private Dictionary WallModes; @@ -95,6 +96,7 @@ namespace PepperDash.Essentials.DM _rmc.HdmiOutput.ConnectedDevice.DeviceInformationChange += ConnectedDevice_DeviceInformationChange; _rmc.HdmiIn.InputStreamChange += InputStreamChangeEvent; _rmc.DmInput.InputStreamChange += InputStreamChangeEvent; + _rmc.Scaler.OutputChange += Scaler_OutputChange; _rmc.OnlineStatusChange += _rmc_OnlineStatusChange; @@ -254,7 +256,7 @@ namespace PepperDash.Essentials.DM #region IhasWallMode Members - public void SeteWallMode(ushort walLMode) + public void SetWallMode(ushort walLMode) { EndpointScalerOutput.eWall wallvalue; @@ -263,5 +265,13 @@ namespace PepperDash.Essentials.DM } #endregion + + public void SetWallModeRaw(ushort wallMode) + { + _rmc.Scaler.WallModeRaw.UShortValue = wallMode; + } + + void Scaler_OutputChange(object scaler ScalerOutputEventArgs args) + } } \ No newline at end of file diff --git a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Receivers/DmRmcHelper.cs b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Receivers/DmRmcHelper.cs index ee423436..0c9f6c66 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Receivers/DmRmcHelper.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Receivers/DmRmcHelper.cs @@ -26,7 +26,10 @@ namespace PepperDash.Essentials.DM public StringFeedback EdidManufacturerFeedback { get; protected set; } public StringFeedback EdidNameFeedback { get; protected set; } public StringFeedback EdidPreferredTimingFeedback { get; protected set; } - public StringFeedback EdidSerialNumberFeedback { get; protected set; } + public StringFeedback EdidSerialNumberFeedback { get; protected set; } + + public IntFeedback VideoWallModeFeedback { get; protected set; } + public IntFeedback VideoWallModeRawFeedback { get; protected set; } protected DmRmcControllerBase(string key, string name, EndpointReceiverBase device) : base(key, name, device) @@ -165,10 +168,21 @@ namespace PepperDash.Essentials.DM trilist.SetUShortSigAction(joinMap.AudioVideoSource.JoinNumber, - a => routingWithFeedback.ExecuteNumericSwitch(a, 1, eRoutingSignalType.AudioVideo)); + a => routingWithFeedback.ExecuteNumericSwitch(a, 1, eRoutingSignalType.AudioVideo)); + + var dmRmcScalerWithVideowall = rmc as DmRmc4kZScalerCController; + + if (dmRmcScalerWithVideowall != null) + { + trilist.SetUShortSigAction(joinMap.ScalerOutWallMode.JoinNumber, a => dmRmcScalerWithVideowall.SetWallMode(a)); + trilist.SetUShortSigAction(joinMap.ScalerOutWallModeRaw.JoinNumber, a => dmRmcScalerWithVideowall.SetWallModeRaw(a)); + + + } } + #region Implementation of IDeviceInfoProvider public DeviceInfo DeviceInfo { get; private set; } diff --git a/essentials-framework/Essentials DM/Essentials_DM/PepperDash_Essentials_DM.csproj b/essentials-framework/Essentials DM/Essentials_DM/PepperDash_Essentials_DM.csproj index 41136d0d..f1476a63 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/PepperDash_Essentials_DM.csproj +++ b/essentials-framework/Essentials DM/Essentials_DM/PepperDash_Essentials_DM.csproj @@ -59,9 +59,9 @@ ..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll - + False - ..\..\..\packages\PepperDashCore\lib\net35\PepperDash_Core.dll + ..\..\..\PepperDashCore.1.3.1\lib\net35\PepperDash_Core.dll False