Utilizing Network Command String block with Crestron
Tesira software allows for the creation of a Command String block that is network based. This allows the user to configure the block within a Tesira device to transmit text strings over TCP or UDP to a defined network server address. This communication can be referred to as 'Unsolicited Communication' meaning that the Client device sends information to the Server device without the Server device requesting the information.
The goal of this document is to provide a basic example of deploying the Tesira Network Command String Block with a Crestron control processor acting as the Server. This example does not require Crestron Biamp Tesira modules; however, it can be used in conjunction with those modules. Please note that this function is not limited to Crestron control processors.
Tesira setup
The first step will be to drop in the Command String block with Tesira software. Select the necessary number of strings when presented with the following dialog and the matching block will be created.
Next, we'll need to populate the block Properties with the appropriate information. Note that the Server Address and Remote Port defines the target to which strings will be sent.
The Network Command String block will only send when it receives a logic high input so we'll need to connect some logic inputs.
Additionally, we'll need to define the strings we want sent.
Server setup: Crestron
Within the Crestron program, one or multiple TCP/IP Servers will need to be setup. By setting the Default IP Address to 0.0.0.0 we allow the Server to receive connections from any (Client) IP address. Keep in mind that this Server needs to be online so that the Tesira Network Command String block (Client) can send strings to it.
Within the Program View of the Crestron program, the TCP/IP Server Port needs to be defined. In this example we are using port 65534. Additional signals will need to be created and connected within the Crestron program based upon the project needs.
We commonly see a Crestron Serial I/O implemented in the Crestron program to turn the received serial strings into a digital signals for use within the Crestron program. Notice that the strings str2 and str3 match the strings entered in the Tesira Network Command String block less the '~0A' line feed. When the Crestron TCP/IP Server receives strings sent by the Tesira, those strings are programmatically passed to the Serial I/O block in the Crestron program.
A Tesira example file can be downloaded here.
Troubleshooting
Once the Tesira and Crestron files have been loaded, the Tesira Network Command String block can be opened and each command string can be sent by clicking the associated Command Id button. These strings should be visible in SIMPL Debugger.
The most common error is related to proper IP and port configuration of the Tesira or Crestron device. The following Error messages may be experienced if the Tesira Network Command String block has issues connecting:
- Connect Error (101) = Unable to resolve destination address hostname.
- Connect Error (115) = Command string being triggered without an established connection to a receiving device.
Using UDP
When deploying the Network Command String block the user does have the option of using UDP protocol instead of TCP. UDP is considered a connectionless protocol which means that there is no guarantee of nor verification of delivery. This does make UDP a bit faster and smaller in packet size. Further information about the pros and cons of TCP and UDP can be found on the web if so desired.
In the Properties of the Network Command String block, the Protocol type will need to be set to UDP. Notice that the Local Port and Remote Port will both be set the same:
The Creston System View will require a UDP/IP Communications device. The IP address will need to be set to that of the Tesira that will be sending UDP communications:
Notice that the same port is used for transmit and receive.