SERIAL SETTINGS
The serial port settings are always 8 data bits, no parity and one stop bit with a baud rate of 115200.
COMMAND AND REQUEST FORMATTING
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.
Requests end with the character ‘?’ and <CR><LF> (or any <CR><LF> combination as above).
Commands can have parameters; these are enclosed in parentheses.
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 state, new track 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.
!COMMAND
<CR><LF>
Command
!COMMAND(param)
<CR><LF>
Command with parameter
!REQUEST?
<CR><LF>
Request
!REQUEST(reply)
<CR><LF>
Reply to a request
!REQUEST(status)!
<CR><LF>
A status which has changed
Commands and requests which are malformed or have invalid parameters will be ignored. If a
command or request is correct but followed by garbage before the line end character(s), the
command or request will be executed and the garbage ignored.
4