Local Network Triggers
Table of Contents
In addition to the Remote Actions that let you control an IntuiFace Experience with predefined actions, you can also use a generic Message is received trigger to receive any information from a third party application or device.
This trigger can be used with all third party software plus any peripherals or other devices like sensors and RFID / barcode readers from which you would like to send information to a running IntuiFace experience based on certain conditions.
- This article concerns scenarios in which IntuiFace Player is either located on the same device as a peripheral or in an environment with no Internet access. If Internet access is available, use IntuiFace's Web Triggers API instead as it is more flexible.
- Local Network Triggers replace the External Triggers mechanism. Opening an older IntuiFace experience in Version 6.2 will cause any use of the External Triggers mechanism to be upgraded - and thus replaced - by Local Network Triggers. (For example, the Local Network Triggers interface asset will be added to your experience.) You do NOT need to modify the URL calls received by your External Triggers. Those URL calls, although not using the new syntax described below, will continue to work.
The local network trigger mechanism is based on the HTTP protocol and the ability of IntuiFace Player to operate like a simple Web server.
Step One: Have your service/device send a GET or POST request using the IP address or hostname of the PC running Player (depending on your network configuration) and port 8000. This message can contain up to four parameter values. The message will look like this:
http://[PC_Running_Player]:8000/intuiface/sendMessage?message=xxxx¶meter1=yyyy¶meter2=zzzz¶meter3=aaaa. All four parameters are optional.
- calling from the same PC running Player:
- calling from a device on the same local network:
- calling from the same PC running Player:
Step Two: On the IntuiFace side, add the "Local Network Triggers" interface asset to your experience.
For that interface asset, in the parameters section of the Message is received trigger, specify the scene scope - either an individual scene, a set of scenes, or the entire experience. (For information about experience-level triggers, see here.)
The Message is received trigger has one "Message filter" parameter and - accessible via binding (see below) - three read-only parameters: "Parameter 1", "Parameter 2", "Parameter 3". You can use conditional triggers based on the values of these parameters to further constrain when this trigger will be raised.
In the following image, both "TagReceived" and "123" must be received for the trigger to be raised:
By leaving the "Message filter" field blank and applying no conditionals, you're stating the trigger should be raised for all values received by this "Message is received" trigger.
Received trigger parameter values are accessible via binding. In the following example, we're assigning the value of "Parameter 1" to a conditional for the "Message is received" trigger. This binding can also be used elsewhere in the experience. For example, a parameter value could be assigned to a Text Asset.
NOTE: If you don't set up a conditional, the "Message is received" trigger will occur for all possible parameter values. This rule also applies to messages with no parameter values if your "Message is received" trigger does not use conditionals.
The Local Network Triggers mechanism can also be used to send messages to other Players located on the local network. With this ability you can
- test your use of the 'Message is received' trigger by sending messages from an experience built just to generate messages
- coordinate actions between multiple experiences in a live deployment
NOTE: This ability to send messages is only available in Player for Windows and Composer.
The "Send message" action is the one and only action exposed by the Local Network Triggers interface asset:
- Device Name / IP Address Enter either the name or IP address of the device running the targeted Player. A port of 8000 will be assumed. If a different port is required, add it to the device name or IP address reference.
- Message / Parameter 1 / Parameter 2 / Parameter 3 Optional parameters