Interactivity via RS232

Introduction

Interactivity via RS232 refers to the player quality of reacting in a user-defined manner, following the input received from external devices via serial connection. This means that the player can interact with practically any RS-232 standard compliant device connected to its serial port, both to receive and send data messages. For instance, a message received on the serial port could trigger a content switch on the screen. Or the player could send a message on the serial port when a certain event occurs, like turning the screen on in the morning.
Here are some examples of third-party devices that can used:
- Control Systems: Crestron (e.g., MPC-M5-B-T), AMX, Extron
- Queue Management Systems: Qmatic
- GPS receivers: Navman, Evermore
- contact closure / relay controllers: NCD, Quasar, Neets QueBec
On the implementation side, the RS232 communication is handled through two distinct methods:
Configuration

The first step is to enable and configure the serial port usage from Control Center → Peripherals → Serial page.
Next, if you have written a serial port protocol file, you must activate it on the player from Peripherals → Automation (Settings: Advanced).
How to create interactive content
Using JavaScript COM API
Currently, there's no interactive built-in widget included into Elementi Library for this type of interactivity, yet it should be fairly easy (though some JavaScript knowledge is required) to install a handler for com events as explained on the JavaScript COM API page.
Using a protocol file
Alternatively, an FSM protocol file can be written to translate RS232 input messages into Shared Variable update actions or into interactive events. With other words:
- Use the
<onInput>
transition to match the command sent from the external device.- The matching is done using either the
data
ormatch
attribute. You can also change the state using thegoto
attribute.
- The matching is done using either the
- Inside this transition or the specified state, use either the
<update>
action (to update a Shared Variable) or the<fire>
action (to fire an interactive event). - Use one of the interactive widgets from Elementi Library to implement a reactive action.
For such FSM files examples, see Receiving commands, Sending and receiving commands and NMEA-0183 protocol file. For a sample project, see GPS test project.
Troubleshooting
See the Serial port troubleshooting section for more details.