0% found this document useful (0 votes)
10 views25 pages

Composer-Control-Protocol-v7.0-080918

The document outlines the Symetrix Control Protocol for Composer, detailing how to communicate with various Symetrix units using RS-232, TCP/IP, or UDP/IP. It includes information on command structures, connection configurations, and specific commands for controlling system parameters such as faders and buttons. Additionally, it provides guidelines for setting up and managing multiple units within a network using unique site identifiers.

Uploaded by

RCD KaKa Id
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views25 pages

Composer-Control-Protocol-v7.0-080918

The document outlines the Symetrix Control Protocol for Composer, detailing how to communicate with various Symetrix units using RS-232, TCP/IP, or UDP/IP. It includes information on command structures, connection configurations, and specific commands for controlling system parameters such as faders and buttons. Additionally, it provides guidelines for setting up and managing multiple units within a network using unique site identifiers.

Uploaded by

RCD KaKa Id
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Composer v7.

0
Control Protocol

www.symetrix.co | T +1.425.778.7728
Table of Contents

Contents Commands Related to Push 15-18


(PU) Global Push Enable/Disable 15
Introduction 3
(PUE) Push Enable 16
About This Document 3
(PUD) Push Disable 16
Conventions Used In This Document 3
(GPU) Get Push-enabled Controllers 16
General Notes 3-4
(PUR) Push Refresh 17
Connections 3
(PUC) Push Clear 17
RS-232 Port Configuration 3
(PUI) Set Push Interval 18
Ethernet Port Configuration 3
(PUT) Set Push Threshold 18
Ethernet Control 3
RS-485 Control 4 Setup Commands 19
(SB) Set Baud 19
Site Identifier 4
(SQ) Set Quiet Mode 19
Parameter Notes 5-7
(EH) Set Echo Mode 19
Faders 5
Faders with User Min and User Max Limits 5 System Commands 20
(NOP) No operation 20
Buttons 6
(Q!) Quit TCP/IP session 20
Input and Output Selectors 6
(RI) IP address 20
Meters 6
(V) Version 20
LEDs 6
(R!) Reboot 20
Other Parameters 6
Diagnostic Controls 6 Special Command Prefixes 21
Parameters That Cannot Be Controlled Externally 7 ($e) Echo Mode 21
($v) Verbose Mode 21
Getting Started 7
Protocol 7 ($q) Quiet Mode 21

Control Commands 7-13 Super Matrix Mixer Control Protocol 21-24


(CS) Controller Set 7 Background 21

(CSQ) Controller Set Quick 8 Features to Control 21

(CC) Change Controller 8 Commands 21

(GS) Get Controller 8 Basic Examples 22

(GS2) Get Controller with Controller Number 9 Range Examples 23

(GPR) Get Preset 9 Return Value 23

(GSB) Get Controller Block 9 Polling for Changes 24

(GSB2) Get Controller Block with Controller Number 10


(GSB3) Get Controller Block with Controller Number 10
(LP) Load Preset 11
(FU) Flash Unit LEDs 11
(SSYSS) Set System String 11
Dialing VoIP Strings 12
(GSYSS) Get System String 12

Pushing GSYSS String Values 13

Push Commands 13-15

www.symetrix.co | T +1.425.778.7728
2 of 25
Introduction and General Notes

Introduction Symetrix (Terminal Block Female) Control System (DB9 Male)


Terminal Block DB9 Male

About This Document Pin 1 Pin 3 Pin


1
Signal
Ground
Pin Signal
1
Pin 1 Pin 5

2 RX 2 TX

The purpose of this document is to introduce the Symetrix 3 TX 3 RX


4

Control Protocol for Composer. This document defines and 5 Ground


6

illustrates the protocol used to communicate with Edge,


7
8
9
Radius, Radius AEC, xControl, or other compatible Symetrix Pin 2 Pin 6 Pin 9

units via a third-party control interface using RS-232, TCP/IP,


or UDP/IP. The commands Set Baud, Set Quiet Mode and Set Echo
affect the RS-232 port. Composer determines the start-up
Compatible units can be controlled by third-party controllers values of these settings, though this can be changed during
such as AMX or Crestron models, or any RS-232 or Ethernet a session. The unit’s default settings (Baud 57600, Quiet
equipped unit that can be adapted to the Composer control Mode ON, Echo OFF) are typical for most applications.
protocol. The protocol consists of human-readable text These commands are documented for reference on page
commands and responses. 18.
Control is achieved by using a scheme of user-assigned Ethernet Port Configuration
controller numbers. Nearly anything that can be adjusted Generally, no special configuration is required for the
from the Composer control and configuration application Ethernet port. The Ethernet port on the unit may be used
can be controlled externally by referencing the appropriate for both the Composer control application and for external
controller numbers that are defined using Composer. control.
Take note of the unit’s IP address (listed in the System
Conventions Used In This Document Manager), as you will need to send all commands to this
Values enclosed in [square brackets] are optional parameters address.
and do not need to be included. If omitted, default values The commands Set Quiet Mode and Set Echo affect the
will be used as described for each command. Ethernet port. Composer determines the start-up values
The term “control application” is used to refer to Composer of these settings, though this can be changed during a
session. The unit’s default settings (Quiet Mode ON, Echo
software provided by Symetrix to configure and control
OFF) are typical for most applications.These commands are
Symetrix units. documented for reference on page 18.
General Notes Ethernet Control
The Ethernet protocol uses the same RS-232 command
Connections protocol over an Ethernet network. Both TCP/IP and
Units are equipped with an Ethernet port and one or more RS- UDP can be used to control the system. TCP/IP control
232 ports. Either port may be used to control the unit. Ethernet functionality was added in Composer 3.0. TCP/IP control
does not use any of the options or escape sequences found
is generally preferred because of the simplified set-up and
in Telnet. Up to six TCP/IP telnet sessions can be active at
higher data rates. one time (four with versions prior to Composer 6.0).
RS-232 Port Configuration If a seventh TCP/IP connection is initiated, the least recently
used session will be automatically closed. Sessions may also
Connect your RS-232 based accessory remote to the be closed manually with the Q! command described later in
RS-232 port. For testing purposes, a terminal emulation this document.
program such as HyperTerminal, TeraTerm, or puTTY can
Control systems should avoid closing and re-opening TCP
be run on a PC instead. Typically this connection requires
connections if possible. Keeping a single TCP session open
a “straight through” cable, but a null-modem cable may be to send multiple commands through will result in much
required depending on the manufacturer. In general, if the better performance than opening and closing a session for
genders of the two connectors you are trying to connect each command.
are the same, a “null modem” cable is required. Set up the
controller for baud: 57600, data bits: 8, stop bits: 1, parity: To control the system with Ethernet, command strings are
NONE. No handshaking or flow control is used. The straight- sent as the payload of a UDP/IP or a TCP packet. The
through pin out for a typical application is shown in the following rules should be observed in sending commands:
following figure.

www.symetrix.co | T +1.425.778.7728
3 of 25
General Notes
• Commands should be sent to UDP or TCP port number 48631 Note: The RS-232 serial port and the Ethernet port are
of the Edge or Radius unit’s IP address. The IP address may be essentially independent. They maintain separate settings
found using the Connection Wizard or on some units’ front panel for quiet and echo modes. Commands sent to one port are
displays. not echoed out the other, and responses are sent only to
• Commands should be formatted exactly as defined in this the port from which the command was received. Hence, the
document and include a carriage return that terminates the two ports will not necessarily send out the same data. One
command. exception to this is push data and strings, which are sent
out both RS-232 and Ethernet ports in parallel.
• Command strings may or may not include a zero termination
character. RS-485 Control
• Commands should not be broken up across multiple packets. RS-485 control is generally done using one or more of the
• If high reliability communications are required, responses to Symetrix ARC (Adaptive Remote Controller) units. Further
commands should be analyzed for success. discussion of RS-485 and the ARCs can be found on the
Symetrix web site.
Responses to commands will exhibit the following behavior:
• Responses to each command issued are returned in a single Site Identifier
packet unless the response is larger than a single packet By default, any control data sent to a Symetrix unit (via
can hold. Responses will not have any single carriage return- ARC, RS-232, UDP/IP, or TCP/IP) will be re-broadcast over
terminated line broken up across packets unless there is no Ethernet by the unit that receives the command to all units
carriage return in the data of the response. that are connected via Ethernet. This ensures that multiple
• Responses are returned only to the IP address and source Symetrix units with the same Site Identifier that are using
port number that sent the packet. Other connections will see the same control numbers will also receive and interpret the
responses if the particular control numbers are ‘push’ enabled. command and respond to the command appropriately (i.e.,
adjust faders, button states, etc).
• Responses follow the configuration of the port, just as if it were
an RS-232 port. For example, echo mode and quiet mode are When the system consists of multiple independent site files
kept independently for the RS-232 port, the UDP port and the on the same network and you do not want control data
TCP port. for common control numbers to be shared between these
different site files, each site file must have a unique site
• Responses do not include a zero-termination character. identifier set in Composer. Unique Site Identifiers in the site
• All transmissions originating from units will either be responses to file inform other systems with different site identifiers on the
commands or pushed data. same network to ignore the re-broadcasted commands.
Each command sent to a Symetrix unit contains information Using unique Site Identifiers for different site files on the
in the Ethernet packet header as to who sent the command, same network does not require any change in how the
and hence, where a response will be sent. This source systems are controlled from a third-party control system.
information is saved when a packet is received by a Symetrix The third-party control system continues to send commands
unit. For UDP, all responses go to the last received IP to the Symetrix device to be controlled and that device
address and port and this IP address and port number are
re-broadcasts that command along with the additional
saved in non-volatile memory across power cycles. For TCP,
the control system must re-initiate the TCP connection after information of the site identifier onto the network. Symetrix
a power cycle. units with Site Identifiers that are different from the site
identifier in the re-broadcasted command will simply ignore
Until the first command is received, responses will not know
the re-broadcasted command.
where they are supposed to be sent. This normally is not an
issue as communication from the Symetrix unit is generally
a response to a command. However, if the Symetrix unit is
set up to push control data, it will also be pushed out the
TCP and UDP ports. If no valid packets have ever been
received by a Symetrix unit and no TCP/IP connections are
active, pushed data will not be sent out the Ethernet port. If
a Symetrix unit and a TCP connection is active, then pushed
data will be transmitted over TCP. If valid packets have been
received over UDP by a Symetrix unit, then pushed data will
be transmitted over UDP.
Pushing of data can be controlled independently for RS-232
and Ethernet ports.

