
Communication Protocol 3000
25
Device message format:
Start
Address (optional)
Body
Delimiter
~
Sender_id@
message
CR LF
Device long response (
Echoing command
):
Start
Address (optional)
Body
Delimiter
~
Sender_id@
command
SP
[
param1 ,param2
…
]
result
CR
LF
CR
= Carriage return (ASCII 13 = 0x0D)
LF
= Line feed (ASCII 10 = 0x0A)
SP
= Space (ASCII 32 = 0x20)
12.2
Command Parts Details
Command
:
Sequence of ASCII letters ('A'-'Z', 'a'-'z' and '-').
Command will separate from parameters with at least single space.
Parameters
:
Sequence of Alfa-Numeric ASCII chars ('0'-'9','A'-'Z','a'-'z' and some special chars for specific commands), parameters will be separated
by commas.
Message string
:
Every command must to be entered as part of message string that begin with
message starting char
and end with
message closing char
,
note that string can contain more then one command separated by pipe ("|") char.
Message starting char
:
'#' for host command\query.
'~' for machine response.
Device address
(Optional, for Knet):
Knet Device ID follow by '@' char.
Query sign
= '?', will follow after some commands to define query request.
Message closing char =
Host messages - Carriage Return (ASCII 13), will be referred to by
CR
in this document.
Machine messages
-
Carriage Return (ASCII 13) + Line-Feed (ASCII 10), will be referred to by
CRLF
.
Spaces between parameters or command parts will be ignored.
Commands chain separator char
:
When
message string
contains more than one
command, commands will be separated by pipe ("|").
Commands entering
:
If terminal software used to connect over serial \ ethernet \ USB port, that possible to directly enter all commands characters ( CR will be
entered by Enter key, that key send also LF, but this char will be ignored by commands parser).
Sending commands from some controllers (like Crestron) require coding some characters in special form (like \X##). Anyway, there is a
way to enter all ASCII characters, so it is possible to send all commands also from controller.
(Similar way can use for URL \ Telnet support that maybe will be added in future).
Commands forms
:
Some commands have short name syntax beside the full name to allow faster typing, response is always in long syntax.
Commands chaining
:
It is possible to enter multiple commands in same string by '|' char (pipe).
In this case the
message starting char
and the
message closing char
will be entered just one time, in the string beginning and at the
end.
All the commands in string will not execute until the closing char will be entered.
Separate response will be sent for every command in the chain.
Input string max length
:
64 characters.
Backward support
: