Xpression Automation Gateway

The XPression Automation Gateway is a Windows application which runs on the same PC as the XPression studio software. It communicates with XPression via the COM SDK, while receiving incoming commands from TCP/IP or serial ports using the Oxtel Imagestore Protocol.

This gives the following significant advantages:

  • The XPression system can be controlled remotely, without the pain of Distributed COM
  • The Oxtel protocol is more powerful and expressive than Chyron CII
  • The Oxtel protocol is widely supported by Broadcast Automation systems.


XAG is supplied as a standard Windows Installer program, and must be installed directly on the same PC as XPression. Because XAG uses the XPression COM SDK, it requires either XPression Studio or XPression BlueBox.

XAG will work with any Windows-compatible COM ports installed on the system, including virtual COM ports and COM port redirectors.

To install XAG, run the XAG installer application. You will be presented with a familiar series of screens to confirm your acceptance of the EULA, and offering a choice for alternative installation locations.You will have received a license file by email from Ross Video, usually called customername-XAG.lice. To install the license, place this file in the same directory as your copy of XAG.
This is typically C:\Program Files\Ross Video\XPression Automation Gateway. You can tell if your version is correctly licensed from the ‘About Box’, which will display license information. If you have a temporary license installed, the expiry date will be shown.

Moving Licenses to other PCs

XAG licenses may be node-locked to a specific IP address. If you need to move these licenses to another XPression system, you will require a new license file.

Upgrading Software

If you install a newer version of XAG on top of an earlier version, all your licensing details will be preserved.


When started, XAG will accept incoming Oxtel format Automation commands on TCP port 5006. Your firewall software will need to be configured to allow XAG to accept sessions on this port. Multiple simultaneous sessions are supported, and tallies are broadcast to all connected sessions that have enabled them.

As well as TCP sessions, XAG will accept serial connections on any number of serial ports. To select which serial ports are to be used, choose items from the Ports menu. This menu will automatically display all installed serial ports, including virtual ports and COM port redirectors. Serial port settings default to 38400 baud, 1 stop, no parity, but can be changed by editing the.INI file in V1.1.1 and later.


XAG is designed to work without any operator intervention, but includes a few debug tools. The eight DSK buttons correspond to the DSK layers 1 to 8. they can be pressed to turn DSKs on and off, and will tally the current state according to automation controls. The text box next to each DSK button will display the name of the currently loaded scene.

The logging window below shows a variety of logging and error messages. Right-clicking in this window will bring up a log management menu for saving and clearing the log window.

Scenes and Layers vs. Keyers and Logos

An XPression ‘scene’ equates to a ‘logo’ or ‘image’ on an Imagestore.  Each XPression ‘layer’ maps to an Imagestore ‘keyer’, and can hold a single image/scene. As there’s no Imagestore equivalent to an XPression’s ‘Project’, the required project must be loaded manually in advance.

Datasource Mapping

Here’s what happens when text is sent to a named ‘datasource’:

  1. All text objects whose name matches the datasource name have their content changed to the new value
  2. Any material whose name matches the datasource name have the filename of their first shader changed to the new value

Supported Commands

Code Command Notes
1  Fade Keyer Up/Down
3 Cut Keyer Up/Down
8 Load Image By Number Loads a scene whose name matches the number, e.g. “99”
A Erase Store
B Set Transition duration
M Enquire system Status
O Enquire Image Loaded Status
j7 Audio Enquire
m0 Set Global Datasource Updates named text objects, and also named material shader file.
m4 Enquire Global Datasource list
m5 Enquire Global Datasource value
R0 Load image by name Loads the specified scene
R3 Enquire File Info Returns if scene exists
R4 Enquire First Image
R5 Enquire Next image
R6 Enquire Extended File Information Returns if scene exists
R7 Preload Image
Ra Image count
RA Validate Template Returns true if scene exists
S0 Start Animation
S1 Stop Animation
S2 Set Animation Frame
S4 Restart Animation
Ua Enquire Mix Mode
W5 Enquire DVE preset Dummy response
X1 Enquire License Code Dummy response
X2 Insert log Message
X3 Enquire Command Availability
X5 Enquire Input Colour Fields Dummy response
X6 Enquire Voltages Dummy response
X9 GPI Special Dummy response
XK Enquuire Serial Number Dummy response
Y6 Enable Video Tallies
Y7 Request Wakeup Packet
Y8 Enable Audio Tallies
YB Enable Media Tallies Dummy response
Ya Set Passive Mode Dummy response
Z0 Update Text Field
Z3 Render Box
Za Enquire TextBox
Zb Enquire Template Dummy response

See also…