www.symetrix.co | T +1.425.778.7728
4 of 25
Parameter Notes
To set the identifier, within Composer, navigate to Tools > Note that some faders have a different range than –72 to
Site Preferences and change the site identifier as shown in +12dB. In this case, the formula will depend upon the actual
the following figure. fader range. The more general formula is shown below:
Volume dB = MINIMUM VALUE + (MAXIMUM VALUE – MINIMUM
VALUE)*(CONTROLLER POSITION/65535)
Where MINIMUM VALUE is the fader’s lower limit in dB and
MAXIMUM VALUE is the fader’s upper limit in dB.

Faders with User Min and User Max Limits


There are some applications where it is desired to limit the
range of adjustments for an end user, perhaps to allow a
more useable range of adjustment than the full range of the
fader or to prevent the system from getting too loud. To
limit the gain range of a fader to a user minimum and user
maximum range, the following formulae may be used.
In the following discussion, it is assumed that the range of
the variables (in dB) are as follows:
MAXIMUM VALUE ≥ User Maximum ≥ User Volume ≥ User
Minimum ≥ MINIMUM VALUE
The controller position is calculated the same as described
previously:
To determine the controller position based on a desired
User Volume in dB, then the controller value is calculated as
follows:
Controller Position = (User Volume in dB – MINIMUM VALUE) *
65535 / (MAXIMUM VALUE – MINIMUM VALUE )
The percentage value of the fader control relative to the User
Min and User Max values is computed as:
Volume Percent = (User Volume in dB – User Min) / (User Max –
User Min)
Parameter Notes The controller position required to set the fader to a
percentage of the user min and user max may be computed
Faders as follows:
Faders can be controlled to the limits of their minimum Controller Position = (Volume Percent * (User Max – User Min)
and maximum values shown in the Design View screens in + (User Min – MINIMUM VALUE)) * 65535 / (MAXIMUM VALUE –
Composer. A controller position of zero (0) will cause the MINIMUM VALUE)
minimum fader position to be realized. A controller position
of 65535 will cause the maximum fader position to be For example, if the Maximum and Minimum Values are +12
and -72, respectively, and the desired User Max and User
realized. Increasing positions will move the fader linearly in
Min are +6 and -30 respectively, then the controller value for
dB. setting the fader to -8dB is:
Most volume faders have a range of -72dB to +12dB. In Controller Position = ((-8) – (-72))* 65535 / ((+12) – (-72)) =
these cases, the following formula can be used to convert 49931
from controller position to dB:
The controller position corresponding to 35% volume with
Volume dB = -72 + 84*(CONTROLLER POSITION/65535) the same User Max and User Min range would be:
If CONTROLLER POSITION = 0, Volume dB = OFF Controller Position = (35% * ((+6) - (-30)) + ((-30) - (-72))) *
65535 / ((+12) - (-72)) = 42598
For these faders, a value of 780 is approximately equal to a
1dB change in gain.

www.symetrix.co | T +1.425.778.7728
5 of 25
Parameter Notes
Calculating the Volume in dB from the Volume Percentage with 65535 representing 100% and 0 representing 0%.
would be done as follows: The formula below can be used to calculate a percentage
Volume in dB = (Volume Percent * (User Max – User Min)) + User Min reading from a controller value:

In this example, the volume in dB corresponding to 50% of Level % = 100*(CONTROLLER VALUE/65535)


the volume would be calculated as: Note: Meters are a “read-only” parameter. Attempting to
Volume in dB = 50% * ((+6) – (-30)) + -30 = -12 dB change the meter value will have no effect.

Buttons LEDs
Buttons such as a mute or bypass can be controlled LEDs in various modules can be read via the control
similarly with controller positions by sending the minimum protocol. The read back value will be either 65535 if the LED
value (0) to turn the switch off (button not pushed) and is on or 0 if the LED is off.
sending the maximum value (65535) to turn the switch on Note: LEDs are a “read-only” parameter. Attempting to
(button pushed). change the LED value will have no effect.
Input and Output Selectors
Diagnostic Controls
A value of zero (0) will select the first input or output and a
value of (65535) will select the last input or output. Other Connected LED
values are selected by sending evenly spaced (linear) values The read back values are:
as shown by the formula below:
0 = Disconnected
Controller Value = (INPUT NUMBER - 1) 65535 = Connected
*65535/(NUMBER OF INPUTS - 1)
Network Diagnostics Panel
Note: for an output selector, replace “INPUT” with DHCP Enabled LED - Only DHCP Enable can be read unless
“OUTPUT” above. using SymVue. The read back values are:
0 = DHCP Disabled
Meters
65535 = DHCP Enabled
Meters can be read via RS-232 or Ethernet. The read back
value will be linear in dB with 65535 representing +24 dBu (0 Power Supply Diagnostics Panel
dBFS) and 0 representing -48 dBu (-72 dBFS) (or less). The All voltages are in .001V increments offset by 32768. The
formula below can be used to calculate a dB reading from a read back values of 0-65535 translate to -32.768V-32.767V.
controller value: Status LED - The read back values are:
Level dBu = 72*(CONTROLLER VALUE/65535) - 48 0 = OK
65535 = Failed
If CONTROLLER VALUE = 0, Level dBu <= -48 dBU
Thermal Diagnostics Panel
Input and output meters in some other modules such as
Compressors and AGCs can also be read. In this case, the Peak temperature date and time can only be read in
read back value will be linear in dB with 65535 representing SymVue. All temperatures are in .01 degree C increments
the maximum value shown on the meter and 0 representing offset by 32768. The read back values of 0-65535 translate
the minimum value shown on the meter (or less). The to -327.68V-327.67V.The Fan speed is 0-65535 Hz.
formula below can be used to calculate a dB reading from a Status LED – Send -65535 to clear, The read back values are:
controller value: 0 = OK
Level dB = (MAXIMUM VALUE - MINIMUM VALUE) 65535 = Failed
*(CONTROLLER VALUE/65535) + MINIMUM VALUE
Control Diagnostics Panel
If CONTROLLER VALUE = 0, Level dB <= MINIMUM VALUE
All read back values:
Where MINIMUM VALUE is the meter’s lower limit in dB and 0 = Inactive/Off
MAXIMUM VALUE is the meter’s upper limit in dB. 65535 = Active/On
Control meters in dedicated control meter modules can
also be read. In this case, the read back value will be linear

www.symetrix.co | T +1.425.778.7728
6 of 25
Getting Started and Control Commands

Other Parameters Getting Started


