Command Checksums And Crc-8 Checkcodes; Clearing The Command Buffer - Zektor CVS4 User Manual Supplement

Home theater switches, high definition component video switch
Hide thumbs Also See for CVS4:
Table of Contents

Advertisement

K.I.S.S.™ (Continued)
mal parameter used by the command. For instances if the bits 'AS' and 'IJ' where to be set to 1,
and the rest of the bits set to zero, the parameter value would be calculated as: 8+1, making the
parameter value: 9.
The command to directly set those two bits, and reset all the others would be:
XS 9<CR>
Individual bits of a bitmapped parameter can be set or reset without affecting the other bits, by
prefixing the bitmapped parameter with a '+' to set individual bits, or a '-' to reset individual bits.
For instance in the above example the bitmapped value has been set to '9'. If we would now like
to enable the IR remote, by setting the 'IRE' bit, the following command can be issued:
XS +4<CR>
The will set the 'IR' bit, and have no affect on the others, and the new "XS" value would be: 13
If we'd like to now disable the IR jack and the IR remote functions and the Front Panel, by clear-
ing the 'IRJ', 'IRE' & 'FP' bits, we'd use the value "16+4+2", or 22, and issue the command:
XS -22<CR>
leaving the new "XS" value to be: 1.

Command Checksums and CRC-8 Checkcodes

A checksum or CRC-8 checkcode may be appended to any command, and if given, will be
calculated by the device and compared with the given value. If a mismatch occurs an error will
be returned and the command will not be executed. This can be used to help assure reliable op-
eration in noisy environments. Checksums are more commonly used in serial protocols, however
CRC-8 checkcodes offer a more secure means of insuring error free communications.
A checksum or CRC-8 checkcode is appended to the command by adding a semicolon (';') or
colon (':') suffix character followed by the checksum or checkcode.
An example of appending a checksum to a command:
LI 2,13;178<CR>
the ';' indicates a checksum follows, the '178' is the checksum of the command string up to and
including the ';' character.
In a similar fashion a CRC-8 checkcode can be appended to a command:
LI 2,13:213<CR>
The ':' indicates that a CRC-8 checkcode follows, the '213' is the calculated CRC-8 checkcode.
Optional spaces are allowed before the ';' and ':' characters but NOT after them. The checksum
must immediately follow the ';' character, and a CRC-8 checkcode must immediately follow the ':'
character, anything else, including whitespace, will cause a syntax error to be returned. Similarly
the <CR> must immediately follow the checksum or checkcode parameter or a syntax error will

CVS4 Component Video Switch
K.I.S.S.™ (Continued)
be returned.
See: "Checksums and CRC-8's" for more information on both, and source code examples of
calculating both Checksums and CRC-8's as used by K.I.S.S.™.

Clearing the Command Buffer

All commands are buffered and nothing is executed until the <CR> character is received. To as-
sure that there are no extraneous characters in the command buffer, before a command string is
sent, the <ESC> character can be issued to clear the buffer and reset any checksum or CRC-8
checkcode calculations.
This is useful when communications with the Zektor device is being initialized and the state of
the device is unknown. An <ESC> will clear the command buffer and reset all checksums and
CRC-8 checkcodes.
For example:
dsLG.%df<ESC>V;145<CR>
will return the Version Query Response string for most Zektor devices. The "dsLG%df"
represents noise that could have been in the buffer before the command string was issued. The
<ESC> clears the buffer allowing the "V;145<CR>" to be processed error free.
It is legitimate to prefix all commands with the <ESC> character to assure the buffer is always
empty before the command string is received, which may be helpful in a very noisy environment.
The Response Strings
A response will always be returned whenever a <CR> is received. There are no conditions
where a "timeout" is a valid response to any query.
There are only three valid responses in the K.I.S.S.™ protocol, anything else should be consid-
ered a communication error, including a timeout while waiting for a response.
Each response is prefixed by a unique character. Determining which of the three responses is
received can be done simply, by examining only the first character of any response string.
The three possible prefix characters and their associated responses are
+
The Acknowledgement Response
!
The Error Response
=
The Query Response
The response to a command string will always be an Acknowledgement or an Error Response.
The Acknowledgement is always the string:
+<CR><LF>
CVS4 Component Video Switch
5

Advertisement

Table of Contents
loading

Table of Contents