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