Many other parameters such as compression ratios, Protocol
delay times, EQ settings and pans can also be controlled
externally. In fact, almost any DSP parameter in Composer The Control Protocol is a text-based (ASCII string) protocol.
can be controlled. For other parameter types, as in the Commands are sent with simple character strings with terms
above examples, sending a value of zero (0) will set the separated by spaces and completed with a carriage return
parameter to its minimum value and sending a value of character <CR> (ASCII code decimal 13). The general form
(65535) will set it to its maximum value. Ratios, frequencies, for commands is:
width/Q, and attack/release/hold times all use a logarithmic
scale. Pans and delay times use a linear scale. Quantities <COMMAND> <PARAMETER1> <PARAMETER2> … <CR>
expressed in dB such as gains, volumes, thresholds and A white space character (space or tab) must be included
depths are linear in dB. When in doubt, experiment by between the command and each parameter. Extra white
changing a value from the control application and reading it space characters can be sent for readability if desired. In
back via RS-232 or Ethernet. this document a single space will be used. If a command
is accepted, the unit will respond to each command with
Parameters That Cannot Be Controlled an acknowledgement string whose syntax varies with each
Externally command.
The following Composer features cannot be controlled
externally. In some cases, work arounds are suggested. Control Commands
FUNCTION DESCRIPTION (CS) Controller Set
1. Oscilloscope: Trigger and Auto-Range Use this command to move a controller position to a new
controls absolute value. The command must specify the controller
2. Parametric/British EQ: Flatten All and Octaves/Q number and the new controller position. The syntax of the
buttons command is:
3. Graphic EQ: Flat button
CS <CONTROLLER NUMBER> <CONTROLLER
4. Feedback Fighters: Response Preset buttons POSITION><CR>
5. Matrix: Mute All and Disconnect
Where <CONTROLLER NUMBER> is the decimal
All buttons (use individual
mute or disconnect buttons
controller number (1-10000) assigned in Composer, and
instead) <CONTROLLER POSITION> is a 16-bit number in decimal
(0-65535).
6. Mixers: Link buttons (assign same
controller to all linked faders If the command is accepted, the unit will respond with the
instead) string:
7. SPL Computers: Calibrate button
ACK<CR>
8. Loudspeaker Flatten All
Managers: If the command is interpreted but fails for any reason the unit
9. Send/Return: Meters (use meters inside will respond with the string:
I/O blocks) NAK<CR>
10. Delay: Default temperature button
11. Meter Bar: All meters A typical reason for failure is that the specified controller
number does not exist.
12. Fader Control Input: Log/linear buttons
13. String Output: All parameters
14. RS-232/485 Input: Controller number

www.symetrix.co | T +1.425.778.7728
7 of 25
Control Commands

(CSQ) Controller Set Quick (GS) Get Controller


Use this command to move a controller position to a new This command will return the controller position (value)
absolute value quicker than using the CS command. The associated with a specific controller number. The command
CS command may take up to 40ms before responding must specify the controller number. The syntax of the
with an ACK because the unit is verifying that the specified
<CONTROLLER NUMBER> exists in the site. The CSQ command is:
response will be sent with 5-10ms for a single operation and
within 2ms each for single burst operations. The command GS <CONTROLLER NUMBER><CR>
must specify the controller number and the new controller Where <CONTROLLER NUMBER> is the decimal controller
position. The trade off is that the CSQ command will not number (1-10000) assigned in Composer.
check to see if the specified <CONTROLLER NUMBER>
exists in the site. Note: It will always respond with an ACK If the command is accepted, the unit will respond with the
even if it does not. If your control system does not need to string:
check that the controller number was correctly set, the CSQ
command may be used without any downside. <CONTROLLER POSITION><CR>
The syntax of the command is: Where controller position is a 16-bit number in decimal (0-
65535)
CSQ <CONTROLLER NUMBER> <CONTROLLER POSITION><CR>
Where <CONTROLLER NUMBER> is the decimal If the command is interpreted but fails for any reason the unit
controller number (1-10000) assigned in Composer, and will respond with the string:
<CONTROLLER POSITION> is a 16-bit number in decimal
(0-65535). NAK<CR>
The device will respond with the string whether it recognizes A typical reason for failure is that the specified controller
the controller number or not: number does not exist.
ACK<CR> If the value being requested is a button that only has
two states, the returned values will be either 0 or 65535,
(CC) Change Controller regardless of the actual value sent to the controller. For
example, assume controller number 1 controls a mute
Use this command to move a controller to a new relative button. If you send
value. This command will increment or decrement a
controller by a specified amount. The command must CS 1 754 <CR>
specify the controller number, whether it should be and then
incremented or decremented, and the amount to change by.
The syntax of the command is: GS 1 <CR>

CC <CONTROLLER NUMBER> the response will be


<DEC/INC> <AMOUNT><CR> 0<CR>
Where <CONTROLLER NUMBER> is the decimal controller not
number (1-10000) assigned in Composer, <DEC/INC> is
0 to decrement and 1 to increment, and <AMOUNT> is 754<CR>.
the amount to increment or decrement (a decimal number, More generally, if the parameter you are controlling has
0-65535). If the amount to be decremented or incremented granularity coarser than the 16-bit values used, the returned
causes the parameter to exceed its minimum or maximum values will be quantized to the granularity of the parameter.
value, the value will be limited to its minimum or maximum
value. For example, if you increment a parameter by 10 and Controls where you might observe this effect are buttons as
its current value is 65530, the new value will be limited to mentioned above and input selectors.
65535. If the same controller number is controlling multiple
If the command is accepted, the unit will respond with the parameters in Composer, only one acknowledgement value
string: is returned from the system.
ACK<CR>
If the command is interpreted but fails for any reason the unit
will respond with the string:

NAK<CR>
A typical reason for failure is that the specified controller
number does not exist.

www.symetrix.co | T +1.425.778.7728
8 of 25
Control Commands

(GS2) Get Controller with Controller (GSB) Get Controller Block


Number This command will return the controller position (value) of
This command will return the controller number with a specific range of consecutive controller numbers. The
controller position (value) associated with it together in the command must specify the starting controller number and
same string. This command is provided at the request of the number of consecutive controllers to return. The syntax
third-party control programmers, including AMX/Crestron of the command is:
programmers, to make it easier to interpret and parse
GSB <CONTROLLER NUMBER> <BLOCK SIZE><CR>
returned controller positions. The command must specify
the controller number. The syntax of the command is: Where <CONTROLLER NUMBER> is the decimal controller
number (1-10000) assigned in Composer and <BLOCK
GS2 <CONTROLLER NUMBER><CR> SIZE> is the number of consecutive controllers. Note that
Where <CONTROLLER NUMBER> is the decimal controller <BLOCK SIZE> can be at most 256.
number (1-10000) assigned in Composer. If the command is accepted, the unit will respond with the
If the command is accepted, the unit will respond with the string:
string:
<CONTROLLER POSITION1><CR>
<CONTROLLER NUMBER> <CONTROLLER POSITION><CR>
<CONTROLLER POSITION2><CR>
Where controller position is a 16-bit number in decimal
(65535). <CONTROLLER POSITION3><CR>
For example, sending the command …
GS2 368 <CR> <CONTROLLER POSITIONn><CR>
Will return the response in the format below when the
parameter value is 47114: Where <CONTROLLER POSITIONn> is a 16-bit number
in decimal (0-65535), or -1 if a controller does not exist. The
368 47114 <CR> values will always be five digits, with leading zeros added as
If the command is interpreted but fails for any reason the unit necessary (e.g. 7 would be returned as 00007<CR> and -1
will respond with the string: would be returned as -0001<CR>.)

NAK<CR> If the command is interpreted but fails for any reason the unit
will respond with the string:
A typical reason for failure is that the specified controller
number does not exist. NAK<CR>

(GPR) Get Preset A typical reason for failure is that the requested block size
is larger than 256. For more information and tips on reading
This command will return the last preset that was loaded. back controller numbers, see the GS command.
The syntax of the command is:
Example command sent:
GPR<CR>
GSB 9 3<CR>
If the command is accepted, the unit will respond with the
string: Example Response:

<PRESET NUMBER><CR> 32321<CR>

The <PRESET NUMBER> return value will be 0-1000. A 00256<CR>


return value of 0 indicates that no preset has been recalled.
The value for the preset number will always be 4 digits, with 00003<CR>
leading zeros added as necessary (e.g. 7 would be returned
as 0007).
If the command is interpreted but fails for any reason the unit
will respond with the string:

NAK<CR>

www.symetrix.co | T +1.425.778.7728
9 of 25
Control Commands

(GSB2) Get Controller Block with Controller (GSB3) Get Controller Block with Controller
Number Number
This command will return the controller number with This command will echo the command and then return the
controller position (value) associated with it for a specific controller number with controller position (value) associated
range of consecutive controller numbers. The command is with it for a specific range of consecutive controller numbers.
very similar to GSB described above, but the return string The command is very similar to GSB2 described above, but
may be easier to process in some systems. The command the return string includes the original command followed by
must specify the starting controller number and the number
the GSB2-style response. The syntax of the command is:
of consecutive controllers to return. The syntax of the
command is:
GSB3 <CONTROLLER NUMBER> <BLOCK SIZE><CR>
GSB2 <CONTROLLER NUMBER> <BLOCK SIZE><CR>
Where <CONTROLLER NUMBER> is the decimal controller
Where <CONTROLLER NUMBER> is the decimal controller number (1-10000) assigned in Composer and <BLOCK
number (1-10000) assigned in Composer and <BLOCK SIZE> is the number of consecutive controllers. Note that
SIZE> is the number of consecutive controllers. Note that
<BLOCK SIZE> can be at most 256. <BLOCK SIZE> can be at most 256.
If the command is accepted, the unit will respond with the If the command is accepted, the unit will respond with the
string: string:
#<CONTROLLER NUMBER1>= GSB3 <CONTROLLER NUMBER> <BLOCK SIZE> <CR>
<CONTROLLER POSITION1><CR>
#<CONTROLLER NUMBER1>=
#<CONTROLLER NUMBER2>= <CONTROLLER POSITION1><CR>
<CONTROLLER POSITION2><CR>
#<CONTROLLER NUMBER2>=
#<CONTROLLER NUMBER3>=
<CONTROLLER POSITION3><CR> <CONTROLLER POSITION2><CR>
… …
#<CONTROLLER NUMBERn>=
<CONTROLLER POSITIONn><CR> #<CONTROLLER NUMBERn>=
<CONTROLLER POSITIONn><CR>
Where <CONTROLLER NUMBERn> is the decimal
Where <CONTROLLER NUMBERn> is the decimal
controller number (1-10000) assigned in Composer and
controller number (1-10000) assigned in Composer and
<CONTROLLER POSITIONn> is a 16-bit number in <CONTROLLER POSITIONn> is a 16-bit number in
decimal (0-65535), or -1 if a controller does not exist. The decimal (0-65535), or -1 if a controller does not exist.
values for the controller number and position will always be If the command is interpreted but fails for any reason the unit
five digits, with leading zeros added as necessary (e.g. 7 will respond with the string:
would be returned as 00007 and -1 would be returned as
-0001). NAK<CR>
If the command is interpreted but fails for any reason the unit A typical reason for failure is that the requested block size is
will respond with the string: larger than 256.
NAK<CR> Example command sent:
A typical reason for failure is that the requested block size GSB3 140 3<CR>
is larger than 256. For more information and tips on reading
back controller numbers, see the GS command. GSB3 00140 00003<CR>
Example command sent: 00140=00000<CR>

GSB2 9 3<CR> 00141=65535<CR>


Example Response: 00142=32768<CR>

#00009=32321<CR>

#00010=00256<CR>

#00011=00003<CR>

www.symetrix.co | T +1.425.778.7728
10 of 25
Control Commands

(LP) Load Preset <unit> is the unit enumerator after the dash shown in
Composer above each unit, e.g. “Edge-1” means <unit> = 1.
This command will load the specified preset (1-1000). The
syntax of the command is: <enum> is zero based, 0-19 for speed dials 1-20.
<card> is 0-3 for plug-in slots A-D.
LP <PRESET NUMBER><CR>
<channel> is zero based and 0 where not applicable.
Where <PRESET NUMBER> = 1-1000
If the command is accepted, the unit will respond with the
string: The following example sets the name of speed dial #3 on
card A of unit 1 to ‘Acme Inc.’
ACK<CR> SSYSS 1.1001.2.0.0=Acme Inc.
If the command is interpreted but fails for any reason the unit
will respond with the string:
This example sets the number of speed dial #20 on card D
NAK<CR> of unit 1 to ‘555-1234’.
A typical reason for failure is that the specified preset has not SSYSS 1.1000.19.3.0=555-1234
been defined. Below is an example of using the SSYSS command to dial
telephony digits directly.
(FU) Flash Unit LEDs
This command momentarily flashes the front panel LEDs of
the unit. This command can be used as a quick test to verify
communications. The syntax of the command is:

FU [<cycles>] <CR>
<cycles> indicates the number of times to cycle the LEDs If the command is accepted, the unit will respond with the string:
on and off. If <cycles> is set to zero, it halts the flashing
immediately. If not specified, it defaults to 8 cycles. ACK<CR>

If the command is accepted, the LEDs will flash and the unit If the command is interpreted but fails for any reason the unit
will respond with the string: will respond with the string:
NAK<CR>
ACK<CR>
As an example, consider a Radius AEC that is labeled as
If the command is interpreted but fails for any reason the unit Radius AEC-1 as shown in the following figure. The “-1” at
will respond with the string: the end of the unit name indicates this is unit ID 1.
NAK<CR>

(SSYSS) Set System String


This command sets a system string such as a speed dial
name or number. The syntax of the command is:

SSYSS <unit>.<resource>.<enum>.<card>.<channel> To set the speed dial name and number of location 12, to
=[<value>]<CR> “Conference Rm 1” and “555-1234”, respectively, use the
Sets the string resource defined by the 5 parameters above following commands:
to <value>. Supported values for <resource> are shown in SSYSS 1.1001.11.3.0=Conference Rm 1<CR>
the following table: SSYSS 1.1000.11.3.0=555-1234<CR>
Resource Number Resource Name
1000 Speed dial number
1001 Speed dial name
1004 Number to dial (VoIP only)

www.symetrix.co | T +1.425.778.7728
11 of 25
Push Commands
And to dial Speed Dial 12, use the following command Returns the caller ID on unit 2 for line 2 on card D.
assuming the speed dial 12 button has control number 112 If the command is accepted, the unit will respond with string:
assigned to it:
CS 112 65535<CR> ACK<CR>
To enter a number to dial directly by entering the digits If the command is interpreted but fails for any reason the unit
14257787728, send the command will respond with the string:
SSYSS 1.1004.0.3.0=14257787728<CR> NAK<CR>
And to dial the digits, send the following command Other examples from an existing system are shown below:
assuming the connect/disconnect has control number 140
assigned to it: GSYSS 1.1003.0.3.0<CR>
CS 140 65535<CR> Returns: 710 ‘Room 710’ 4/15 7:15
Dialing VoIP Strings GSYSS 1.1005.0.4.0<CR>
When using the 1004 resource to dial strings with the VoIP Returns: In Call: 710
interface, the maximum length phone number that may be
directly dialed is 63 characters. Valid characters include GSYSS 1.1006.0.3.0<CR>
0-9, #, *, ., and letters (for SIP URI dialing). The digit pause
Returns: Time 0:00:35
character ‘,’ to generate 2 seconds of pause in a dialing
string is not supported for the VoIP interface. Direct dial is Valid values of Resource Number 1005 are shown in the
not supported for the ATI card. following table. The parameter <dialed number> represents
(GSYSS) Get System String the digits that were dialed, if any, to initiate the call.

This command gets a system string such as a speed dial Telephony Status
Description
Interface Message
name or number. The syntax of the command is:
Busy: The call appearance is busy
GSYSS <unit>.<resource>.<enum>.<card>.<channel> <CR>
Dialing: The call appearance is being dialed.
Gets the string resource defined by the 5 parameters above.
Supported values for <resource> are shown in the following Hold: The call appearance is in hold mode
table:
Idle The call appearance is in idle state.
Resource Number Resource Name VoIP
Interface The remote caller has answered and a call is
1000 Speed dial number In Call:
connected.
1001 Speed dial name Remote
The remote caller has placed the call on hold.
Hold:
1002 Dialed number
Ringing The call appearance is ringing.
1003 Caller ID
1004 Number to dial (VoIP only) Unavailable: The call appearance cannot connect.

1005 Call status (VoIP only) Reset The telephone line has been reset.
1006 Elapsed time in a call (VoIP only)
Ready The line onhook and ready for a call.

<unit> is the unit enumerator after the dash shown in Outgoing Call The line is dialing a call
Composer above each unit, e.g. “Edge-1” means <unit> =
1. Ringing The line is actively ringing.
<enum> is zero based, 0-19 for speed dials. Analog
Telephone Ring Silence The line is quiet between active rings.
<card> is 0-3 for A-D. Interface
An incoming call has dialed the telephony
Incoming Call
<channel> is zero based and 0 where not applicable. interface.

For example: Disconnect The call has been disconnected.

GSYSS 1.1001.11.3.0<CR> The telephone line is already in a call – perhaps


In Use
due to a shared line with another phone.
Returns the name of speed dial #12 on unit 1, card D. No
No Line There is no analog phone line connected.
channel specification is necessary.

GSYSS 2.1003.0.3.1<CR>

www.symetrix.co | T +1.425.778.7728
12 of 25
Push Commands

Pushing GSYSS String Values Push Commands


To have changes in the GSYSS string values automatically Units can send out unsolicited RS-232 and Ethernet data as
sent to the control system, enable the option “Enable System a result of parameter values changing within the unit.
String Pushing” under the Tools->Site Preferences menu and All parameters that can be externally controlled can be
re-push the configuration file to the device. Afterwards, any configured to automatically send out their values whenever
changes in the values will be automatically sent to the control they change. This method, referred to as pushing data, can
ports. 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 controller number must be enabled for push in
Composer
2) individual parameters must be enabled to push using the
Push Enable command.
Then, the controller value will be sent out
1) whenever the control’s 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
controller 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 controller number
and its value in the following format:

#<CONTROLLER NUMBER>=<CONTROLLER POSITION><CR>


Where <CONTROLLER NUMBER> is the decimal
controller number (1-10000) assigned in Composer and
<CONTROLLER POSITION> is a 16-bit number in decimal
(0-65535). The values for the controller number and position
will always be five digits, with leading zeros added as
necessary (e.g. 7 would be returned as 00007).

www.symetrix.co | T +1.425.778.7728
13 of 25
Push Commands
Up to 64 strings, separated with a <CR> as shown, may be I want to refresh everything to make sure
sent out together.
my control system is synchronized to the
Example: hardware. How can I receive all data even if
#00007=12321<CR> it hasn’t changed?
#00324=00128<CR> Use the Push Refresh (PUR) (GC) command. Alternatively,
you could use the Get Controller commands to manually ask
#10000=65535<CR> for the controls you are concerned with.

Should I use the push feature or poll for Sometimes my control system turns off
parameter changes? push for an extended period of time. When
I turn it on, will I be notified of all changes
The decision is up to you. Use whichever method makes
more sense for your application and control system. Manual that occurred while push was turned off?
polling is often simpler to implement initially because all data Yes, by default, all changes made while push was off will be
from the unit is a direct response to command you send immediately reported as soon as it is turned on. This applies
it, simplifying parsing. However, in situations where a large to both turning push off globally or for individual controllers
number of parameters that change infrequently need to be via the Push Disable command. Take care that your system
monitored, pushing may make more sense. You may also can handle the potentially large amount of data that can
prefer the convenience of not needing to set up a timer be generated. It may be helpful to “gradually” turn on the
to continually poll parameters for changes. Use whatever push feature, enabling a small range of controller numbers
method is appropriate for your situation. at once. You can also use the Push Clear command to
deal with this scenario. It allows you to effectively ignore all
How often is data pushed? previous unreported changes.
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 What is the difference between the Global
Push Interval (PUI) command.
Push Enable/Disable (PU) command
Can I push meter data? and the Push Enable (PUE) and Push
Yes, meters can be enabled for push. Keep in mind that Disable (PUD) commands? Why are there
with normal audio signals connected to a meter, the meter
value will most likely be changing constantly, so you will 2 different ways to specify a range of
typically see the meter data being pushed at every 100 ms controllers?
interval. However, a Set Push Threshold command can be
used to prevent pushes until the data differs by a specified The Global Push Enable/Disable command can be used to
amount (by default, this amount is 1). Another option is to completely turn off push, or turn on push for all or a single
use an LED display, peak detector, and/or threshold detector contiguous range of controller numbers. In contrast, the
modules instead of directly pushing the meter date. Push Enable/Disable command allows much finer control.
Individual (non-contiguous) controllers can be turned on and
How can I control the amount of data off, hence multiple ranges are supported.
pushed? The reason both methods are provided is for backwards
There are several methods for controlling pushed data. First, compatibility. The less flexible “single range” global PU
since pushed data is enabled on a per-control basis, your first command was added first. Later, the more flexible PUE and
line of defense is to limit it to only certain controls. Second, PUD commands were added as an enhancement. The older
pushing can be globally turned on and off using this protocol. global method was left in so existing programs wouldn’t
Third, pushing can be enabled for just a range of controller need to be modified. We recommend that you use either
numbers. Fourth, the Set Push Threshold command can be one system or the other exclusively. Do not combine them.
used to prevent pushes until the data changes by a specified New designs should use the PUE and PUD commands and
amount. Fifth, the Set Push Interval command controls how never use the PU command with a range specified.
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.

www.symetrix.co | T +1.425.778.7728
14 of 25
Commands Related to Push

What is the difference between the Push Make sure the individual controllers have been enabled
using the Push Enable command. Push is disabled for all
Enable (PUE) and Push Disable (PUD) controllers on power-up, and must be turned on via RS-232
commands and the and the “Enable Push” or Ethernet. Sending a PUE command is a quick way to
button in Composer? enable all controllers.
Make sure the parameter to be pushed is changing. Change
Both of these methods can be used to enable or disable an the parameter via the control application, a Controller Set
individual controller for push. The difference is that changing command, or other method. You can also use the Push
the setting in Composer requires you to push to the design to Refresh command to force the data to be sent. If you have
hardware again, whereas the Push Enable and Push Disable changed the push threshold, make sure the parameter is
commands take effect immediately and are intended to be changing by an amount larger than the threshold.
used for “on the fly” changes. In addition, Composer settings For Ethernet, the unit needs to know the proper IP address
are permanent across power cycling, whereas changes made to send the data. Make sure at least one command has
with the Push Enable and Push Disable commands are reset been sent from the control system to the unit. If the control
by a power cycle (all controllers default to enabled). Please system ever changes IP addresses, another command must
note that the “Enable Push” button acts as an override so it be sent to establish the new address.
must be enabled for a controller ever to push. You cannot
issue a Push Enable command for a parameter that doesn’t What are the limitations of this feature?
have the “Enable Push” setting active. If multiple parameters change at the same time, up to 64
controller numbers will be sent out during each push interval
How does push work at power-up? (default 100 ms) until all have been sent out. This maximum
When a unit is first powered up, push is globally turned rate may be further limited by your RS-232 baud rate. If a
large amount of data is being pushed, we recommend using
on and all controllers are individually enabled. All controller
the highest baud rate your system can support. A baud
numbers are assumed to have changed. This means that rate of 115200 is sufficient to prevent further limiting of the
after power-up, you will immediately receive all current values. throughput.
What about pushed system strings?
The pushing of system strings enabled/disabled in the Site
Preferences. When enabled, any changes made to speed Commands Related to Push:
dials, etc. will be pushed out the RS-232 port and the (PU) Global Push Enable/Disable
Ethernet port of the Symetrix unit. They also push on a Site
File push and unit power up. This command enables or disables the push feature. When
enabling, a range of controllers can be specified to allow
I’m not receiving unsolicited data. Any pushing only certain values. Disabling is always global and
prevents any unsolicited data from being pushed. The syntax
suggestions for troubleshooting? of the command is:
First of all, make sure that general communication is working
between your control system and the Symetrix RS-232 port PU <ON/OFF> [<LOW> [<HIGH>]]<CR>
or Ethernet port. Make sure you can send commands and Where <ON/OFF> is 0=OFF and 1=ON, <LOW> is the
receive ACK messages. Try the Flash Unit (FU) command. optional lowest controller number to push (only valid when
Make sure the parameters you want pushed have the enabling) and <HIGH> is the optional highest controller
“Enable Push” setting active in Composer. You can verify number to push (only valid when enabling). <LOW> and
this using the Controller Manager, and making sure there is <HIGH> are both decimal controller numbers (1-10000)
a ‘Yes’ in the Push column. Be sure you Go On-Line (Push assigned in Composer. If no controller numbers are
Design To Hardware) or F4 after making any changes in
specified, the entire range of 1-10000 will be enabled for
Composer.
push. If only one controller number is specified, it is assumed
For Ethernet, make sure the Ethernet port is connected to be the <LOW> value and the range from that number,
to the same network as the control system. Verify the up to 10000, will be pushed. If two controller numbers are
connection LED on the Ethernet jack and/or switch is lit. specified, the range formed by those values (including the
Verify you can “ping” the unit using its IP address.
values themselves) will be enabled for push. <LOW> must
Make sure the push feature has been globally enabled using be less than or equal to <HIGH>. When enabling, the range
the Global Push Enable/Disable command. Push is globally specified overrides any previous ranges, i.e. it replaces the
enabled on power-up, but may be turned off via RS-232 or range, rather than adding to it.
Ethernet. Power cycling the unit is a quick way to verify this.

www.symetrix.co | T +1.425.778.7728
15 of 25
Commands Related to Push
If the command is accepted, the unit will respond with the (PUD) Push Disable
string:
This command enables the push feature for an individual
ACK<CR> controller or range of controllers. The syntax of the
If the command is interpreted but fails for any reason the unit command is:
will respond with the string:
PUD [<LOW> [<HIGH>]]<CR>
NAK<CR> Where <LOW> is the optional lowest controller number
At power-on, push is always enabled. Remember that to stop pushing and <HIGH> is the optional highest
individual controller numbers must be enabled using the controller number to stop pushing. <LOW> and <HIGH>
Push Enable command as well. Data is pushed whenever a are both decimal controller numbers (1-10000) assigned
change in that controller occurs or if forced to refresh using in Composer. If no controller numbers are specified, the
the Push Refresh command. entire range of 1-10000 will be disabled for push. If only one
Note: Global Push Enable with a range specified, e.g. controller number is specified, only that controller number is
PU 1 100 200<CR> is not recommended. Instead, we disabled. If two controller numbers are specified, the range
recommend always globally enabling the entire range using formed by those values (including the values themselves) will
PU 1<CR> and using the Push Enable command for be disabled for push. <LOW> must be less than or equal to
individual control. <HIGH>. Multiple PUD commands can be used to disable
non-contiguous controller numbers since changes are
(PUE) Push Enable subtractive.
This command enables the push feature for an individual
If the command is accepted, the unit will respond with the
controller or range of controllers. The syntax of the
command is: string:

