6
HDMI5 Component Video Switch
7
HDMI5 Component Video Switch
and the Error Response is always the string:
!ERR<CR><LF>
By parsing only the prefix characters ‘+’ and ‘!’, a programmer can chose to ignore the error
codes and simply look at the first characters of the response strings and use them as a pass /
fail indicator when issuing a command.
All response strings always end with a
<CR><LF>
.
A Query Response string always starts with the ‘=’ characters and is followed by a command
string indicating the parameter being returned. This is better explained in an example.
Here’s an example of a querying a device for its light intensity settings:
LI?<CR>
Sent: Light Intensity Query command
+<CR><LF>
Received: Acknowledgement of command
=LI 2,13<CR><LF>
Received: Light Intensity Query Response
Note that a “
+<CR><LF>
” followed the command string. A command string is
always
followed
by either an Acknowledgment (as in this case) or an Error Response. This consistency allows
a driver to use a single routine to issue a command and check for an Acknowledgement or an
Error Response String, whether or not the command queries for a response.
An example of an error response:
IL?<CR>
Sent: Command characters transposed, no such command
!2<CR><LF>
Received: Error Response indicating unknown command
In this case the Error Response string “
!2<CR><LF>
” was issued instead of the acknowledg-
ment string since the command was not recognized.
Response String Checksums and CRC-8 Checkcodes
Response strings can be programmed to have checksums or CRC-8 checkcodes appended to
them, the syntax is identical to the Command Structure’s checksum and CRC-8 handling.
Checksum and CRC-8 are turned on and off by issuing the proper command. On most devices
this is the
“Control Settings”
command.
Only the Error Response and The Query Response strings will have checksum and CRC-
8 checkcodes appended to them. The Acknowledgment Response will always consist of
“+<CR><LF>”. Anything else must be assumed to be a communication error.
An example with checksumming enabled, while querying for LED intensities is:
LI?<CR>
+<CR><LF>
=LI 2,13;239<CR><LF>
An example with CRC-8 responses enabled is:
LI?:194<CR>
+<CR><LF>
=LI 2,13:87<CR><LF>
Notice that in the first example a checksum was not appended to the “
LI?
” command. When
issuing a command the checksum and CRC-8 codes are sent on a command by command
basis. Anytime a checksum or a CRC-8 code is appended to a command it will be checked and
validated by the device, regardless of the “Response Checksum / CRC-8” settings.
When Response Checksums, or Response CRC-8 Checkcodes are enabled, Error Response
strings will also have checksum and CRC-8 codes appended to them.
Master / Slave and Asynchronous Modes of Operation
The K.I.S.S.™ protocol can be used in a Master / Slave mode, where responses are only sent
when requested, or in an Asynchronous mode, where responses are sent whenever the opera-
tional state of the device changes, such as a front panel button being pressed.
The Master / Slave Mode of Operation
In the Master / Slave mode, the controller requests information from the device at polled
intervals. The control program assumes the role of the master, and the device is operated in the
slave mode. No information will be sent from the device without first receiving a request from the
controller.
For controllers that cannot handle having information being sent to them in the background, or at
unspecified times, the Master / Slave setting is ideal, since all state changes will be logged but
not sent until requested by the controller.
To allow for more efficient Master / Slave operations, there is a Query Status command available
to the controller that return the status state of the device as a bitmap of flags indicating which
states have changed and need querying. This allows the controller to poll, using a single com-
mand, and then based on those flag settings, issue only the commands needed to read the new
state(s) of the device.
The Master / Slave mode also allows for a predictable communications flow. A communication
sequence is always started by the controller by issuing a command. The response will always be
either the Acknowledgement Response, or an Error Response, followed by (if a query command
was issued) the Query Response. For instance:
LI ?<CR>
Sent: Controller issues a query command.
+<CR><LF>
Received: Acknowledgment (or possible Error) Response.
=LI 2,13<CR><LF>
Received: Query Response.
In the Master / Slave mode, the Acknowledgement or Error Response will always be the next re
-
K.I.S.S.™
(Continued)
K.I.S.S.™
(Continued)