Commands Related to Push¶
(GPU) Get Push-enabled Controllers
(PU) Global Push Enable/Disable
(PU) Global Push Enable/Disable
This command enables or disables the push feature. When enabling, a range of controls can be specified to allow pushing only certain values. Disabling is always global and prevents any unsolicited data from being pushed. The syntax of the command is:
PU \
Where \
If the command is accepted, the device will respond with the string:
ACK\
If the command is interpreted but fails for any reason the device will respond with the string:
NAK\
At power-on, push is always enabled. Remember that individual control numbers must be enabled using the Push Enable command as well. Data is pushed whenever a change in that controller occurs or if forced to refresh using the Push Refresh command.
Note: Global Push Enable with a range specified, e.g. PU 1 100 200\
(PUE) Push Enable
This command enables the push feature for an individual control or range of controls. The syntax of the command is:
PUE [\
Where \
to push. \
If the command is accepted, the device will respond with the string:
ACK\
If the command is interpreted but fails for any reason the device will respond with the string:
NAK\
At power-on, push is enabled for all controls in Symetrix systems. Remember that individual control numbers must have the Enable Push setting active in Composer. Data is pushed whenever a change in an enabled control occurs or if forced to refresh using the Push Refresh command. Changes that happen while a control is disabled will be pushed immediately upon enabling that control. The Push Disable command is the inverse of this command and provides a way to turn off controls for push.
(PUD) Push Disable
This command enables the push feature for an individual control or range of controllers. The syntax of the command is:
PUD [\
Where \
If the command is accepted, the device will respond with the string:
ACK\
If the command is interpreted but fails for any reason the device will respond with the string:
NAK\
At power-on, push is enabled for all controls in Symetrix systems. Remember that individual control numbers must have the Enable Push setting active in Composer. The Push Enable command is the inverse of this command and provides a way to turn on controls for push.
(GPU) Get Push-enabled Controls
This command returns a list of all controls currently enabled for push. A range may optionally be specified to limit the display to controls enabled for push within that range. The syntax of the command is:
GPU [\
Where \
If the command is accepted, the device will respond with a list of enabled control numbers separated by \
ACK\
If the command is interpreted but fails for any reason the device will respond with the string:
NAK\
Special case: Entering GPU 0\
Global=1\
00001 10000 00001 00001 00100\
(PUR) Push Refresh
This command causes data to be pushed immediately even if it hasn’t changed (assuming push is enabled). This may be useful when trying to synchronize a control system to the device. A range of controllers can be specified to refresh only certain values.
The syntax of the command is:
PUR [\
Where \
If the command is accepted, the device will respond with the string:
ACK\
If the command is interpreted but fails for any reason the device will respond with the string:
NAK\
At power-on, all control values are assumed to have changed, so it acts as if a full refresh was performed. Remember that individual control numbers must have the Enable Push setting active in Composer. In addition, push must be enabled for the range of controls you are refreshing (see Push Enable/Disable). Control umbers that don’t meet this criterion will not be affected by the Push Refresh command. In other words, if a control is not enabled for push, refreshing it won’t cause the value to be pushed even if that control is later enabled. The control must be enabled for push at the time the Push Refresh command is issued.
(PUC) Push Clear
This command causes previous changes in data to be ignored and not pushed. It may be desirable to issue this command when first enabling push to prevent being swamped by the flood of incoming data. A range of controls can be specified to clear only certain values. The syntax of the command is:
PUC [\
Where \
If the command is accepted, the device will respond with the string:
ACK\
If the command is interpreted but fails for any reason the device will respond with the string:
NAK\
It may be useful to issue this command if push has been disabled for a long time and then is about to be re-enabled. Otherwise, you will immediately receive notification for all changes that occurred during the disabled time.
(PUI) Set Push Interval
This command changes the minimum length of time between consecutive pushes of data. (See “How often is data pushed?” for more information.) At power-up, this value defaults to 100 milliseconds. The syntax of the command is:
PUI \
Where \
If the command is accepted, the device will respond with the string:
ACK\
If the command is interpreted but fails for any reason the device will respond with the string:
NAK\
While setting a short interval can speed up the push response, it may have a negative impact on overall system performance. The shorter the interval, the more time will be spent looking for push data. This can slow down responses to other RS-232 commands and Composer. Therefore, we recommend using the longest interval that is practical, especially if data is being pushed while Composer is on-line. The default value of 100 milliseconds usually provides a good compromise between prompt reports of changing data and overall system performance.
Note that in cases where many controllers are changing rapidly, the serial baud rate may ultimately limit the update rate. Using the highest possible baud rate is recommended.
(PUT) Set Push Threshold
This command changes the push threshold value. Please remember that data is only pushed when it changes. The threshold is the amount a value must change from the previous push before it is pushed again. For example, if a controller value was 10,000 and the threshold was 1,000, the data would not be pushed again until the value rose to at least 11,000 or fell to 9,000 or below.
Edge actually maintains two different thresholds: one for parameter data such as faders and buttons, and another for meters (including LEDs). These two thresholds can be set to the same value or be different. It may be desirable to use a fairly large threshold for meters to avoid constant pushing of values. The power-on default for both of these values is 1. The syntax of the command is:
PUT [\
Where \
If the command is accepted, the device will respond with the string:
ACK\
If the command is interpreted but fails for any reason the device will respond with the string:
NAK\
Technical Note: The threshold is a “greater than or equal to” type parameter, meaning it must be met (or exceeded) to trigger a push. For example: if the threshold is 1 and the last value pushed was 10,000, then a new value of 10,001 or 9,999 would cause a push to occur. A threshold of 0 acts just like 1.