Data feed synchronization
From SpinetiX Support Wiki
Introduction
When using a data-driven widget with an external data source on more than one screen area of a multiscreen project, an additional level of synchronization is required because the remote web server may not respond to each HMP exactly at the same time.
The solution is to use the synchronization variable available for Elementi X users, starting with Elementi 2015. For all the other users, some alternatives are detailed below.
A synchronized retrieval of the data feed content can also be used in other cases than multiscreen content, for instance when the bandwidth usage is important (e.g., 3G connection) or not all the HMP devices have access to external networks.
Synchronization variable
To synchronize the retrieval of data feed content across multiple HMP devices with firmware 4.3.0 or later, follow these steps:
- Select one of the HMPs as the master player.
- Open HMP Control Center ⇾ Advanced Applications ⇾ Network API and generate a client configuration file.
- Save the generated configuration file and upload it to all players connecting to this "master" player.
- Open Elementi X and select one of the data feed widgets.
- Click the button to edit the data source properties. Data Properties dialog opens.
- In the "Synchronize with variable" field, enter a unique name for a Shared Variable to be used for data synchronization.
- Set the 'Refresh' property to the frequency at which your data feed must be refreshed.
For players with firmware below 4.3.0, follow these steps:
- Make sure that all the HMP devices are using at least firmware 4.0.0 - update the firmware otherwise.
- Select an HMP as the master.
- Make sure that the Network API is enabled.
- Write down the IPv4 address of the master HMP.
- Open Elementi X.
- Open the data-driven widget.
- Click the button to edit the data source properties. Data Properties dialog opens.
- In the "Synchronize with variable" (previously called "Sync variable") field, enter a string composed of the name of a Shared Variable, followed by "@IP_of_master_HMP" (e.g., "data@192.168.1.10").
- Set the 'Refresh' property to the frequency at which your data feed must be refreshed.
Synchronization variable required
Data feeds with a network source require a synchronization variableAlternatives
- A proposed workaround for this issue is to write a script, that runs on just one device, which retrieves the data source content and updates a Shared Variable. The data source for the data feed widget can then be changed from the feed URL to the name of the Shared Variable, so that all the devices will look for and take the feed updates from this shared variable.
- An alternative workaround is to set a fixed duration within the widget and set the widget layer duration to indefinite (i.e. the circular arrow icon is shown), so that it will be repeated forever. This is simpler to implement, but is less accurate, since the data feed content might be out of sync up to that iteration. Also, another negative effect is that at the end of the iteration, the data-driven widget will suddenly be restarted.