Push Commands¶
Where (out what port) is the data pushed?
What does pushed data look like?
Should I use the push feature or poll for parameter changes?
How can I control the amount of data pushed?
How does push work at power-up?
What about pushed system strings?
I’m not receiving unsolicited data. Any suggestions for troubleshooting?
What are the limitations of this feature?
Units can send out unsolicited RS-232 and Ethernet data as a result of parameter values changing within the unit.
All parameters that can be externally controlled can be configured to automatically send out their values whenever they change. This method, referred to as pushing data, can be used instead of, or in addition to, polling (asking for data).
When using this feature, ensure that your system can handle the volume of data you set up and that it can differentiate between responses to commands and pushed data.
Commands used to control the push feature are described below. Also, the following questions and answers provide a detailed discussion of this feature, including real-world problems and solutions.
When is data pushed?
For data to be pushed:
1) a control number must be enabled for push in Composer
2) individual parameters must be enabled to push using the Push Enable command.
Then, the control value will be sent out:
1) whenever the controls underlying parameter changes or
2) when a refresh command is issued via RS-232 or Ethernet.
Regardless of if the parameter change is made via the control application, RS-232, RS-485, preset recall, analog control or any other method, the data will be pushed. This means for example that if your control system changes a control value set up for push, you will immediately receive notification of that change.
Where (out what port) is the data pushed?
The data is sent out the RS-232 port and the Ethernet port (both UDP and TCP) of the Symetrix unit.
What does the pushed data look like?
The format for unsolicited or "push" data is the same as the GSB2 command. Strings consist of the control number and its value in the following format:
#\
Where\
Up to 64 strings, separated with a \
Example:
#00007=12321\
#00324=00128\
#10000=65535\
Should I use the push feature or poll for parameter changes?
The decision is up to you. Use whichever method makes more sense for your application and control system. Manual polling is often simpler to implement initially because all data from the unit is a direct response to command you send it, simplifying parsing. However, in situations where a large number of parameters that change infrequently need to be monitored, pushing may make more sense. You may also prefer the convenience of not needing to set up a timer to continually poll parameters for changes. Use whatever method is appropriate for your situation.
How often is data pushed?
If there is data to be pushed, it is normally sent out every 100 milliseconds. This is called the push interval. While 100 ms is the default, the push interval can be changed via a Set Push Interval (PUI) command.
Can I push meter data?
Yes, meters can be enabled for push. Keep in mind that with normal audio signals connected to a meter, the meter value will most likely be changing constantly, so you will typically see the meter data being pushed at every 100 ms interval. However, a Set Push Threshold command can be used to prevent pushes until the data differs by a specified amount (by default, this amount is 1). Another option is to use an LED display, peak detector, and/or threshold detector modules instead of directly pushing the meter date.
How can I control the amount of data pushed?
There are several methods for controlling pushed data. First, since pushed data is enabled on a per-control basis, your first line of defense is to limit it to only certain controls. Second, pushing can be globally turned on and off using this protocol. Third, pushing can be enabled for just a range of control numbers. Fourth, the Set Push Threshold command can be used to prevent pushes until the data changes by a specified amount. Fifth, the Set Push Interval command controls how often the data is pushed, useful for meters and other data that changes frequently. Finally, the Push Refresh and Push Clear commands provide additional methods of control.
I want to refresh everything to make sure my control system is synchronized to the hardware. How can I receive all data even if it hasn’t changed?
Use the Push Refresh command. Alternatively, you could use the Get Control commands to manually ask for the controls you are concerned with.
Sometimes my control system turns off push for an extended period of time. When I turn it on, will I be notified of all changes that occurred while push was turned off?
Yes, by default, all changes made while push was off will be immediately reported as soon as it is turned on. This applies to both turning push off globally or for individual controls via the Push Disable command. Take care that your system can handle the potentially large amount of data that can be generated. It may be helpful to "gradually"� turn on the push feature, enabling a small range of control numbers at once. You can also use the Push Clear command to deal with this scenario. It allows you to effectively ignore all previous unreported changes.
What is the difference between the Global Push Enable/Disable (PU) command and the Push Enable (PUE) and Push Disable (PUD) commands? Why are there 2 different ways to specify a range of controls?
The Global Push Enable/Disable command can be used to completely turn off push, or turn on push for all or a single contiguous range of control numbers. In contrast, the Push Enable/Disable command allows much finer control. Individual (non-contiguous) controls can be turned on and off, hence multiple ranges are supported.
The reason both methods are provided is for backwards compatibility. The less flexible "single range" global PU command was added first. Later, the more flexible PUE and PUD commands were added as an enhancement. The older global method was left in so existing programs wouldn't need to be modified. We recommend that you use either one system or the other exclusively. Do not combine them. New designs should use the PUE and PUD commands and never use the PU command with a range specified.
What is the difference between using the Push Enable (PUE) and Push Disable (PUD) commands and using the “Enable Push” button in Composer?
Both of these methods can be used to enable or disable an individual control for push. The difference is that changing the setting in Composer requires you to push to the design to hardware again, whereas the Push Enable and Push Disable commands take effect immediately and are intended to be used for "on the fly" changes. In addition, Composer settings are permanent across power cycling, whereas changes made with the Push Enable and Push Disable commands are reset by a power cycle (all controls default to enabled). Please note that the "Enable Push"� button acts as an override so it must be enabled for a control ever to push. You cannot issue a Push Enable command for a parameter that doesn't have the "Enable Push" setting active.
How does push work at power-up?
When a unit is first powered up, push is globally turned on and all controls are individually enabled. All control numbers are assumed to have changed. This means that after power-up, you will immediately receive all current values.
What about pushed system strings?
The pushing of system strings enabled/disabled in the Site Preferences. When enabled, any changes made to speed dials, etc. will be pushed out the RS-232 port and the Ethernet port of the Symetrix unit. They also push on a Site File push and unit power up.
I’m not receiving unsolicited data. Any suggestions for troubleshooting?
First of all, make sure that general communication is working between your control system and the Symetrix RS-232 port or Ethernet port. Make sure you can send commands and receive ACK messages. Try the Flash Unit (FU) command.
Make sure the parameters you want pushed have the "Enable Push" setting active in Composer. You can verify this using the Control Manager, and making sure there is a "Yes" in the Push column. Be sure you Go On-Line (Push Design To Hardware) or F4 after making any changes in Composer.
For Ethernet, make sure the Ethernet port is connected to the same network as the control system. Verify the connection LED on the Ethernet jack and/or switch is lit. Verify you can "ping" the unit using its IP address.
Make sure the push feature has been globally enabled using the Global Push Enable/Disable command. Push is globally enabled on power-up, but may be turned off via RS-232 or Ethernet. Power cycling the unit is a quick way to verify this.
Make sure the individual controls have been enabled using the Push Enable command. Push is disabled for all controls on power-up, and must be turned on via RS-232 or Ethernet. Sending a PUE command is a quick way to enable all controls.
Make sure the parameter to be pushed is changing. Change the parameter via the control application, a Control Set command, or other method. You can also use the Push Refresh command to force the data to be sent. If you have changed the push threshold, make sure the parameter is changing by an amount larger than the threshold.
For Ethernet, the unit needs to know the proper IP address to send the data. Make sure at least one command has been sent from the control system to the unit. If the control system ever changes IP addresses, another command must be sent to establish the new address.
What are the limitations of this feature?
If multiple parameters change at the same time, up to 64 control numbers will be sent out during each push interval (default 100 ms) until all have been sent out. This maximum rate may be further limited by your RS-232 baud rate. If a large amount of data is being pushed, we recommend using the highest baud rate your system can support. A baud rate of 115200 is sufficient to prevent further limiting of the throughput.