Ascii m, Essage, Ypes – ClearOne StreamNet Integration User Manual
Page 18: Imperatives, Interrogatives declaratives menus, Ascii message types
![background image](/manuals/598158/18/background.png)
12
Technical Sales: 1.800.705.2103
ASCII message Types
There are three types of ASCII messages - Imperative, Interrogative and Declarative.
I
mPeratIveS
Some messages are commands which initiate an action or directly cause a change of state. For example,
commands that change volume level, select an audio source, or send an IR code.
Example: #@CD PLAyER:~UDP192.168.5.3_5000#PLAy
The message will be routed to the StreamNet Service named CD PLAYER. This service may transmit an IR
code for PLAY to the actual CD player being controlled.
NOTE
f
: This command could be received by any StreamNet device in the system and it would
be routed to the correct device.
Generally, imperative StreamNet commands do not receive responses.
I
NterrogatIveS
Some messages are used to request information. If an interrogative message is sent, a response is
expected.
NOTE
f
: An Imperative may cause a change of state which then generates a report of the
change. This is different from the question/answer of the Interrogatives.
d
eClaratIveS
Some messages only report information. They may be unsolicited status reports (periodic or caused by a
change of state) or they may be a response to an interrogative message. The most common StreamNet
declarative is the #REPORT message.
m
eNuS
StreamNet has a special set of messages which make use of all three types, interrogative, declarative, and
imperative. These messages are the menu messages: #mENU_LIST, #mENU_RESP, and #mENU_SEL
These three messages combine to provide a general means to present menus and allow menu selections
without knowing the content of the menu in advance.
The controller sends a #mENU_LIST message to a StreamNet service to request the menu. The StreamNet
service responds with a series of #mENU_RESP messages (one for each item in the menu). After a selection
has been made, the controller sends a #mENU_SEL message indicating the user’s selection. In addition to
user readable menus selection mechanism, the #mENU_LIST can be used to provide information to third
party control programs.
Menus are organized in a branching tree structure. At the top level of the menu will be a list of items. Selecting
one of these items may lead to a second tier menu; selecting a second tier item may lead to a third tier menu,
etc. This may continue for an arbitrary number of menu tiers. At any level of the menu, there may be some of
the items which do NOT lead to a lower tier. These are called “terminal” items and generally selecting (use
#mENU_SEL) a terminal item will initiate some action in the system.
The syntax of the three menu messages are:
#mENU_LIST StartingItemNumber, EndingItemNumber, {{menuPath}}
Where:
StartingItemNumber is the item number of the first item to be returned in the menu response
EndingItemNumber is the last item to be returned
{{menuPath}} is the navigation path for the current menu tier