Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

As of BrightSignOS 8.2.10, the syncmanager object provides synchronization capabilities for video walls and other deployments that require closely calibrated interaction among players. Note that syncmanager requires PTP to be enabled on players via the registry, which is a separate operation. To configure a player, use the roRegistrySection.Write() method to set the ptp_domain key of the networking section to a value between 0 and 127. The PTP synchronization service will start on the player after it is rebooted.

syncmanager IDL
Code Block
languagejs
[
    constructor(String networkInterface, String domain, String multicast_address, unsigned multicast_port)
] interface SyncManager {
            attribute boolean leader;
            attribute String networkInterface;
   readonly attribute String domain;
            attribute boolean encrypted;
            attribute boolean encryptionKeyIsObfuscated;
  writeonly attribute String encryptionKey;
   void synchronize(in String id, in unsigned long ms_delay);
   void close()
};

Object Creation

To create an syncmanager object, first load the brightsign/syncmanager module using the require() method. 

...

The constructor for a sync manager object takes four arguments:

  • network_interface string:  The network interface (for example, "eth0")

  • domain string:  The domain identifier used to distinguish among different roSyncManager instances.

  • multicast_address string: The multicast address to which synchronization messages are communicated.

  • multicast_port int: The multicast port to which synchronization messages are communicated.

SyncManager

synchronize()
Code Block
languagejs
void synchronize(in String id, in unsigned long ms_delay)

...

The synchronization message is sent over all available networks (including WiFi), but follower units will use only the first message received. The PTP messages, which are used by the firmware during synchronization, are sent over Ethernet only.

Because synchronization can involve follower units seeking to catch up with the playback of a leader unit, we recommend using the more efficient MOV/MP4 container format when synchronizing video files. Transport Stream files (MPEG-TS) are also supported, but they must begin with a presentation timestamp (PTS) of 0. Program Stream files (MPEG-PS) are not supported.

close()
Code Block
languagejs
void close()

Shuts down the instance, freeing the underlying sync manager. 

SyncManager Properties

  • leader boolean:  A read/write boolean attribute to set/get whether the sync manager is a leader, or a follower.

  • networkInterface string: A read/write string attribute to set/get which network interface the sync manager uses (for example, "eth0", "wifi0"). The networkInterface parameter can be "" to allow any network interface.

  • domain boolean:  A read-only string attribute which returns the domain for the sync manager

encryptedencryptionKey and encryptionKeyIsObfuscated are used to configure the use of encryption with the sync manager:

  • encrypted boolean: A read/write attribute that controls whether the sync manager uses encryption: If true, encryption is enabled on the unit. 

  • encryptionKeyIsObfuscated boolean: A write-only string attribute which is used to set the key used for encryption. Contact support@brightsign.biz to learn more about generating a key for obfuscation and storing it on the player.

  • encryptionKey string: A write-only string attribute which is used to set the key used for encryption

Example

This HTML code lets you listen for sync messages using syncmanager

...