ClearOne StreamNet Integration User Manual

Telephone 1.800.283.5936
1.801.974.3760
Tech Sales 1.800.705.2103
FAX 1.801.974.3669
E-mail tech.support@clearone.com
techsales@clearone.com support@netstreams.com
On the Web www.clearone.com www.netstreams.com www.streamnetpartners.com
St r e a m Ne t
IN t e g r a t I o N & Pr o g r a m m e r S gu I d e
CLEARONE PART NO. 800-000-017 APRIL 16, 2011 (REV. 1.0)
© 2011 ClearOne and NetStreams - All rights reserved. No part of this document may be reproduced in any form or by any means without written permission from ClearOne and NetStreams. Printed in the United States of America. ClearOne and NetStreams reserves specific privileges.
Information in this document is subject to change without notice.
U.S. PATENTS: 7,643,894 & 7,711,126
OTHER PATENTS PENDING:
US 11/467,340 US 11/960,401 US 12/015,385 US 12/418,267 US 12/472,976 US 12/727,925 US 12/761,506 US 12/900,666 US 12/917,765 US 12/917,773 European 03731139.6 European 06251345.2 Canadian 2,485,104 Canadian 2,539,458 Australia 2008-207498
Table of Contents
CHAPTER 1: INTRODUCTION
DOCUMENT PURPOSE .................................................................................................................. 1
DOCUMENT ORGANIZATION ........................................................................................................ 1
CHAPTER 2: CONTROLLING A STREAMNET SYSTEM
CONNECTING TO THE STREAMNET SYSTEM ............................................................................. 3
St r e a m Ne t tCP Po r t a l .............................................................................................................................. 3
TCP Control ......................................................................................................................................................4
TCP Monitoring .................................................................................................................................................4
St r e a m Ne t udP Po r t a l ............................................................................................................................. 4
Unicast UDP Control ........................................................................................................................................4
Multicast UDP Control ......................................................................................................................................4
Unicast UDP Monitoring ................................................................................................................................... 4
Multicast UDP Monitoring .................................................................................................................................4
St r e a m Ne t Co m P a t I b l e S .............................................................................................................................. 4
STREAMNET CONCEPTS .............................................................................................................. 5
Se r v I C e S ..................................................................................................................................................... 5
STREAMNET ADDRESSING .......................................................................................................... 5
gr o u P ad d r e S S e S ....................................................................................................................................... 5
Co N t r o l l I N g le g a C y av de v I C e S ................................................................................................................. 6
Driver Pass Through (Serial or IP) ....................................................................................................................6
St r e a m Ne t So f t ad a P t e r S (SSa) ............................................................................................................... 6
So u r C e ad a P t e r S (dr I v e r S ) ........................................................................................................................ 6
dI S P l a y ad a P t e r S (dr I v e r S ) ......................................................................................................................... 6
Co N t r o l ad a P t e r S (gPIo dr I v e r S ) ............................................................................................................. 6
Adapter (computing) – Wikipedia .....................................................................................................................6
SUBSCRIPTION .............................................................................................................................. 7
re C e I v I N g Sy S t e m St a t u S ............................................................................................................................. 7
REGISTRATION .............................................................................................................................. 8
STREAMNET MULTICAST ADDRESSES ....................................................................................... 8
IP ADDRESS ASSIGNMENT .......................................................................................................... 8
IP Po r t Nu m b e r ta b l e ................................................................................................................................ 8
CHAPTER 3: ASCII OVERVIEW
ASCII MESSAGE SYNTAX .............................................................................................................. 9
@t o ad d r e S S .............................................................................................................................................. 9
No d e .......................................................................................................................................................... 9
Su b N o d e ................................................................................................................................................... 10
St r e a m Ne t Su b N o d e ad d r e S S e S : ............................................................................................................... 10
:fromAddress .................................................................................................................................................. 10
%modifier ........................................................................................................................................................10
#keyword (ASCII Command) .........................................................................................................................10
arg1, arg2, ..., arg# ........................................................................................................................................ 10
/0 (null byte) .................................................................................................................................................... 11
uN I q u e Id (uId) ........................................................................................................................................ 11
Su m m a r y ................................................................................................................................................... 11
aSCII me S S a g e ty P e S ............................................................................................................................... 12
Imperatives .....................................................................................................................................................12
Table of Contents
Interrogatives .................................................................................................................................................. 12
Declaratives .................................................................................................................................................... 12
Menus ............................................................................................................................................................. 12
me N u Na v I g at I o N ....................................................................................................................................... 14
#REPORT MESSAGES ................................................................................................................ 15
uN S o lI C I t e d #rePort ............................................................................................................................ 16
ASCII ADDRESSING AND ROUTING FOR TCP CONTROL ........................................................ 16
ASCII CHARACTER ESCAPE SEQUENCES ............................................................................... 17
STREAMNET MACROS ................................................................................................................ 17
CHAPTER 4: OVERVIEW OF SERVICES
COMMUNICATING WITH THE STREAMNET SYSTEM ............................................................... 19
SERVICES ..................................................................................................................................... 19
Se r v I C e Na m e S .......................................................................................................................................... 19
Se r v I C e ty P e S ........................................................................................................................................... 19
Co m m o N Se r v I C e S b y de v I C e ...................................................................................................................... 20
Se r v I C e Co N f I g u r a t I o N .............................................................................................................................. 20
Amplifier / Player Device ................................................................................................................................. 20
Audio / Video Encoder Device........................................................................................................................20
Touch Panel ....................................................................................................................................................20
Legacy Controller Device ...............................................................................................................................20
CHAPTER 5: SERVICES DESCRIBED
AUDIO/VIDEO RENDERER SERVICE .......................................................................................... 21
ov e r v I e w .................................................................................................................................................. 21
av mu l t I -Zo N e oP e r a t I o N ........................................................................................................................ 21
ex a m P l e S .................................................................................................................................................. 22
au d I o /vI d e o re N d e r e r Co m m a N d de t a I l S ................................................................................................... 22
Command: #ACTIVE OFF .............................................................................................................................22
Command: #ACTIVE ON ............................................................................................................................... 22
Command: #AMP OFF .................................................................................................................................. 22
Command: #AMP ON ....................................................................................................................................23
Levels ..............................................................................................................................................................23
Command: #EQ_PRESET .............................................................................................................................23
Command: #LEVEL_DN BALANCE ..............................................................................................................23
Command: #LEVEL_DN BAND_x .................................................................................................................23
Command: #LEVEL_DN BASS ...................................................................................................................... 23
Command: #LEVEL_DN TREB ...................................................................................................................... 23
Command: #LEVEL_DN VOL ........................................................................................................................23
Command: #LEVEL_SET BALANCE, x .........................................................................................................24
Command: #LEVEL_SET BAND_x, y ............................................................................................................24
Command: #LEVEL_SET BASS, x ................................................................................................................. 24
Command: #LEVEL_SET TREB, x ................................................................................................................. 24
Command: #LEVEL_SET VOL, x ...................................................................................................................24
Command: #LEVEL_UP BALANCE ...............................................................................................................25
Command: #LEVEL_UP BAND_x ..................................................................................................................25
Command: #LEVEL_UP BASS ......................................................................................................................25
Command: #LEVEL_UP TREB ...................................................................................................................... 25
Command: #LEVEL_UP VOL ........................................................................................................................25
Table of Contents
Command: #MENU_LIST m, n, sources .......................................................................................................26
Responses Received ......................................................................................................................................26
Command: #MENU_SEL {{path}} ............................................................................................................... 27
Command: #MULTIAUDIO ............................................................................................................................27
Command: #MULTIAUDIO JOIN {{sessionName}} ....................................................................................27
Command: #MULTIAUDIO LEAVE ................................................................................................................27
Command: #MUTE OFF ................................................................................................................................ 28
Command: #MUTE ON ................................................................................................................................. 28
Command: #MUTE TOGGLE ........................................................................................................................28
Command: #QUERY renderer ....................................................................................................................... 28
Parsing Reports .............................................................................................................................................. 28
Command: #QUERY CURRENT_SOURCE...................................................................................................28
Command: #SET ...........................................................................................................................................28
Command: #SLEEP ....................................................................................................................................... 29
Command: #SRC_SEL .................................................................................................................................. 29
Command: #SRC_SEL {{source ID}} .......................................................................................................... 29
Command: #TEMPSRC {{sourceName}} [,timeOut value] ......................................................................... 29
Command: #TEMPSRC {{sourceName}}, OFF ..........................................................................................29
Command: #TEMPSRC OFF ......................................................................................................................... 29
AUDIO/VIDEO SOURCE AND SOURCE PROXY SERVICE ......................................................... 30
ov e r v I e w .................................................................................................................................................. 30
ex a m P l e S .................................................................................................................................................. 30
Command: #MENU_LIST m, n, {{path}} .....................................................................................................30
Responses Received ......................................................................................................................................30
Summary ........................................................................................................................................................31
Command: #MENU_LIST m, n, {{path}} .....................................................................................................32
Responses Received ......................................................................................................................................32
Summary ........................................................................................................................................................32
Command: #QUERY SOURCE .....................................................................................................................33
USER INTERFACE (UI) SERVICE ................................................................................................ 34
ov e r v I e w .................................................................................................................................................. 34
INTERCOM SERVICE ................................................................................................................... 34
ov e r v I e w .................................................................................................................................................. 34
St a t I o N t o St a t I o N .................................................................................................................................... 34
IN t e r C o m mo N I t o r Se S S I o N ........................................................................................................................ 35
IN t e r C o m eN t r y Se S S I o N S .......................................................................................................................... 35
St a t u S re P o r t w I t h a Cu r r e N t IN t e r C o m Se S S I o N ...................................................................................... 36
St a t u S re P o r t w I t h No Cu r r e N t IN t e r C o m Se S S I o N S .................................................................................. 36
ov e r v I e w .................................................................................................................................................. 37
ROOT SERVICE ............................................................................................................................ 37
ov e r v I e w .................................................................................................................................................. 37
APPENDIX: SPEAKERLINX
SPEAKERLINX AUDIO RENDERER COMMANDS ......................................................................A-1
INDEX ............................................................................................................................................ I-1
GLOSSARY OF TERMS .............................................................................................................. G-1
Table of Contents
Chapter 1: Introduction
DOCUMENT PURPOSE
The intent of the StreamNet Integration & Programmer’s Guide is to define the StreamNet software command structures necessary for Integrators to build interfaces. The interfaces can then be used by StreamNet System Controllers to control StreamNet Ready devices.
DOCUMENT ORGANIZATION
The StreamNet Integration & Programmer’s Guide is designed to provide the Integrator with detailed descriptions of the relevent commands for each of the StreamNet device sets (SpeakerLinX, MediaLinX, TouchLinX, ViewLinX, etc.) Each set of commands is organized based on the specific sources available and are listed through-out in alphabetical order.
This document begins with a detailed overview of the StreamNet ASCII Command Protocol which is the basic mechanism for control and status reporting of the StreamNet services.
Chapter 2 provides detailed information needed for controlling a StreamNet System from connection to addressing. Information on controlling legacy AV devices, StreamNet Soft Adapters (SSA), Source Adapters as well as Display and Control Adapters is also covered. The chapter also covers Streamnet Subscription and Registration topics.
Chapter 3 gives an overview of StreamNet ASCII commands, with an explanation of syntax structure, Subnode addressing and related information. Chapter 3 provides details on ASCII message types and provides exam­ples as necessary. The chapter finishes with sections on Menu Navigation, Report Messages, ASCII Character Escape Sequences and Streamnet macros.
Chapter 4 provides the reader with details of the services which may be found on a StreamNet device. Sections include a brief description on communicating with the StreamNet system, a description of what a service is and the types of services available. A chart of common services by device is provided and some examples of zone configurations are presented.
Chapter 5 describes how services are implemented and examples of commands available per service type with details of the parameters available for each listed command. Each service section of Chapter 5 provides a detailed overview of the service type.
Chapter 5 is followed by an Index that can be useful as a reference source.
The document concludes with a Glossary of Terms.
Chapter 1: Introduction 1
2 Technical Sales: 1.800.705.2103
Chapter 2: Controlling A StreamNet System
StreamNet is designed such that a very large number of networked devices behave as a single coordinated system. The integrator does not need to know about the underlying network complexity; StreamNet completely handles it all. With StreamNet you get all of the advantages of an IP based system without the complexity. The third party control device only needs to know a single IP address and through this one address can control an unlimited number of StreamNet devices. Instead of IP addresses (which may change) the controller can address commands to friendly, human readable names such as “Bedroom TV” or “DVD Player”. Control messages using these friendly names may be sent to any StreamNet device or broadcast to all of them; StreamNet will make sure that the correct device(s) and only the correct device(s) receive the message.
NOTE f : This document will describe a large number of alternative ways to control a StreamNet system. This is a testament to the incredible flexibility of StreamNet; but, it may give the impression that controlling StreamNet is complex – nothing could be further from the truth. The integrator does not need to use all of the methods, only the most convenient one(s).
A StreamNet system remains remarkably uncomplicated even when scaled to huge proportions. Network technology makes this scalability possible and StreamNet makes it simple.
Touchpanel user interface devices are available for controlling StreamNet without requiring any central controller; but, this by no means the only way a StreamNet system can be controlled. In fact, StreamNet was explicitly designed to simplify control by third party control devices such as AMX or Crestron Controllers.
Advanced users may be interested in StreamNet’s Auto-Discovery or Time Sync mechanisms, but the integrator may mostly ignore how StreamNet does what it does and just take advantage of the simplicity it offers.
StreamNet devices handle the routing of AV content from one location to another as well as all aspects of controlling the source and display devices. Most devices can learn and reproduce IR codes for controlling non-StreamNet devices such as TVs, DVD players, etc. Serial and IP control of non-StreamNet devices are also supported. StreamNet can even route IR signals transparently across the network to be reproduced at other locations to control remote devices.
CONNECTING TO THE STREAMNET SYSTEM
Control messages may be sent to the StreamNet system in a variety of ways. Messages may be sent through a TCP connection to a single device or through multiple TCP connections. Also, messages may be sent using UDP, either unicast or multicast. It is even possible to send the commands using an IR or RS232 serial interface. The integrator may choose the most convenient method or any combination of these methods.
StreamNet TCP Portal
The most common way for a controller to connect to the StreamNet system is through a single TCP connection to one of the StreamNet devices. This single TCP connection can be made to any StreamNet device which supports the “TCP Control Portal”. If lots of control message traffic is expected then it is recommended that a ControLinX be dedicated to providing this TCP connection. The commands are sent and responses and unsolicited status messages are conveyed over the TCP connection. The TCP connection should be maintained continually if system status is desired. Typically, each StreamNet device supports a maximum of 4 TCP clients at a time.
Obviously to make the TCP connection the controller must know the IP address of the device to which it is connecting. So at least one device in the StreamNet system must have a fixed IP address. This is another good reason to dedicate a ControLinX device as the portal to the StreamNet system. The portal ControLinX can be assigned a static IP address but all of the other StreamNet devices can be allowed to find their own address.
NOTE f : If there is no traffic on the TCP connection after 60 seconds it will be closed. To keep the connection alive the client can send a dummy ASCII command every 30 seconds. #HEARTBEAT is often used for this purpose. But if the client has registered for status the #REGISTER commands will keep the connection alive.
Chapter 2: Controlling A StreamNet System 3
tCP Co N t r o l
Any StreamNet ASCII control message may be sent using TCP to the IP address of any StreamNet device at port number 15000. Responses from the StreamNet system will be returned on the TCP connection which initiated the request. See chapter on ASCII Protocol.
tCP mo N I t o r I N g
Unsolicited status messages may be received by the third party controller using TCP through the StreamNet mechanism of Registration. See section on Registration.
StreamNet UDP Portal
A third party controller may perform all StreamNet control and monitoring functions using UDP.
Control Messages may be sent to the StreamNet system either multicast or unicast; monitoring or status messages may be received either multicast or unicast. Any or all of these methods may be used simultaneously in any desired combination.
uN I C a S t udP Co N t r o l
Any StreamNet ASCII control message may be sent using UDP to the IP address of any StreamNet device at port number 15000. Responses from the StreamNet system will be addressed and routed according to the ASCII “From Address” of the original message. See chapter on ASCII Protocol.
mu l t I C a S t udP Co N t r o l
Any StreamNet ASCII control message may be sent using UDP to the StreamNet System Multicast Address at port number 15000. Responses from the StreamNet system will be addressed and routed according to the ASCII “From Address” of the original message. See chapter on ASCII Protocol.
uN I C a S t udP mo N I t o r I N g
Unsolicited status messages may be received by the third party controller using unicast UDP through either of two StreamNet mechanisms, Subscription or Registration.
mu l t I C a S t udP mo N I t o r I N g
Unsolicited status messages may be received by the third party controller using unicast UDP through the StreamNet mechanism of Subscription. It is not recommended for the controller to monitor the multicast status of the services directly. This mechanism is not intended for this use and may change without notice.
StreamNet Compatibles
Some devices support only a subset of the StreamNet protocols and functionality; these devices are sometimes referred to as StreamNet Compatible devices. These devices currently include the iDock and the Anthology Media Server. These devices work seamlessly within a StreamNet system but do not provide all of the StreamNet functionality described in this document.
4 Technical Sales: 1.800.705.2103
STREAMNET CONCEPTS
There are few concepts that must be understood to properly understand StreamNet.
Services
A StreamNet service is an abstraction. It is a functional software module but it can be thought of as a virtual device. A service performs a single function such as capturing analog audio and streaming that audio onto the network. Another service may perform the function of converting the network audio stream to analog and amplifying it. Still another service may provide an interface to a third party lighting system. A single physical device may support many services of various types.
The service concept greatly simplifies controlling the StreamNet system. For example, control messages can be addressed to the name of an AV zone (a service) instead of to “Device 1 at IP address, 10.15.65.113, output number 7”. The controller does not need to know which physical device is providing the function or what the physical configuration of that device is – just the service name. The control messages are simply addressed to “Zone 1” and StreamNet ensures the correct AV zone reacts. Details about the types of services and the functions performed are described in later sections of this document.
STREAMNET ADDRESSING
StreamNet ASCII messages may be sent, using any of various unicast methods, which include UDP (Unicast) and TCP, to any StreamNet device. If addressed correctly, the message will be routed to the desired service(s). Also, the messages may be sent to the StreamNet System multicast address. In this case, all StreamNet devices receive the message simultaneously, but only the addressed services accept the message and react to it. Messages may be addressed to a Service, a Group or a Room.
It is not necessary to know the IP addresses of the individual StreamNet devices to communicate with them. All messages are addressed to service names associated with the devices during the configuration process.
If the 3rd Party Controller or software has the ability to send Multicast UDP messages, then all ASCII messages may be sent to the default system Multicast Address and the destination device or group of destination devices will receive it. Responses and status may be received by unicast/multicast UDP. If the 3rd Party Controller or software does not have multicast capability, the messages may be sent Unicast UDP to any StreamNet device and it will be forwarded.
If the 3rd Party Controller is also listening to its own (i.e., different) multicast address for responses, the controller and the StreamNet system do not have to be in the same subnet.
The StreamNet system multicast address should not be used for responses. 3rd Party Controllers should subscribe to use a separate unicast address or an unused multicast address to receive responses (see the section on Subscription below).
Unsolicited status messages may be received by the 3rd Party Controller.
Group Addresses
Services can be members of named “groups”. A group address, or “group name”, is just a way of addressing multiple services simultaneously with a single control message. A service may be a permanent member of a particular group or it may join and/or leave the group. There may be special group names which are used for specific purposes; for example, the group name “ALL” includes all services in the StreamNet system.
Chapter 2: Controlling A StreamNet System 5
Controlling Legacy AV Devices
dr I v e r Pa S S th r o u g h (Se r I a l o r IP)
Generally, when controlling an AV source device such as a media server or Sirius tuner the integrator will want to use the drivers which already exist for their third party controller. StreamNet makes this simple and convenient. The serial ports on any StreamNet device can be configured to transparently pass serial traffic to/ from any controller. In this way the existing driver can be used and no additional hardware is required to add a serial port. And of course if the driver uses Internet Protocol (IP) to control the device this can be done just as easily.
StreamNet Soft Adapters (SSA)
Another StreamNet feature which greatly simplifies control is the StreamNet Soft Adapter. Adapters are small pieces of software written in the LUA programming language and executed on devices throughout the StreamNet system. Soft adapters convert proprietary protocols of third party devices into standard StreamNet protocol. This eliminates the complexity caused by multiple protocols from multiple vendors. Since the Soft Adapters are executed by an “interpreter”, different Adapters may be selected by the integrator during system configuration from a large number of standard adapters or the integrator may write a custom adapter to perform any desired function.
Source Adapters (Drivers)
Source Adapters are software translators (drivers) which standardize the control of third party AV source devices. Source Adapters take the myriad of device control interfaces and translate them to the common language of StreamNet.
For example, media servers from different vendors may have very different and complex proprietary interface protocols; but, Source Adapters can make them all operate exactly the same from the controller’s point of view. Source Adapters may use IR, Serial, of Internet Protocol (IP) to control the AV source device.
The integrator may choose from a number of standard Source Adapters or the integrator may elect to write a custom driver. If the integrator prefers to take advantage of existing drivers on third party controllers, StreamNet devices can transparently pass serial communications to/from the AV device or learned IR codes can be triggered by command.
Source Adapters run on devices with AV source services or Stream Proxy Services, such as a MediaLinX or SpeakerLinX.
Display Adapters (Drivers)
Some StreamNet devices also support Display Adapters to translate controls for the video display device.
Control Adapters (GPIO Drivers)
Some Adapters can provide an interface to lighting systems or HVAC systems, or the Adapter may have multiple unrelated functions. A custom Soft Adapter may perform multiple functions simultaneously. These types of Adapters are called Control Adapters or GPIO drivers. GPIO Adapters can run on any StreamNet device that has a GPIO service which supports Adapters; a ControLinx is a typical example. Control Adapters can be custom written to perform nearly any conceivable control task.
The control messages themselves will be described in later chapters as the StreamNet ASCII Protocol.
Ad A p t e r (c o m p u t i n g ) – Wi k i pe d i A
“In computing, an adapter is a hardware device or software component that converts transmitted data from one presentation form to another. The data presentation can be, for example, a message sent between objects in an application or a packet sent through a network.”
6 Technical Sales: 1.800.705.2103
SUBSCRIPTION
Receiving System Status
StreamNet Subscription allows third party controllers to receive unsolicited status messages from StreamNet services. During configuration, the Integrator may subscribe to a StreamNet Service’s status message by entering the controller’s IP address and the port to which the status messages are to be sent.
If a subscription exists, the StreamNet service will send status messages over UDP protocol to the specified IP address and port number.
A static subscription is configured using the StreamNet Dealer Setup Program and is automatically in effect as soon as the device powers up and remains in effect indefinitely. The user should use the StreamNet Dealer Setup Program to specify an IP address and port number to which status reports are to be sent. This IP Address is typically the static IP address of the 3rd Party Controller device. If the device receiving the status messages is capable of receiving multicast UDP messages, then an unused multicast address may be specified for the subscription. Using a multicast address eliminates the need for the controller to have a static IP Address and also eliminates any subnet related issues.
During configuration, the integrator may enter “subscriptions” to a StreamNet service’s status messages by entering the IP address and port to where the status messages are to be sent. If a subscription exists the StreamNet service will send status messages over UDP protocol to the specified IP address and port number.
The StreamNet system multicast address should not be used by the controller to receive responses or status. When Controllers “Subscribe” either the controller’s unicast address or an unused multicast address should be used.
Chapter 2: Controlling A StreamNet System 7
REGISTRATION
When controlling the system through a TCP connection the TCP client may “register” to receive status from individual services. Registration is performed by sending a “#REGISTER” ASCII command to the StreamNet device acting as the TCP server. This registration will time out after 30 seconds unless it is renewed by sending another “#REGISTER” command.
A TCP client of a StreamNet device may “register” to receive status from a specific service. When a TCP client such as a Flash application sends the “#REGISTER serviceName” command to the root service of the device to which it is connected that device will start forwarding the status of the specified service to the TCP client. This function is useful for controllers which cannot use multicast UDP. Adobe Flash can only make TCP connections.
STREAMNET MULTICAST ADDRESSES
For each StreamNet system there is a single multicast address used by all of the devices for device discovery, ASCII message routing, time synchronization, and other system level tasks; this multicast address is called the “StreamNet System Multicast Address” and is configured into the device by the StreamNet set up program. All other multicast addresses are assigned dynamically at run time by the StreamNet system master device. The assigned addresses are chosen from a range of addresses configured into the device by the StreamNet set up program.
These dynamically assigned multicast addresses would not normally be needed by any third party controllers or other non-StreamNet devices; however, the addresses may sometimes be available through #QUERY requests or other status reports.
IP ADDRESS ASSIGNMENT
Each StreamNet device must have an IP address. The device may obtain this address in any of several ways: Static IP, Auto IP or DHCP. The installer may choose a preferred method of IP address assignment but if the preferred method fails, the device may try other methods until an address is obtained. By default the devices will initially try to obtain an address from a DHCP server. If after several minutes an address is not received from a DHCP server, the device will attempt to obtain an address through the Auto-IP method. With the Static IP method, the device will assume that the assigned address is valid.
NOTE: f If the device is configured for DHCP and no DHCP server is present on the system, the device will remain unresponsive for several minutes until the Auto IP address is resolved.
IP Port Number Table
Multicast UDP ASCII Messaging Port 15000
Unicast UDP ASCII Messaging Port 15000
TCP ASCII Messaging Port 15000
Discovery Port 8000
Time Sync Port 5001
8 Technical Sales: 1.800.705.2103
Chapter 3: ASCII Overview
The basic mechanism for control and status reporting of the services in StreamNet is the ASCII protocol. This protocol consists of various command messages and their parameters represented by strings of ASCII characters. Messages also have associated routing and administrative information which informs recipients of the destination and origin of the messages or provides other supplemental information.
ASCII MESSAGE SYNTAX
ASCII messages have the following syntax:
#@toAddress:fromAddress%modifier%modifier#keyword arg1, arg2, ... argN /0
A # symbol is required at the beginning of all messages.•
ASCII messages must not exceed 1000 characters in length.•
The various fields must be in the order shown above.•
The fields after the first # are the administrative fields, addresses and other control functions. The • fields after the second # are the actual command.
@toAddress
Specifies the name of the Service, Group, or Room to which the message is sent. The @ symbol precedes all toAddress fields. The address field may consist of two parts: the Node Address and the Subnode Address.
The Node Address specifies the Service, Group, or Room the message is addressed to. The Subnode Address can be used to address a subordinate module within the destination service or to invoke other special routing functions. The Subnode Address follows the Node Address and is separated by a tilde (~).
Example: @nodeAddress~subnodeAddress
NOTE f : When no service address is provided, the address defaults to the Root Service of that device.
The device reacts only if the command is a valid Root Service command.
Messages without a toAddress will be ignored if they are sent multicast or broadcast.
Node
A Node Address is the main part of an ASCII command address and can be part of the TO or FROM address. A node address is either a Service Name, a Service Unique ID (UID), a Room Name or a Group Name.
Chapter 3: ASCII Overview 9
Subnode
A subnode address is part of the ASCII command address. It can be part of the TO or FROM address. A subnode address is a special address modifier which instructs the node where to forward the command once it is received. Sometimes the subnode address indicates that the service should forward the command to a non-StreamNet device.
Examples:
~IRMOD• : forwards the command to the device which is providing the IR I/O functions to the StreamNet service.
~UDP192.168.5.3_5000• : forwards the command using UDP to the specified IP address and port
5000. The subnode address may refer to a StreamNet device with an address unknown to the sender.
StreamNet Subnode Addresses:
• ~CURSRC Route to renderers current audio source
• ~IRMOD Route to IR module on MediaLinX
• ~SERIAL_X Route to serial port number X
• ~KEYPAD Route to KeyLinX module
• ~ROOT Route to root service on device
• ~STATUS Not used to route to, but rather to indicate a status message
• ~SUBSCRIBER indicates the route to subscribers
:fromAddress
:fromAddress indicates which entity sent the message. This is used by the recipient to address any response
that may be generated by the message. If a response is expected, then the fromAddress should specify the address the response should be sent to. The : symbol must precede all fromAddress fields. The fromAddress may have a subnode address.
For 3rd Party Controllers using UDP, it is recommended that the fromAddress resemble the following format:
~UDP192.168.5.3_5000
This includes the IP address and port to which any response should be sent.
%modifier
Optional field. May be used for various context specific purposes. If the recipient does not support the particular modifier, the field may be ignored. There may be any number of %modifier fields in a message. The % symbol precedes all modifier fields.
NOTE f : This field is reserved for future use in StreamNet.
#keyword (aSCII Co m m a N d )
Required field. This is the keyword that specifies the action to be executed. The # symbol precedes all keyword fields (no intervening spaces). The keyword is one word and contains no spaces, commas, or other special characters except the underscore “_”.
arg1, arg2, ..., arg#
Optional field (some keywords may require arguments). The keyword may be followed by arguments. There are one or more spaces between the keyword and the first argument and a comma between each additional argument. Arguments are separated by commas and any extra white space should be ignored.
10 Technical Sales: 1.800.705.2103
Arguments have the following formats:
• Meaningful Strings – These are labels which represent some value, case, or function. Examples of
meaningful strings are ON and OFF. Meaningful strings are not enclosed in quotation marks and must begin with an alphabetic character – not a numeral.
• Character Literals – These character strings do not need any special delimiters if they contain
no blanks, spaces, commas, or other special characters. (A special character is other than alpha/ numeric).
NOTE f : If an argument contains any special characters or spaces, it must be enclosed
between double braces {{......}}. When in doubt, use the double braces.
• Numeric Scalars – These must be a decimal number.
• XML or other Special Formats - These arguments are enclosed in double braces {{...}} and can
take any form depending on context.
/0 (N u l l b y t e )
All ASCII messages must end with a 0x00 byte (null).
UniqueID (UID)
The UID of a service is an unchangeable identifier for the service. It is based upon the device’s serial number. The UID will be the service name if none has been specified during configuration. It will also be used as the service’s room name if none has been specified. Normally, there is no reason for an integrator to use the UID. All services should be assigned names and all of the user’s commands should be addressed to those service names (or room/group names).
The structure of the UID is serialNumber_index where serialNumber is the Serial Number of the device and index is an integer that identifies the specific Service on the device.
Example: #@MLA10105151001161008019_4
serialNumber index
Summary
The 3rd Party Controller sends an ASCII message UDP to the IP address of any StreamNet device.
In the ASCII message, you should have the:
#@toAddress• - name of the service you are addressing.
:• fromAddress - your own IP Address with a Port number to receive responses.
The • :fromAddress - your IP Address/Port and all responses will be sent to this address.
#ASCII• command with appropriate arguments required by that command.
Chapter 3: ASCII Overview 11
Loading...
+ 38 hidden pages