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