Source Communication Protocol for NuVoNet Adapter
Transcript of Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC
2395 Arbor Tech Dr.
Hebron, KY 41048
Source Communication Protocol for
NuVoNet Adapter
Date 10/20/2010
Revision 1.0
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
i of i
Table of Contents
1.0 Objective ............................................................................................................................. 2
2.0 Serial Control Data Format ................................................................................................. 2
2.1 Command Example ......................................................................................................... 3
3.0 Commands .......................................................................................................................... 4
3.1 Request Version Information .......................................................................................... 4
3.2 Receive Restart Notification ........................................................................................... 4
3.3 Firmware Update Notification ........................................................................................ 4
3.4 Command the NuVoNet Adapter to Restart ................................................................... 4
3.5 Ping ................................................................................................................................. 4
3.6 Set Source Numbers ........................................................................................................ 5
3.7 Send Source Name .......................................................................................................... 5
3.8 Send Source-Specific Top-Level Menu Items ................................................................ 6
3.9 Send Source-Specific Favorites ...................................................................................... 6
3.10 Send Source Status .......................................................................................................... 7
3.11 Send Source Metadata................................................................................................... 10
3.12 Receive a Request to Prepare Album Art ..................................................................... 11
3.13 Receive a Request for a Album Art Fragment .............................................................. 12
3.14 Send a Message to a Zone or All Zones on a Source.................................................... 13
3.15 Receive Control Pad Button Press ................................................................................ 13
3.16 Receive Zone Request for a Source Menu Items .......................................................... 14
3.17 Receive Request to Keep a Menu Active or Exit a Menu ............................................ 16
3.18 Send Message Box ........................................................................................................ 16
3.19 Send Numeric/String Entry Dialog ............................................................................... 17
3.20 Receive Notification that a Favorite has been Selected ................................................ 17
3.21 Disable Ping .................................................................................................................. 18
3.22 Report Network Status (MPS4 only) ............................................................................ 18
3.23 Send a String out the Passthrough Port (MPS4 only) ................................................... 18
4.0 Usage Example ................................................................................................................. 18
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 2
1.0 Objective This document describes the commands that will be required to implement a source for the
Grand Concerto System. The commands detailed in this document describe the communication
between the NuVoNet Adapter and the audio source.
2.0 Serial Control Data Format The communication will be at 57.6 kbaud, no parity and 1 stop bit. No hardware/software
handshaking is required. The commands are simple enough that they may be issued using a
terminal emulator like HyperTerm or Tera Term Pro. The specifics of the protocol are:
1) The data is all ASCII characters with exception of the terminating characters: carriage
return <CR> (or 0x0D hex) and line feed <LF> (or 0x0A hex). Upper or lower case
characters may be used.
2) All numerical fields are coded as ASCII digit characters.
3) All strings are enclosed in double quotes. When sending a string to the NuVoNet
Adapter, double quotes (“) and asterisks (*) must be escaped by a backslash.
4) All characters in strings should be from the ISO8859-1 (Latin 1) character set.
5) Arguments are delimited by commas.
6) All arguments must be specified.
7) Each Command string is STARTED with an ASCII “*” character and terminated by a
<CR>.
8) Each Response string issued by the NuVoNet Adapter will START with an ASCII “#”
character and be terminated with a <CR><LF>.
9) If a command has an error in it, or does not adhere to exact command syntax, or is not
recognized for any reason the NuVoNet Adapter will respond with a “#?<CR><LF>”
string.
10) Whenever the status of the NuVoNet Adapter has changed, a serial status message is sent
indicating the new state of the controller. It does not matter what caused the state change
(front panel buttons, Concerto Control Pads, serial commands, radio information, etc.)
These are unsolicited messages and the external device needs to handle the reception of
the messages to keep itself up-to-date with the NuVoNet Adapter.
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 3
2.1 Command Example
This example will request the version information from the NuVo Grand Concerto:
CMD *VER<CR>
RSP #VER"NV-I8G FWv0.91 HWv0"<CR><LF>
This will be the format for all the commands listed in this manual. The <CR>
and <LF> will not be shown with the commands in this manual but MUST be
assumed.
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 4
3.0 Commands
3.1 Request Version Information
This command can be used to check the version of the NuVoNet Adapter.
CMD *VER
RSP #VER"NV-NNA FWv1.00 HWv0”
3.2 Receive Restart Notification
This response is issued to the source whenever the source needs to re-identify itself. The source
should send the following items when this command is received:
1. source numbers
And then each specified source should send the following:
2. source name
3. source-specific top-level menu items
4. source track status
5. source metadata
6. source-specific favorites
RSP #RESTART”NuVoNet” or #RESTART”Bridge”
3.3 Firmware Update Notification
This response is issued when a firmware update is initiated. The firmware in the NuVoNet
Adapter can be updated by connecting it to a Grand Concerto or Essentia G after loading a
configuration that uses the NuVoNet adapter. After the firmware update finishes, the NuVoNet
Adapter will restart itself.
RSP #FWUPDATE
3.4 Command the NuVoNet Adapter to Restart
As a part of the controller‟s startup procedure, it should command the NuVoNet adapter to
restart.
RSP *RESTART
CMD #RESTART”Bridge”
3.5 Ping
This response is issued every 10 seconds to check that the source is still available. The source
should respond immediately to notify the NuVoNet Adapter that it is available.
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 5
If it takes more than 10 seconds for the source to respond, it will be assumed that the source is
not available. The next time that the source does respond to a ping, a restart response will be
issued.
RSP #PING
CMD *PING
3.6 Set Source Numbers
This command should be issued during initialization to define the source numbers for this
device. Each attached source device should use a different source number and this number
should be configurable in software by the end user or installer. Note that if the device has
multiple independent audio outputs, it should use a separate source number for each independent
audio output.
CMD *SNUMBERSsource1,source2,source3,source4,source5,source6
Command Parameters
source1 0 – do not use source number 1 for this device
1 – use source number 1 for this device
source2 0 – do not use source number 2 for this device
1 – use source number 2 for this device
source3 0 – do not use source number 3 for this device
1 – use source number 3 for this device
source4 0 – do not use source number 4 for this device
1 – use source number 4 for this device
source5 0 – do not use source number 5 for this device
1 – use source number 5 for this device
source6 0 – do not use source number 6 for this device
1 – use source number 6 for this device
RSP #OK
3.7 Send Source Name
This command should be sent by a source to define the name that appears for this source in the
Grand Concerto sources menu. The source should send this command after receiving a restart
response.
CMD *SsNAME”name”
Command Parameters
S The source number for this device
Name The name of this source (up to 16 characters)
RSP #OK
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 6
3.8 Send Source-Specific Top-Level Menu Items
This command should be sent by a source to define the menu items that should be inserted to the
top-level menu of the Grand Concerto Control Pad when the source is active. The source should
send this command after receiving a restart response.
CMD *SsMENUmenusize
Command Parameters
S The source number for this device
Menusize The total number of items in the top-level menu for this source (maximum of 10)
CMD *SsMENUITEMitemid,itemtype,albumartid,”description” (MI can be used in place of MENUITEM)
Command Parameters
S The source number for this device
Itemid
The id of the menu item. Use the standard main menu item IDs below.
menuidSourceOptions 0xFFFEFFFF
menuidSourceSettings 0xFFFEFFFE
menuidSourceActions 0xFFFEFFFD
menuidSourcePlaylist 0xFFFEFFFC
menuidSourceArtist 0xFFFEFFFB
menuidSourceAlbum 0xFFFEFFFA
menuidSourceGenre 0xFFFEFFF9
menuidSourceSong 0xFFFEFFF8
menuidSourceComposer 0xFFFEFFF7
menuidSourceBands 0xFFFEFFF6
menuidSourceBrowseChann 0xFFFEFFF5
menuidSourceInfo 0xFFFEFFF4
menuidSourceRadio 0xFFFEFFF3
menuidSourceQueue 0xFFFEFFF2
menuidSourcePresets1 0xFFFEF100
menuidSourcePresets2 0xFFFEF101
menuidSourcePresets3 0xFFFEF102
menuidSourcePresets4 0xFFFEF103
menuidSourcePresets5 0xFFFEF104
Itemtype
bitmask indicating how to display menu item
bit 0: the item has a sub-menu associated with it
bit 1: „play‟ will have a different effect than „select‟
bit 2: disabled menu item, do not allow „play‟ or „select‟
bit 3: display checkmark in front of this item
bit 4: advanced menu item, should be made difficult or impossible for user to access
bit 5: not implemented
bit 6: not implemented
bit 7: not implemented
Albumartid Not implemented, should be 0
“description” The description of the menu item (up to 40 characters)
RSP #OK
3.9 Send Source-Specific Favorites
This command should be sent by a source to define the favorites menu items that should be
inserted into the global favorites menu. The source should send this command after receiving a
restart response. The source should also resend this whenever it‟s favorites change. If the source
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 7
device has three outputs that all have access to the same set of favorites, only one of the sources
needs to send its favorites and it should specify the other source numbers as alternates. The
Grand Concerto will try to find an available source to play a favorite on when it is selected.
CMD *SsFAVORITEScount,alternate1,alternate2,alternate3,alternate4,alternate5,alternate6
Command Parameters
S The source number for this device
Count The total number of favorites for this source (maximum of 20)
alternate1 0 – this source does not share favorites with source number 1
1 – this source shares its favorites with source number 1
alternate2 0 – this source does not share favorites with source number 2
1 – this source shares its favorites with source number 2
alternate3 0 – this source does not share favorites with source number 3
1 – this source shares its favorites with source number 3
alternate4 0 – this source does not share favorites with source number 4
1 – this source shares its favorites with source number 4
alternate5 0 – this source does not share favorites with source number 5
1 – this source shares its favorites with source number 5
alternate6 0 – this source does not share favorites with source number 6
1 – this source shares its favorites with source number 6
CMD *SsFAVORITESITEMitemid,itemtype,albumartid,”description”
Command Parameters
S The source number for this device
Itemid The id of the item
Itemtype
bitmask indicating how to display menu item
bit 0: the item has a sub-menu associated with it
bit 1: „play‟ will have a different effect than „select‟
bit 2: disabled menu item, do not allow „play‟ or „select‟
bit 3: display checkmark in front of this item
bit 4: advanced menu item, should be made difficult or impossible for user to access
bit 5: not implemented
bit 6: not implemented
bit 7: not implemented
albumartid Not implemented, should be 0
“description” The description of the favorite (up to 40 characters)
RSP #OK
3.10 Send Source Status
This information should be sent to update the position, duration, source status, album art, source
mode, and supported actions for the currently playing track. Note that this command does not
need to be sent repeatedly during playback. If the play mode is any of the “playing” modes, the
Control Pad will automatically increment the position information.
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 8
The source should send this command whenever duration, source status, album art id, source
mode, or supported actions change or if position changes in a manner that cannot be determined
by the Control Pad, such as fast-forward and rewind. The source should also send this command
in response to the restart response.
CMD *SsDISPINFOTWOduration,position,deprecatedstatus,albumartid,sourcemode,sourcestatus,supportedactions
Command Parameters
S The source number for this device
Duration Length of currently playing song in 10ths of seconds
Position Position in currently playing song in 10ths of seconds (0xFFFFFFFF will be ignored)
deprecatedstatus
0 – Normal
1 – Idle
2 – Playing
3 – Paused
4 – Fast Forward
5 – Rewind
6 – Play Shuffle
7 – Play Repeat
8 – Play Shuffle Repeat
albumartid Album art ID for the currently playing track. Use 0 if none available.
sourcemode
0 - Unknown mode, display device will use information from deprecatedstatus
1 – Tuner mode
2 – Music Server mode
3 – Pandora mode
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 9
sourcestatus
If sourcemode=Tuner
bit 0: TunerStepTune
bit 1: TunerSeekTune
bit 2: TunerPresetTune
bit 3: TunerStrength0
bit 4: TunerStrength1
bit 5: TunerStrength2
bit 6: TunerStrength3
bit 7: TunerStrength4
bit 8: TunerStrength5
bit 9: TunerStrengthStereo
If sourcemode=Music Server
bit 0: MusicServerIdle
bit 1: MusicServerPlay
bit 2: MusicServerPause
bit 3: MusicServerFastForward
bit 4: MusicServerRewind
bit 5: MusicServerShuffle
bit 6: MusicServerRepeat
If sourcemode=Pandora
bit 0: PandoraIdle
bit 1: PandoraPlay
bit 2: PandoraPause
bit 3: PandoraThumbsUp
bit 4: PandoraThumbsDown
supportedactions
bit 0: PlayPause
bit 1: NextTrack
bit 2: PreviousTrack
bit 3: ShuffleToggle
bit 4: RepeatToggle
bit 5: TuneUp
bit 6: TuneDown
bit 7: SeekUp
bit 8: SeekDown
bit 9: PresetUp
bit 10: PresetDown
bit 11: DirectFrequencyEntry
bit 12: DirectPresetEntry
bit 13: NextBand
bit 14: ThumbsUp
bit 15: ThumbsDown
bit 16: GetActions – done with a MENUREQUEST for menuidSourceActions
bit 17: GetSourceOptions – done with a MENUREQUEST for menuidSourceOptions
RSP #OK
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 10
The following version of the DISPINFO command remains for backward compatibility with the
initial version of this protocol document. New implementations should use DISPINFOTWO.
CMD *SsDISPINFOduration,position,mode (this command was deprecated with version 1.04 of the NV-NNA
firmware) Command Parameters
s The source number for this device
duration Length of currently playing song in 10ths of seconds
position Position in currently playing song in 10ths of seconds (0xFFFFFFFF will be ignored)
mode=0 Normal
mode=1 Idle
mode=2 Playing
mode=3 Paused
mode=4 Fast Forward
mode=5 Rewind
mode=6 Play Shuffle
mode=7 Play Repeat
mode=8 Play Shuffle Repeat
RSP #OK
3.11 Send Source Metadata
This command should be used to update the metadata for the “now playing” display on the
Control Pad. This command is not used for populating menus. This command should be sent
whenever metadata changes. It should also be sent whenever the restart response is received.
CMD *SsDISPLINESlayout1,layout2,layout3,”string1”,”string2”,”string3”,"string4"
Command Parameters
S The source number for this device
layout1
Specifies how to layout these strings for a one line display
0: string1 – string2 – string3 – string4
1: string1 – string2 – string4
2: string3 – string4
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 11
layout2
Specifies how to layout these strings for a two line display
0:
string1 – string2
string3 – string4
1:
string1 – string2
string4
2:
string1
string3 – string4
3:
string1
string2
layout3
Specifies how to layout these strings for a three line display
0:
string1 – string2
string3
string4
1:
string1
string3 – string2
string4
string2
string1 The first string (20 characters max)
string2 The second string (80 characters max)
string3 The third string (80 characters max)
string4 The fourth string (80 characters max)
RSP #OK
3.12 Receive a Request to Prepare Album Art
This response is used to request that a source prepare an album art image. The
ALBUMARTAVAILABLE response may come back a few seconds after the request. The
source must only maintain one album art image at any given time. If a new request is made
before the previous request is serviced, then the old request should be discarded and the new
request should be processed.
RSP #SsALBUMARTREQalbumartid,width,height,constrainmode,backgroundrgb,rotationz,reflectionelevation,reflectionheight%
reflectionopacity%,imageformat
Response packet breakdown
S The source number for this device
Albumartid Album art ID being requested.
Width The requested width in pixels
Height The requested height in pixels
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 12
constrainmode
0 – none, return an image that fills the requested aspect ratio by stretching or compressing the image
1 – bounds, do not stretch image to fill aspect ratio
2 – center, put image center at center of aspect ratio and respect aspect ratio
backgroundrgb RGB for background (ignored when using transparency). This should be formatted as 0xRRGGBB.
Rotationz Z-axis rotation in degrees (positive values rotate right side away). Valid values are –90 to +90.
reflectionelevation Reflection elevation in pixels
reflectionheight% Reflection height as a percentage of image height
reflectionopacity% Reflection opacity percentage
imageformat
0 – png
1 – jpg
2 – gif
3 - bmp
CMD *SsALBUMARTAVAILABLEalbumartid,sizeinbytes
Command Parameters
S The source number for this device
Albumartid Album art ID that is available, use 0 if requested album art is not available
Sizeinbytes The size in bytes of the album art image.
RSP #OK
3.13 Receive a Request for a Album Art Fragment
The following response is issued to retrieve a portion of the album art image that was generated
by the ALBUMARTREQ command. If the album art image is not available, the source should
send “*ALBUMARTFRAG0,0,0,0”.
RSP #SsALBUMARTFRAGREQalbumartid,offsetinbytes,numbytes
Response packet breakdown
S The source number for this device
albumartid Album art ID being requested.
offsetinbytes The offset in bytes from the beginning of the file
numbytes The number of bytes being requested
CMD *SsALBUMARTFRAGalbumartid,offsetinbytes,base64datalength,base64data
Command Parameters
S The source number for this device
albumartid Album art ID for the album art that this fragment belongs to.
offsetinbytes The offset in bytes from the beginning of the file
base64datalength The number of characters in the base 64 data string
base64data Base64 encoded data, see “The Base 64 Alphabet” in RFC 4648. No line feeds or carriage
returns should be embedded in this string
RSP #OK
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 13
3.14 Send a Message to a Zone or All Zones on a Source
This command will send a text message to a single zone or all zones on a source with different
importance levels and dwell times.
CMD *SsZzMSG"string",importance,dwelltime
Command Parameters
S The source number for this device
Z The zone to send the message to (1-20), 0 for all zones on this source
string Text message to send (80 character max)
Importance
0 - Information message
1 – Warning message
2 – Error message
3 – Flash the message
dwelltime
0 - Normal dwell time
1 – Short dwell time
2 – Long dwell time
RSP #OK
3.15 Receive Control Pad Button Press
This command will be sent to notify the source that a button was pressed on a Control Pad that
requires action from the source. The source is responsible for determining what action to take in
response to the button press.
RSP #ZzSsBUTTONb,action,menuid,itemid,itemindex,”optionalstring”
Response packet breakdown
Z The zone to send the message from: 1 to 20
S The source number for this device
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 14
B
0x01 - OK button was pressed
0x02 - PLAYPAUSE button was pressed
0x03 - PREV button was pressed
0x04 - NEXT button was pressed
0x05 - POWERMUTE button was pressed, source will not receive this
0x06 - UP button was pressed, source will not receive this
0x07 - DOWN button was pressed, source will not receive this
0x29 - DISCRETEPLAYPAUSE button was pressed
0x2A - DISCRETENEXTTRACK button was pressed
0x2B - DISCRETEPREVIOUSTRACK button was pressed
0x2C - SHUFFLETOGGLE button was pressed
0x2D - REPEATTOGGLE button was pressed
0x2E - TUNEUP button was pressed
0x2F - TUNEDOWN button was pressed
0x30 - SEEKUP button was pressed
0x31 - SEEKDOWN button was pressed
0x32 - PRESETUP button was pressed
0x33 - PRESETDOWN button was pressed
0x34 - DIRECTFREQUENCYENTRY button was pressed
0x35 - DIRECTPRESETENTRY button was pressed
0x36 - NEXTBAND button was pressed
0x37 - THUMBSUP button was pressed
0x38 - THUMBSDOWN button was pressed
action
0 - Button action is DOWNUP – button press and immediate release
1 - Button action is DOWN – WILL be followed by an UP action
2 - Button action is UP – Only valid when menus are not active
menuid ID of the active menu, 0 for no menu, 0xFFFFFFFF for top-level menu
itemid ID of the selected menu item
itemindex Index of the selected menu item
“optionalstring” Optional string to provide an additional argument to buttons that require a string argument. The
only existing buttons that use the string argument are DIRECTFREQUENCYENTRY and
DIRECTPRESETENTRY.
3.16 Receive Zone Request for a Source Menu Items
This command is used for a zone to request a list of up to 20 menu items. If a menu contains
more than 20 items, then multiple menu requests will be made in order to retrieve the entire list.
The zone will wait for the response to each menu request before issuing the next menu request.
RSP #ZzSsMENUREQmenuid,up,location,itemindex
Response packet breakdown
Z The zone the message is from: 1 to 20
S The source number for this device
menuid ID of the menu being requested. Requests for menuidSourceOptions should return source
options. Requests for menuidSourceActions should return source actions.
up 0=ignore this argument
1=parent menu of the current menu is being requested. Ignore the remaining arguments to this
command.
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 15
location
0 - Requesting block starting with first item in menu (i.e. „home‟ button)
1 - Requesting block ending with last item in menu (i.e. „end‟ button)
2 - Requesting block starting with itemindex (used when scrolling down a list)
3 - Requesting block ending with itemindex (used when scrolling up a list)
4 – Requesting block starting with the first item that comes after letter specified in itemindex
alphabetically
itemindex Used as a base index for menu requests with location=2 or location=3. If location=4, then this is
the numeric ASCII representation of the character.
CM
D
*SsZzMENUmenuid,timeout,albumartid,menusize,selecteditemindex,firstblockitemindex,blocksize,”de
scription” Command Parameters
S The source number for this device
Z The zone the message is to: 1 to 20
menuid The id of the menu, if 0 the Control Pad will exit the menu completely. If 0xFFFFFFFF the
Control Pad will return to the top-level menu.
timeout 0=normal menu
n=Control Pad will display countdown and automatically take highlighted action after n seconds
albumartid Not implemented, should be 0
menusize The total number of items in the menu, 0xFFFF indicates that a menu may take some time to
retrieve, Control Pad will indicate this to the user.
selectediteminde
x The index of the selected item, this parameter will be ignored if it is equal to 0xFFFF
firstblockitemin
dex The index of the first item in this block
blocksize The number of items in this block
“description” The description of the menu (up to 40 characters)
menumode
Bit 0: menumodePreview
Bit 1: menumodeOneCheck
Bit 2: menumodeNumericEntry
Bit 3: menumodeCodeEntry
Bit 4: menumodeTextOnly
Bit 5: menumodeAlphaSupport – set this bit if the list supports navigation by letter
CM
D
*SsZzMENUITEMitemid,itemtype,albumartid,”description” (MI can be used in place of
MENUITEM) Command parameters
S The source number for this device
Z The zone the message is to: 1 to 20
itemid The id of the menu item
itemtype
bitmask indicating how to display menu item
bit 0: the item has a sub-menu associated with it
bit 1: „play‟ will have a different effect than „select‟
bit 2: disabled menu item, do not allow „play‟ or „select‟
bit 3: display checkmark in front of this item
bit 4: advanced menu item, will be made difficult or impossible for user to access
bit 5: not implemented
bit 6: not implemented
bit 7: not implemented
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 16
albumartid Not implemented, should be 0
“description” The description of the menu item (up to 40 characters)
RSP #OK
3.17 Receive Request to Keep a Menu Active or Exit a Menu
This response is used for a Control Pad to keep a menu from timing out or to notify the source
that it has exited the menu.
RSP #ZzSsMENUACTIVEmenuid,exit
Response packet breakdown
Z The zone the message is from: 1 to 20
S The source number for this device
Menuid ID of the currently active menu.
Exit
0=keep the menu active, prevent timeout (this could be used when a user is scrolling up and
down through a list of items that has already been retrieved from the source).
1=exit the menu (the Control Pad has exited the menu).
3.18 Send Message Box
This command is used to send a message box to a single zone. A message box will have a title, a
message, and up to 5 buttons for the user to press.
CMD *SsZzMESSAGEBOXmessageboxid,timeout,albumartid, numbuttons,
defaultbuttonindex,”title”,”message” Command Parameters
S The source number for this device
Z The zone the messagebox is to: 1 to 20
messageboxid The id of the message box, if 0 the Control Pad will hide the message box. When a button is
pressed in the message box, the messageboxid will be passed in the menuid field.
Timeout
0=normal message box
n=Control Pad will display countdown and automatically take action associated with
defaulbuttonindex after n seconds.
Albumartid Album art ID for album art to be associated with the message box. Use 0 if no album art
available.
Numbuttons The total number of buttons to be displayed on the message box: 1 to 5
defaultbuttonindex The index of the default button: 0 to 4
“title” The description of the message box (up to 40 characters)
“message” The message to be inside the body of the message box (up to 500 characters)
CMD *SsZzMESSAGEBOXBUTTONitemid,albumartid,”description”
Command parameters
S The source number for this device
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 17
Z The zone the message box is to: 1 to 20
Itemid The id of the message box button. When a button is pressed in the message box, the itemid of
the pressed button will be passed back as the itemid in the BUTTON command.
Albumartid Album art ID for album art to be associated with the button. Use 0 if no album art available.
“caption” The caption for the button (up to 40 characters)
RSP #OK
3.19 Send Numeric/String Entry Dialog
This command is used to tell a keypad to display a numeric or string entry dialog. This string
entry dialog will have a title, instructions and room for entering up to a 20 characters.
CMD *SsZzSTRINGENTRYstringentryid,mode,timeout,maxstring,”title”,”instructions”,”initialstring”
Command Parameters
S The source number for this device
Z The zone the message is to: 1 to 20
Stringentryid The id of the string entry dialog, if 0 the Control Pad will hide the string entry dialog. When a
button is pressed in the dialog box, the stringentryid will be passed in the menuid field.
Mode
16 bit bitmask indicating how to display menu item
bit 0: standard lower-case letters supported
bit 1: standard upper-case letters supported
bit 2: numbers supported
bit 3: symbols supported (.;%# etc.)
bit 4: spaces supported
bit 5: characters in the character set but not in the standard alphabet are supported
bit 6: date entry in the MMDDYY format – if set, this will override lower bits in this field
bit 7: time entry in the 24 hour format – if set, this will override lower bits in this field
Timeout
0=normal string entry dialog, normal keypad timeouts apply
n=Control Pad will display countdown and automatically remove the string entry dialog after n
seconds
Maxstring The maximum length of the string to be entered (1-20)
“title” The title of the string entry dialog (up to 40 characters)
“instructions” Short instructions to display on the string entry dialog (up to 80 characters)
“initialstring” The initial string to be displayed. Use MMDDYY format for date and 24-hour HHMM for time.
3.20 Receive Notification that a Favorite has been Selected
This response is used for a Control Pad to notify a source that one of the source‟s favorites has
been selected. The source should take the appropriate action, which is usually to play the
favorite that was selected.
RSP #SsFAVORITEfavoriteid
Response packet breakdown
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 18
S The source number for this device
Favoriteid The ID of the favorite that was selected
3.21 Disable Ping
This command can be used to disable the ping functionality. During development of a driver
that communicates with the NuVoNet Adapter, the requirement to respond to a ping every 10
seconds may make it difficult to debug the driver. This command should be used for
development purposes only. Released versions of drivers should not use this command.
Normal ping functionality will resume the next time that the NuVoNet Adapter is rebooted.
CMD *_DISABLEPING
RSP #OK
3.22 Report Network Status (MPS4 only)
This command can be sent to the NV-MPS4 to indicate the status of the LAN connection. It will
control the front panel LED.
CMD *NETWORKSTATUSx
x
X=0 No physical connection
X=1 No LAN connectivity
X=2 No WAN connectivity
X=3 Connection OK
RSP #OK
3.23 Send a String out the Passthrough Port (MPS4 only)
This command can be sent to the NV-MPS4 to send a string out the Passthrough port.
CMD *PASSTHROUGH”string”
string The string to send out the passthrough port (up to 500 characters)
RSP #OK
4.0 Usage Example #RESTART Grand Concerto was restarted, source needs to re-identify itself.
*VER #VER"NV-NNA FWv1.00 HWv0"
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 19
*SNUMBERS1,0,0,0,0,0 Use source number 1 #OK
*S1NAME”My Source” Send the source name #OK
*S1MENU,6 Send the source-specific top-level menu items *S1MENUITEM1,1,0,”Playlists” *S1MENUITEM2,1,0,”Artists” *S1MENUITEM3,1,0,”Albums” *S1MENUITEM4,1,0,”Genres” *S1MENUITEM5,1,0,”Songs” *S1MENUITEM6,1,0,”Options” #OK
*S1DISPINFO2000,1240,2 Update track status for this source #OK
*S1DISPLINES2,2,1,”2 of 14”, ”White Album”, ”The Beatles”, ”Rocky Raccoon” Update the
metadata for this source
#OK
*S1FAVORITES2,1,0,0,0,0,0 Send the source-specific favorites
*S1FAVORITESITEM1234,0,0,”Dinner Music” *S1FAVORITESITEM5678,0,0,”Party Playlist” #OK
At this point the source has completely re-identified itself. Let‟s assume that a few seconds later,
someone selects this source from zone 1, enters the menu, and selects “Artists”.
#Z1S1BUTTON1,1,0xFFFFFFFF,2,3 OK button pressed on “Artists” in main menu
*S1Z1MENU27,0,0,33,0,0,20,”Artists” Source responds with first 20 items in the “Artists” menu *S1Z1MENUITEM1,1,0,”Artist 1” *S1Z1MENUITEM2,1,0,”Artist 2” *S1Z1MENUITEM3,1,0,”Artist 3” *S1Z1MENUITEM4,1,0,”Artist 4” *S1Z1MENUITEM5,1,0,”Artist 5” *S1Z1MENUITEM6,1,0,”Artist 6” *S1Z1MENUITEM7,1,0,”Artist 7” *S1Z1MENUITEM8,1,0,”Artist 8” *S1Z1MENUITEM9,1,0,”Artist 9” *S1Z1MENUITEM10,1,0,”Artist 10” *S1Z1MENUITEM11,1,0,”Artist 11” *S1Z1MENUITEM12,1,0,”Artist 12” *S1Z1MENUITEM13,1,0,”Artist 13” *S1Z1MENUITEM14,1,0,”Artist 14” *S1Z1MENUITEM15,1,0,”Artist 15” *S1Z1MENUITEM16,1,0,”Artist 16” *S1Z1MENUITEM17,1,0,”Artist 17” *S1Z1MENUITEM18,1,0,”Artist 18” *S1Z1MENUITEM19,1,0,”Artist 19” *S1Z1MENUITEM20,1,0,”Artist 20”
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 20
#OK
#Z1S1MENUREQ27,0,2,20 Zone 1 requests items starting with index 20
*S1Z1MENU27,0,0,33,0xFFFF,20,13,”Artists” Source responds with items starting with index 20 *S1Z1MENUITEM21,1,0,”Artist 21” *S1Z1MENUITEM22,1,0,”Artist 22” *S1Z1MENUITEM23,1,0,”Artist 23” *S1Z1MENUITEM24,1,0,”Artist 24” *S1Z1MENUITEM25,1,0,”Artist 25” *S1Z1MENUITEM26,1,0,”Artist 26” *S1Z1MENUITEM27,1,0,”Artist 27” *S1Z1MENUITEM28,1,0,”Artist 28” *S1Z1MENUITEM29,1,0,”Artist 29” *S1Z1MENUITEM20,1,0,”Artist 30” *S1Z1MENUITEM21,1,0,”Artist 31” *S1Z1MENUITEM22,1,0,”Artist 32” *S1Z1MENUITEM23,1,0,”Artist 33” #OK
#Z1BUTTON2,1,27,17,16 PLAYPAUSE button pressed on “Artist 17” in “Artists” menu
*S1Z1MENU0,0,0,0,0,0,0,”” Source tells Control Pad to exit menu completely #OK
*S1DISPINFO2320,0,2 Update track status for this source #OK
*S1DISPLINES2,2,1,”1 of 25” ,”Album 1” ,”Artist 17” ”Song 1” Update the metadata for this
source
#OK
Source Communication Protocol for NuVoNet Adapter
NuVo Technologies, LLC 2007
Revision: 1.0
Page 21
HISTORY
3-Apr-09 DISPINFO command
changed „mode‟ to „deprecated_status‟.
added sourcemode
added sourcestatus
added supportedactions
added albumartid
Added DIALOGBOX command
Added ALBUMARTREQ command
BUTTON command
added new button IDs
added optional string
Added fixed menu IDs to be used for Source Options and Source Actions
11-May-09 Added STRINGENTRY command
13-May-09 Renamed DIALOGBOX command to MESSAGEBOX command
18-May-09 The version of DISPINFO with added parameters is now called DISPINFOTWO.
19-May-09 Changed Base64 encoding to use RFC4648
20-May-09 Changed numbytes in ALBUMARTFRAG to base64datalength
19-Jun-09 Added NETWORKSTATUS command
6-Jul-09 Specified all special item IDs for the source main menu items
4-Aug-09 Added menumode to SsZzMENU command
Added alpha navigation support to ZzSsMENUREQ (location, itemindex)