Information
RTTrPL is used to stream lighting fixture and DMX information to third parties interested in overwriting fixture DMX values sent from a lighting console, for control over said fixtures. RTTrPL output should be triggered by motion data, DMX input, show starting/stopping, and third party requests. As such, it should not send at a fixed rate like the RTTrPM protocol.
Data Structures
An RTTrPL packet is a list of universes, each of which contains a nested list of spots (fixture IDs), which further contain a nested list of channels and their values:
-
Controlled Universe
-
Controlled Fixtures within each Universe
-
Channels to be controlled
-
DMX Values of controlled channels
General Information
-
In general the Peer is responsible for DMX merging
-
The Peer buffer and RTTrPL generating buffer need to be synchronized
-
Synchronization model: Snapshot / Update, which balances performance and implementation difficulty
-
Snapshot and Update share the same packet format, the type should be indicated by the Action field in the Lighting Output module
-
Snapshot contains all channels of all universes that are being controlled while Update changes only a portion of the buffer
-
An Update may contain one or more universes
-
Hold Time controls when to release the buffer, if a timeout ouccurs, the Peer should release its buffer
-
Out of Sync detection: Lighting Sequence in Lighting Output module is a sequentially increasing number, if the Peer receives packets out of sequence, it should wait for a Snapshot packet from the generator to re-sync
Downloads
The RTTrP Repository has stub code available which contains packet definitions of RTTrPL. Please visit the following for Python and C++ code respecitvely: