Serial Settings
The serial port settings are always 8 data bits, no parity and one stop bit with a baud rate of 115200.
Commands and Requests
All commands and requests start with the ‘!’ character.
Commands end with a combination of the Carriage Return character (ascii 0x0D, referred to as
<CR> in this document) and Line Feed (ascii 0x0A, <LF>). Often, a single <CR> is used, but
because different systems handle these characters differently, it is also allowed to end with <LF>,
<CR><LF> or even <LF><CR>. In this document, it is expected to be <CR><LF>, but all of these
combinations are allowed instead.
Requests end with the character ‘?’ and <CR><LF> (or any <CR><LF> combination as above).
Both commands and requests can have parameters, these are enclosed in parenthesis.
Replies to a request are formatted as the request with the reply values as parameters. Replies always
use the <CR><LF> combination of line-end characters.
Commands and requests are not case sensitive.
In addition, it is possible to subscribe to status changes from the device. In this situation, whenever
a status has changed (new source, new voicing etc.) the device will send a status. This status is
formed exactly like a reply to a request, except it is followed by the character '!' before the
<CR><LF> to indicate, that this is an asynchronous message, not a reply.
Commands and requests which are malformed or has invalid parameters will just be ignored. If a
command or request is correct but followed by garbage before the line end chracter(s), the
command or request will be executed and the garbage ignored.