Connecting to: Wheatstone
In this guide, we will go through steps to connect directly to Wheatsone units to get current statuses and subscribe to changes to Logical Input Output ports (LIO), as well as Software Logical Input Output ports (SLIO).
Wheatstone units have built in Logical Input/Output (LIO) ports as well as Software Logical Input/Output ports (SLIO), both of which can be programmed to respond to certain events and triggers to change the status of the output ports. These are usually used as a physical contact closure to turn on/off lights outside studios or other various things needed.
The Screenabl app can connect directly to the unit and get the current status of any port as well as subscribe to any change events that occur.
Note: This guide assumes that you already have knowledge of how to configure Wheatstone units to enable the LIO/SLIO outputs as desired. This guide will not go into any information about how to set up Signals, Functions or Crosspoints etc.
Testing to see what is coming out.
Before adding configuration to Screenabl it's best to know what commands are coming in & out of the Wheatstone unit. We think it's best to use a 3rd party application and send commands to the Wheatstone unit and see what is coming back when changes to the LIO/SLIO ports are detected.
We recommend a simple app called SocketTest which allows you to connect to the unit and send text commands to it to subscribe to LIO/SLIO ports and see the status and change events in real time. Alternatively If you don't want to use that particular application PuTTY can also be used in a "RAW" connection type. For this guide, we will be using SocketTest as we feel it has a better UI.
Connecting to the Wheatstone unit.
To connect to the Wheatstone unit you have to be on the same network and the unit must be reachable. You can test this by doing a simple ping test if needed.
We recommended that you do this test on the same machine that will be running Screenabl so that you know that you won't have network/connection issues when using the Screenabl app.
- In the "Client" tab add the IP Address of the unit and set the port number to
55776
. Then press Connect:
- When you are successfully connected the "connect" button will change to a "disconnect".
Subscribing to an LIO to get it's status and change events.
The LIO ports in a Wheatstone unit (there are usually 12) are offset by 2 when subscribing to them and run continuously from LIO 1 > LIO 2. Once connected, you can send it an initial command to subscribe to each port by sending it the following commands (each as their own message):
Port # | Command |
---|---|
LIO 1 Pin 2 | <LIOSUB:0.0|LVL:1> |
LIO 1 Pin 3 | <LIOSUB:0.1|LVL:1> |
LIO 1 Pin 4 | <LIOSUB:0.2|LVL:1> |
LIO 1 Pin 5 | <LIOSUB:0.3|LVL:1> |
LIO 1 Pin 6 | <LIOSUB:0.4|LVL:1> |
LIO 1 Pin 7 | <LIOSUB:0.5|LVL:1> |
LIO 2 Pin 2 | <LIOSUB:0.6|LVL:1> |
LIO 2 Pin 3 | <LIOSUB:0.7|LVL:1> |
LIO 2 Pin 4 | <LIOSUB:0.8|LVL:1> |
LIO 2 Pin 5 | <LIOSUB:0.9|LVL:1> |
LIO 2 Pin 6 | <LIOSUB:0.10|LVL:1> |
LIO 2 Pin 7 | <LIOSUB:0.11|LVL:1> |
- Enter the desired command into the Message field at the bottom of the SocketTest window and press Send. Eg/ To subscribe to LIO 1 Pin #7:
You should receive a response back with the current status of the port:
<OK>
<LIOEVENT:0.5|LVL:0>
From this point on, your connection is "subscribed" to changes to that port, so any changes will instantly be received:
Each status message received shows the "LVL" value of that port. It will be a 1
or 0
(for high and low respectively).
You can subscribe to multiple ports in the one SocketTest session to see mutiple port changes in the one window. Simply send the next subscribe command after the first (each as their own message). This, in a nutshell, is how the Screenabl app works with Wheatstone units.
Subscribing to an SLIO (Software Logic Port)
Unlike the LIO ports, the SLIO ports are NOT offset and just use the port #, thus the command initially sent and received are slightly different. Depending on the Wheatstone unit the number of SLIO ports may vary.
Port # | Command |
---|---|
SLIO Port 1 | <SLIOSUB:1|LVL:1> |
SLIO Port 2 | <SLIOSUB:2|LVL:1> |
SLIO Port 3 | <SLIOSUB:3|LVL:1> |
... | ... |
SLIO Port 64 | <SLIOSUB:64|LVL:1> |
etc... |
Like the LIO ports, you will receive the response back in the slightly different format. Eg/ <SLIOEVENT:29|LVL:0>
or <SLIOEVENT:29|LVL:1>
Configuring Source in Screenabl
Once you are happy with the initial subscribe commands you require as well as have an idea of the events which are received, you can proceed to set up the new source in Screenabl and get it talking to the Wheatstone Unit.
- In the Screenabl settings window, go to Sources and then press the button at the top right.
- Give your new source a Name. This is used throughout the settings window when choosing and connecting to a source, so be sure to make it one you'll recognise (eg/ "Studio 1 Wheatstone Blade 3").
- Choose "TCP/IP" from the Type dropdown.
- Enter the IP Address of the unit, and set the Port to be "55776".
- In the Initial Commands to send on connect input, add in each of the subscribe commands you require. Pressing ENTER after each one will add it to the list. If you make a mistake you can remove each one by pressing the "x".
- It is suggested to set a Heartbeat frequency of 1-2 minutes with Wheatstone units as they have a tendancy to close inactive TCP connections. You can adjust the time period if you need. You can set the Heartbeat Message to any text (just not a subscribe command or reserved word from Wheatstone). We recommend something simple like "ping".
Note:Screenabl automatically reconnects if a connection is closed, but a heartbeat ensures the connection is always open when needed and reduces the chance of incoming events being delayed.
Your new TCP source should look something like this:
- When you are happy with the settings, press the button.
Congratulations! Your new Wheatstone source is now configured and ready to be used!
Configuring a Trigger
Now that you have your new TCP source set up for your Wheatstone unit, you can use it as a trigger source in lamps or timers.
Since the status events received from Wheatstone units are simple text, eg/ <SLIOEVENT:63|LVL:1>
, the trigger set up is very simple.
In the below example we will be editing a Lamp to add triggers to turn it on/off.
- Edit the lamp (or Timer) and click on the Triggers tab.
- Click on the button at the top right.
- Choose your new source from the dropdown list.
- Choose the event you wish to setup from the Trigger Event dropdown.
(eg/ "Turn Lamp On")
- Select Plain Text from the Command Format dropdown.
- Paste in the desired Command into the input (eg/
<SLIOEVENT:63|LVL:1>
)
The trigger should look something like this:
- Press the button.
To add the "Turn Lamp Off" trigger, you would follow the same steps, choose the different Trigger Event and use the different Command text (eg/ <SLIOEVENT:63|LVL:0>
):
Wrapping Up.
You have now added the new source and its initial commands, as well as added triggers to a lamp so it will respond to changes in events when they're received from the Wheatstone unit!
The Screenabl app will only connect to a source if it is used by the current profile. If a lamp is configured to use a Wheatstone unit as a trigger source but the current profile isn't using that lamp, then the app will not connect to the Wheatstone unit. When the app is changed to a profile which uses the lamp, the app will automatically connect to the Wheatstone unit when the profile loads and subscribe to all the events. When the profile is changed again the connection is then closed until it is needed again.
This ensures that any Wheatstone unit you have do not have unnecessary connections to it when it's not required.