PUE [<LOW> [<HIGH>]]<CR> ACK<CR>


Where <LOW> is the optional lowest controller number to If the command is interpreted but fails for any reason the unit
push and <HIGH> is the optional highest controller number will respond with the string:
to push. <LOW> and <HIGH> are both decimal controller
numbers (1-10000) assigned in Composer. If no controller NAK<CR>
numbers are specified, the entire range of 1-10000 will be At power-on, push is enabled for all controllers in Composer
enabled for push. If only one controller number is specified, systems. Remember that individual controller numbers must
only that controller number is enabled. If two controller have the Enable Push setting active in Composer. The
numbers are specified, the range formed by those values Push Enable command is the inverse of this command and
(including the values themselves) will be enabled for push. provides a way to turn on controllers for push.
<LOW> must be less than or equal to <HIGH>. Multiple
PUE commands can be used to enable non-contiguous (GPU) Get Push-enabled Controllers
controller numbers since changes are additive. This command returns a list of all controllers currently
If the command is accepted, the unit will respond with the enabled for push. A range may optionally be specified to
string: limit the display to controllers enabled for push within that
range. The syntax of the command is:
ACK<CR>
If the command is interpreted but fails for any reason the unit GPU [<LOW> [<HIGH>]]<CR>
will respond with the string: Where <LOW> is the optional lowest controller number
to inquire about and <HIGH> is the optional highest
NAK<CR> controller number to inquire about. <LOW> and <HIGH>
At power-on, push is enabled for all controllers in Composer are both decimal controller numbers (1-10000) assigned in
systems. Remember that individual controller numbers must Composer. If no controller numbers are specified, the entire
have the Enable Push setting active in Composer. Data is range of 1-10000 will be inquired about. If only one controller
pushed whenever a change in an enabled controller occurs number is specified, it is assumed to be the <LOW> value
or if forced to refresh using the Push Refresh command. and the range from that number up to 10000 will be inquired
Changes that happen while a control is disabled will be about. If two controller numbers are specified, the range
pushed immediately upon enabling that control. The Push formed by those values (including the values themselves) will
Disable command is the inverse of this command and be inquired about.
provides a way to turn off controllers for push.
<LOW> must be less than or equal to <HIGH>.

www.symetrix.co | T +1.425.778.7728
16 of 25
Commands Related to Push
If the command is accepted, the unit will respond with a list changed, so it acts as if a full refresh was performed.
of enabled controller numbers separated by <CR>. If no Remember that individual controller numbers must have
controllers are enabled, it returns the string: the Enable Push setting active in Composer. In addition,
push must be enabled for the range of controllers you are
ACK<CR> refreshing (see Push Enable/Disable). Controller numbers
If the command is interpreted but fails for any reason the unit that don’t meet this criterion will not be affected by the Push
will respond with the string: Refresh command. In other words, if a controller is not
enabled for push, refreshing it won’t cause the value to be
NAK<CR> pushed even if that controller is later enabled. The controller
Special case: Entering GPU 0<CR> will return a list settings must be enabled for push at the time the Push Refresh
related to push. It begins with Global=<0/1> to show if push command is issued.
is globally enabled (1) or disabled (0).
(PUC) Push Clear
This is followed by five 5-digit values showing the settings of
This command causes previous changes in data to be
1) the global lower limit, ignored and not pushed. It may be desirable to issue
2) the global upper limit, this command when first enabling push to prevent being
3) the threshold for parameters, swamped by the flood of incoming data. A range of
4) the threshold for meters, and controllers can be specified to clear only certain values. The
syntax of the command is:
5) the push interval in milliseconds.
The default printout would look like this: PUC [<LOW> [<HIGH>]]<CR>

Global=1<CR> Where <LOW> is the optional lowest controller number to


clear and <HIGH> is the optional highest controller number
00001 10000 00001 00001 00100<CR> to clear. <LOW> and <HIGH> are both decimal controller
numbers (1-10000) assigned in Composer. If no controller
(PUR) Push Refresh numbers are specified, the entire range of 1-10000 will
This command causes data to be pushed immediately even be cleared. If only one controller number is specified, it
if it hasn’t changed (assuming push is enabled). This may is assumed to be the <LOW> value and the range from
be useful when trying to synchronize a control system to the that number up to 10000 will be cleared. If two controller
unit. A range of controllers can be specified to refresh only numbers are specified, the range formed by those values
certain values. The syntax of the command is: (including the values themselves) will be cleared. <LOW>
must be less than or equal to <HIGH>.
PUR [<LOW> [<HIGH>]]<CR> If the command is accepted, the unit will respond with the
Where <LOW> is the optional lowest controller number string:
to refresh and <HIGH> is the optional highest controller
number to refresh. <LOW> and <HIGH> are both decimal ACK<CR>
controller numbers (1-10000) assigned in Composer. If no If the command is interpreted but fails for any reason the unit
controller numbers are specified, the entire range of 1-10000 will respond with the string:
will be refreshed. If only one controller number is specified,
it is assumed to be the <LOW> value and the range from NAK<CR>
that number up to 10000 will be refreshed. If two controller It may be useful to issue this command if push has been
numbers are specified, the range formed by those values disabled for a long time and then is about to be re-enabled.
(including the values themselves) will be refreshed. <LOW> Otherwise, you will immediately receive notification for all
must be less than or equal to <HIGH>. changes that occurred during the disabled time.
If the command is accepted, the unit will respond with the
string:

ACK<CR>
If the command is interpreted but fails for any reason the unit
will respond with the string:

NAK<CR>
At power-on, all controller values are assumed to have

www.symetrix.co | T +1.425.778.7728
17 of 25
Setup Commands

(PUI) Set Push Interval (PUT) Set Push Threshold


This command changes the minimum length of time This command changes the push threshold value. Recall
between consecutive pushes of data. (See “How often is that data is only pushed when it changes. The threshold is
data pushed?” above for more information.) At power-up, the amount a value must change from the previous push
this value defaults to 100 milliseconds. The syntax of the before it is pushed again. For example, if a controller value
command is: 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
PUI <MILLISECONDS><CR> or fell to 9,000 or below.
where <MILLISECONDS> is the push interval in Units maintain two different thresholds: one for parameter
milliseconds, between 20 ms and 30,000 ms (30 seconds). data such as faders and buttons, and another for meters
If the command is accepted, the unit will respond with the (including LEDs). These two thresholds can be set to the
string: same value or be different. It may be desirable to use a
fairly large threshold for meters to avoid constant pushing of
ACK<CR> values. The power-on default for both of these values is 1.
If the command is interpreted but fails for any reason the unit The syntax of the command is:
will respond with the string:
PUT [<PARAMETER THRESH>] [<METER THRESH>]]<CR>
NAK<CR>
Where <PARAMETER THRESH> is the optional threshold
for parameters other than meters (e.g. faders and buttons)
While setting a short interval can speed up the push and <METER THRESH> is the optional threshold for
response, it may have a negative impact on overall system meters. Both values must be between 0 and 65535. If
performance. The shorter the interval, the more time will be neither threshold is specified, both thresholds are set to the
spent looking for push data. This can slow down responses default of 1. If only one threshold is specified, that value is
to other RS-232 commands and Composer. Therefore, used for both the parameter and meter thresholds.
we recommend using the longest interval that is practical, If the command is accepted, the unit will respond with the
especially if data is being pushed while Composer is on-line. string:
The default value of 100 milliseconds usually provides a
good compromise between prompt reports of changing data ACK<CR>
and overall system performance. If the command is interpreted but fails for any reason the unit
Note that in cases where many controllers are changing will respond with the string:
rapidly, the serial baud rate may ultimately limit the update
rate. Using the highest possible baud rate is recommended. NAK<CR>
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.

www.symetrix.co | T +1.425.778.7728
18 of 25
Setup Commands

