Lyngdorf MP-50 – External Control Manual
5
Control Protocol
Commands
Every command starts with ‘!’ character and ends with carriage return (ascii 0x0D, referred
to in this document as <CR>). There are two types of commands: commands and status
requests. Commands are used to emulate remote key presses or to set a certain volume etc.
Status requests are used to query the current state of the controller (volume, current source
etc.). Commands with invalid formats are simply ignored. For example, sending a command
!VOL(100)garbage!MUTEON<CR> will only result in volume being muted, because volume
command is not terminated properly.
Responses and Feedback Level
There are three levels of responsiveness, called feedback levels. Each level adds something
new to the previous level. Feedback levels can be set from the control interface with
command “!VERB(X)<CR>” (X can be 0, 1 or 2). All responses start either with ‘!’ (status
messages) or ‘#’ (echo messages) and end with <CR>.
Feedback level 0: Data is sent only when data is requested by a status request command.
For example, command “!VOL?<CR>” would return “!VOL(XXX)<CR>”, where “XXX” would
be current volume.
Feedback level 1: Data is sent whenever any of the statuses listed below change. The data
format is the same as for responses to status request commands.
Feedback level 2: Each command is also echoed back with the ‘#’ in front of the command
instead of ‘!’ character. For example, command “!VOL?<CR>” would return
“#VOL?<CR>!VOL(XXX)<CR>”.