Setup Commands When quiet mode is set to OFF, lengthy strings intended to
be read by humans are sent in response to commands. This
The defaults for the Set Baud and Set Echo Mode mode is useful when using a terminal program for testing or
commands are configured in Composer via the Unit debugging.
Properties dialog. Settings made via these Control Protocol
commands will be overridden by the values in the last The syntax of the command is:
pushed Site File on the next hardware reboot or push. To
SQ <ON/OFF><CR>
establish the permanent state, right-click on each unit and
select Unit Properties, then click Configure Remote Control Where <ON/OFF> is 0 = OFF, 1 = ON.
Port(s). Settings may be set independently for the Ethernet If the “SQ 0” command is accepted, the unit will respond
and RS-232 ports. with the string:
Note: If you ever find yourself in a situation where you
Setting Quiet Mode to false.<CR>
are not sure of the RS-232 port settings, you can use
Composer to return the unit to default values. Simply open If the command is interpreted but fails for any reason the unit
the Hardware->Upgrade Firmware/Hardware Settings dialog will respond with the string:
and click on the Erase Memory button. You can then select
NAK<CR>
to erase the Accessory Port Settings. Doing this will set
the baud rate, echo mode and quiet mode settings to the The quiet mode state is kept separately for the Ethernet port
factory default values. and the RS-232 port. A Set Quiet Mode command received
on the Ethernet port does not affect the RS-232 port and
Alternatively, the rear panel reset button can be used to vice versa. The quiet mode state is saved in non-volatile
return the settings to factory defaults. However, that should memory, so it is retained across power cycles.
be only used as a last resort since it also resets many other Note: New units default to quiet mode ON.
settings.
(EH) Set Echo Mode
(SB) Set Baud The Set Echo Mode command controls the text output of
The Set Baud command controls the RS-232 port’s baud the control port during commands. When echo mode is
rate. turned on, all characters that are received on the RS-232 or
Ethernet port are sent or “echoed” back. This mode is useful
The syntax of the command is: when using a terminal program for testing or debugging.
SB <BAUD><CR> When echo mode is turned off, the characters received are
not echoed back. All command descriptions above assume
Where <BAUD> is 1200, 2400, 4800, 9600, 19200, 38400, that echo mode is turned off. Echo mode OFF should
57600, or 115200. generally be used for normal operation.
If the command is accepted, the unit will respond with the The syntax of the command is:
string:
EH <ON/OFF><CR>
ACK<CR> Where <ON/OFF> is 0 = OFF, 1 = ON.
If the command is interpreted but fails for any reason the unit If the command is accepted, the unit will respond with the
will respond with the string: string:

NAK<CR> ACK<CR>
The baud rate is saved in non-volatile memory so it is If the command is interpreted but fails for any reason the unit
retained across power cycles. This command can be sent will respond with the string:
to either the Ethernet or RS-232 port, but only affects the
NAK<CR>
RS-232 port.
The echo mode state is kept separately for the Ethernet port
Note: New units default to a baud rate of 57600. and the RS-232 port. A Set Echo Mode command received
on the Ethernet port does not affect the RS-232 port and
(SQ) Set Quiet Mode vice versa. The echo mode state is saved in non-volatile
The Set Quiet Mode command controls the text output memory so it is retained across power cycles.
of the control port during responses. When quiet mode is
Note: New units default with echo mode OFF.
turned on, it restricts the output to just ACK, NAK or simple
values. All command descriptions above assume that quiet
mode is turned ON. Quiet mode ON should generally be
used for normal operation.

www.symetrix.co | T +1.425.778.7728
19 of 25
Special Command Prefixes

System Commands V (Version)


The V command returns the version of the software in the
NOP (No Operation)
unit. Up to thirteen different versions of software will be
The NOP command will always return an ACK in Quiet mode returned corresponding to different subsystems within the
to indicate that the system has received the command. The devices. For this command to be useful, it is recommended
NOP command can be used to keep a TCP connection to run the command while verbose mode is turned on
active or as a simple check of whether a system is up and or temporarily turned on with the $v command prefix
running and responding to commands. (described in Special Command Prefix section).
Q! (Quit TCP/IP Session) As an example:
The Q! command will close the current TCP/IP session. If $v V <CR>
the command is accepted, the unit will respond with the
string:
Firmware Version: V3.000
ACK<CR> Build Date: Tue Apr 8 12:36:30 PDT 2014
If the command is interpreted but fails for any reason the unit Internal Build: V8.00
will respond with the string:
Linux Version: V3.2.0
NAK<CR> Dante firmware: F:3.6.4 Sym:5.42
A typical reason for failure is that the command was not sent Startup firmware: V2.18
over a TCP/IP connection.
Front panel firmware: V2.29
RI (IP address) RS-485 firmware: V1.25
The RI command returns the IP address of the unit. RS-232 firmware: V1.55
As an example: TCP/IP firmware: V1.02
RI<CR> ARC-Web firmware: V1.10
192.168.100.150 ARC-Web executable: V1.09
ARC-Web CGI firmware: V1.09
Dialer CGI firmware: V1.55
Additional Info:
Linux version 3.2.0-ADI-2012R1-pre-9-pae+
(uclinux-devel@linux-tclw)
(gcc version 4.3.5 (ADI-2010R1-RC4) ) #3119 Tue
Nov 19 17:13:55 PST 2013 TCP/IP instance #1 of 4
>

R! (Reboot device)
The R! command will reboot the unit.

www.symetrix.co | T +1.425.778.7728
20 of 25
Special Command Prefixes

Special Command Prefixes Super Matrix Mixer Control Protocol


Special command prefixes, added in Composer 3.0, allow Background
the programmer to temporarily enable the echo mode,
verbose mode, or quiet mode for that particular command. Each control is represented by a number in a flat list from
The $v prefix is helpful when running in Quiet mode and 1-10,000. The value of a control is a 16-bit value between
executing the V command. 0-65535. The interpretation of that 16-bit controller value
is specific to each control and each control knows how to
$e (Echo Mode) interpret it. For example, a value of 40,000 might represent
The $e prefix will execute the command and echo back a gain of -20.7 dB in a gain module, a frequency of 1034 Hz
the command that was sent This can be helpful when in an EQ, and a release time of 517 ms in a compressor.
correlating a response to the commands that generated it. In contrast, the new system will refer to parameters in
The echoed command will be enclosed in {curly brackets}. “human readable” terms, e.g. the feature name and input/
output number of a matrix gain. Similarly, the value will be
As an example: expressed in natural units matching the way they are shown
$e CS 140 65535<CR> in Composer, e.g. dB for gains. Floating point will be used.
For backward compatibility, the existing 16-bit value system
Causes the following acknowledgement
will also be supported.
{CS 140 65535} ACK
Features to Control
$v (Verbose Mode) The following matrix features can be controlled using the
The $v prefix will execute the command as if quiet mode remote control protocol:
was turned off for the duration of the command.
1. Crosspoint Gain
As an example:
2. Crosspoint Connect status
$v SSYSS 1.1004.0.3.0=14257787728 <CR>
3. Crosspoint Delay
will return the string
4. Input Mute
>Set System String ‘1.1004.0.3.0’ to ‘14257787728’ succeeded>
5. Input Gain
As another example:
6. Input Solo
GSYSS 1.1001.11.3.0 <CR>
7. Input Pan
could return the string
8. Output Mute
Conference Room
9. Output Gain
$v GSYSS 1.1001.11.3.0 <CR>
10. Output Pre/Post
could return the string
Commands
>System String ‘1.1001.11.3.0’ is ‘Conference Room’>
All commands take the following general format:
$q (Quiet Mode)
The $q prefix will execute the command as if quiet mode
CMV <Action>[<Format>] <Unit>.<Module>.<Feature>.<Enume
was turned on for the duration of the command regardless
rator> [<Value>]
of the state of quiet mode.
The first part of the command is always “CMV”, which
As an example:
stands for “Control Module Value”. The other parameters
$q SSYSS 1.1004.0.3.0=14257787728 will now be explained in detail.
Will return the string
ACK

www.symetrix.co | T +1.425.778.7728
21 of 25
Action 9. OMute Output Mute
The second argument is the action to take. It can be Set, 10. OGain Output Gain
Get, Modify, Toggle, or Reset. This chooses whether to 11. OPre Output Pre/Post
read the current value or change the value in a variety of
ways. As you might guess, “Get” reads and “Set” writes. Enumerator
The “Modify” option allows changing the value relative to The <Enumerator> specifies which crosspoint, input, output,
the current setting using a positive or negative offset. The etc. to control. Matrix crosspoints, will be identified with an
“Toggle” value toggles a boolean (button) parameter from on “IxOy” syntax, e.g. “I3O4” refers to input #3 output #4. For
to off or vice versa. The “Reset” option resets a parameter parameters that refer only to an input or output and not a
to its default, i.e. what it would be in a fresh module placed crosspoint, specify just the “I” or “O” part, e.g. “I3” or “O1”.
in Composer. All values are 1-based so they match what the user sees in
Note that not all actions are appropriate for all feature Composer.
types. For example, “Toggle” is not applicable to continuous The <Enumerator> may also be specified as a contiguous
parameters such as gains. In these cases, the command range or arbitrary set of values. If this format is used, the
does nothing but does not return an error. enumerator should be enclosed in {curly brackets}. For a
“Modify” may be used with boolean parameters, e.g. mutes range, a colon is used to separate the beginning and ends
and grid connect buttons. In this case, any positive modifier of the range. For example “{I1O1:I3O4}” specifies a 3x4
will turn the parameter on, any negative modifier will turn the rectangle of values with upper left of Input #1 Output #1 and
parameter off, and a 0 modifier will do nothing. lower right at Input #3 Output #4.
Format Sets of values are specified using comma-delimited lists.
For example “{I1O1,I3O3,I16O12}” specifies 3 different
The optional <Format> field allows the user to specify the crosspoints at input 1/output 1, input 3/output 3, and input
format of the <Value>. If no option is specified, it uses the 16/output 12.
native format for that particular control, i.e. dB for gains,
0/1 for Booleans, milliseconds for delay, and percentage for Sets, ranges, and individual values may be combined, so
pans. Other options are ‘P’ or ‘%’ for percentage 0-100% complex groups may be set in a single command, e.g.
and ‘L’ for the legacy 0-65535 range. The format also “{I1O1:I3O4, I8O8:I9O9, I10O10}”. It is legal to include the
applies to the returned data. {curly brackets} even if only a single value is specified. So
the brackets may always be included if desired. Spaces
Unit between individual comma-separated values in a set may be
The <Unit> field allows the user to specify the unit in the used for clarity.
current site. If set to 0, the unit currently being addressed Value
is assumed. Otherwise, it is the enumerator shown in
Composer. The <Value> may be in 1 of 3 different formats as mentioned
in the discussion of the <Format> field. For percent and
Module native mode, values may be floating-point of any precision.
The <Module> field allows the user to specify the module Legacy 16-bit mode uses integers between 0-65535. In
number shown in Composer. For the Super Matrix, the native mode, all gains are expressed in dB. Boolean
module number is always 1. parameters should be either 0 or 1. Delay values are in
fractional milliseconds. In percentage mode, a percent sign
Feature may or may not be included. In dB mode, anything -72.0
1. The <Feature> may be any of the following for the dB of under will be interpreted as fully off or muted. The
matrix mixer: word “Off” may also be used. Muted values will always read
back as -72.0 dB. Values larger than the accepted range
2. CPGain Crosspoint Gain
will be clamped to their minimum or maximum values.
3. CPConnect Crosspoint Connect status
If multiple enumerators are given, all specified parameters
4. CPDelay Crosspoint Delay will be set to the same <Value>. Only one <Value> may be
5. IMute Input Mute provided in each command.
6. IGain Input Gain
7. ISolo Input Solo
8. IPan Input Pan

www.symetrix.co | T +1.425.778.7728
22 of 25
An optional equals sign may be placed in front of the value, For pans, a percentage value with 2 decimal places will be
e.g. “CMV Set 0.1.CPGain.I3O6=4.1”. Doing so makes the returned.
commands and responses identical. In percentage mode, a value between 0 and 100 with 3
Basic Examples decimal places will be returned, e.g. “13.347%.” A percent
sign will be included.
CMV Set 0.1.CPGain.I3O6 4.1 – Set the crosspoint gain for
input #3 going to output #6 to 4.1 dB. In legacy 16-bit mode, a value between 0 and 65535 will be
returned with no decimal places and no units.
CMV Set 0.1.CPConnect.I13O76 1 – Turns on the
crosspoint for input #13 going to output #76. For percentage and 16-bit mode, the scaling of all
parameters is linear within. For gains, it is linear in dB, i.e.
CMV Toggle 0.1.OMute.O2 1 – Toggles the output mute for 50% would be -30 dB for a gain that ranges from -72 dB to
output #2. +12 dB. For delays, 100% or 65535 is the maximum delay
CMV SetP 0.1.IGain.I12 100 – Sets the input gain to time supported by the current configuration.
maximum (100%) for input #12. In general, percentage and legacy 16-bit mode are
CMV Modify 0.1.CPDelay.I1O1 -3.7 – Decrements the discouraged because they require the control system to
crosspoint delay for input #1 going to output #1 by 3.7 know the range and scaling of the parameters.
milliseconds. The exact format of the return is dependent on if quiet mode
CMV Get 0.1.CPConnect.I13O76 – Returns 0 or 1 based on is engaged or not. In quiet mode, the value will simply be
the crosspoint status for input #13 going to output #76. returned. In verbose mode, the control being set is included
in the same format as a parameter is specified followed by
CMV GetL 0.1.CPVol.I3O4 – Returns a value between
an equals sign, then the actual value:
0-65535 for the crosspoint gain for input #3 going to output
#4.
CMV Get% 0.1.OPre.O4 – Returns 0 or 100% based on the <Unit>.<Module>.<Feature>.<Enumerator>=<Value>
output pre/post state of output #4.

Range Examples The parameter is formatted nicely so it is in a consistent


case without any leading digits.
CMV Set 0.1.CPGain.{I3O1:I3O20} 4.1 – Set the crosspoint
gain for input #3 going to outputs #6 through 20 to 4.1 dB. Change Operations
CMV Set 0.1.CPConnect.{I1O1:I3O20} 1 – Turn on the For commands that change a value (set, modify, toggle,
crosspoint connect for inputs #1 through 3 going to outputs reset), in quiet mode, an “ACK” or “NAK <Reason>” will be
#1 through 20. returned depending on if the command was successfully
interpreted and executed. Errors include things such as
CMV Toggle 0.1.CPConnect.{I5O5:I5O13} – Toggle the
unsupported options, unrecognized features, channel
crosspoint connect for input #5 going to outputs #5 through
number out of range, or illegal values. When “NAK” is
13.
returned, the reason for the failure will be given. Reasons
CMV Modify 0.1.InGain.{I3:I17} 3 – Increase the input gain may be any one of the following: Action, Format, Unit,
for inputs 3 through 17 by 3 dB. Module, Feature, Enumerator, Value, System, Other. The
CMV Get 0.1.OutGain.{O1:O5} – Returns the output gain in first 7 are self-explanatory, referring to the format of the CMV
dB for outputs 1 through 5. command. “System” refers to a system error, e.g. a unit is
not responding. “Other” refers to an unknown issue.
CMV Reset 0.1.OutGain.{O5:O31} – Set the output gain to
the default of 0.0 dB for outputs 5 through 31.

Return Value
Get Operations
For commands that get a value, the value will be returned in
the format the user specifies in <Format>. No units will be
included, e.g. a gain will be returned as “-4.50” not “-4.50
dB”. Assuming native mode, for gains, 2 decimal places of
precision will be given. For milliseconds, 3 decimal places
will be given. For Booleans, a 0 or 1 will be returned.

www.symetrix.co | T +1.425.778.7728
23 of 25
In verbose, commands that change a value will respond with
the changed parameter followed an equal sign and then
the new value in the specified format. If multiple values are
changed by a control, i.e. a range of gains, the new value
for each will be returned on a separate line. Note this may
generate very large volumes of traffic! It is advisable to use
the quiet mode option when changing more than a handful
of values to avoid this.
For values, in native mode, specifying a value outside of the
defined range of the parameter is not considered an error.
The value will be clipped to the minimum or maximum value
supported. This is done because control systems may not
understand the exact ranges of parameters. In percentage
or 16-bit mode, values outside of 0-100 or 0-65535 are
considered errors.
Reasons may be any one of the following: Action, Format,
Unit, Module, Feature, Enumerator, Value, Configuration,
System, Other. The first 7 are self-explanatory, referring to
the format of the CMV command. “Configuration” means
the specified feature is not supported in the current site file
configuration, i.e. that feature was disabled in Composer.

Polling for Changes


A command is available to determine if anything has
changed in the matrix mixer. This allows requesting a
single value rather than many individual parameters. This
command is:
GSYSC <unit>.3060.-1,0
If <unit> is 0, the unit currently being addressed is assumed.
Otherwise, it is the enumerator shown in Composer.
The command will return an integer value that increments
each time something in the Super Matrix is changed by any
mechanism (remote control, Composer, preset recall, etc.).
Control systems can check if the value is different from the
value last obtained to see if changes have been made. If
the value has changed, it can then read back all matrix
parameters of interest.

www.symetrix.co | T +1.425.778.7728
24 of 25
Control Protocol: Composer

Composer Control Protocol


© 2016 Symetrix, Inc. All rights reserved. Printed in the United States of America. Mention of third-party products is for informational
purposes only and constitutes neither an endorsement nor a recommendation. Symetrix assumes no responsibility with regard to the
performance or use of these products. Under copyright laws, no part of this price list may be reproduced or transmitted in any form
or by any means, electronic or mechanical, without permission in writing from Symetrix, Inc. If, however, your only means of access is
electronic, permission to print one copy is hereby granted. The following are either Trademarks or Registered Trademarks of Symetrix,
Inc.: Symetrix, SymNet Designer, SymLink and CobraLink. Windows is a Registered Trademark of Microsoft, Inc. Other product names
mentioned herein may be trademarks and/or registered trademarks of other companies and are property of their respective owners.

www.symetrix.co | T +1.425.778.7728

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy