background image

MAS7.1 Supplemental Guide, Rev 1.1, 9/28/07

25

K.I.S.S.™

 

 Keep It Simple Serial

Using Command Checksums and CRC-8 Checkcodes (Continued)

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 up to and 
including the ‘:’ character.

Optional spaces are allowed before the ‘;’ and ‘:’ characters but NOT after them. The checksum must immedi-
ately 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 be returned.

See: 

Checksums and CRC-8 Checkcodes

” on page 28

 for more information on calculating checksums and 

CRC-8 checkcodes, it includes 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 assure 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. 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 (though seldom nessassary) to prefix all commands with the <ESC> character to assure the buf-
fer is always empty before the command string is received, which may be helpful in some very noisy environ-
ments.

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 considered a commu-
nication 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.

Содержание MAS7.1

Страница 1: ...Home Theater Solutions RS 232 Serial Protocol Reference MAS7 1...

Страница 2: ...t Learnable IR Code 14 LI Front Panel Light Intensities and Mode 14 MCS Multi Channel Split 15 MZ Mute 16 P Power Control 16 PSM Primary Secondary Mapping 16 Q Query Status 17 QZ Query for Zone Inform...

Страница 3: ...cable The MAS7 1 can also be used with any USB to RS 232 conversion cable these are all typically straight through cables Be sure to install any drivers that come with the USB to RS 232 cable you are...

Страница 4: ...modes if you send a command and don t get a response in 100ms something s wrong with the connection There are three different types of responses Acknowledgements Errors and Query Strings The Acknowled...

Страница 5: ...e when the power is tog gled See Master Slave and Asynchronous Modes of Operation on page 27 Checksums and CRC8 s You can optionally append a checksum or a CRC8 checkcode to the end of any serial comm...

Страница 6: ...these commands a Zektor universal driver can be more easily written Table of MAS7 1 Commands U Command Description Comments x P p Power control p power state 0 off 1 on toggle x SZ 1 n Set zone to in...

Страница 7: ...A number between 1 and 3 indicating which primary button you re pressing If the Sync LED is lit the both the primary and secondary LEDs will change if it is not lit only the primary LEDs will change...

Страница 8: ...S7 1 for its current state use the as the only parameter and the MAS7 1 will respond with a followed by the command with the current settings as parameters To read the power on state of the MAS7 1 P C...

Страница 9: ...ror 5 Too many or too few parameters 6 Device busy cannot process command 7 Buffer overflow And some more detailed descriptions of their meanings Error 1 The command given was not recognized as a MAS7...

Страница 10: ...ry tight control over the MAS7 1 By disabling the front panel see XS Control Settings on page 21 and by then processing the front panel button presses of the MAS7 1 the user can redefine the operation...

Страница 11: ...ut it will be ignored if the MAS7 1 is not in a setup mode By issuing 0 codes the MAS7 1 can be returned to a known state regardless of any possible setup state it might be in The 0 button code is als...

Страница 12: ...o prefix is used all channels will be set to the given delay The nn is a variable and indicates the delay time in milliseconds Not all parameters have to be present and they do not have to appear in a...

Страница 13: ...for every IR code detected by the front panel IR sensor or IR jack if enabled regardless as to whether the IR code detected was used to control the MAS7 1 The uses for this command are two fold 1 The...

Страница 14: ...that the MAS7 1 is able to learn they are IRCmd Description 1 Toggle Power 2 Select Input 1 3 Select Input 2 4 Select Input 3 5 Select Input S1 6 Select Input S2 7 Select Input S3 8 Toggle SYNC 9 Dis...

Страница 15: ...L Left stereo audio connector R Right stereo audio connector This command uses a bitmapped parameter See Using Bitmapped Parameters on page 24 Each bit represents the mapping for one connector as def...

Страница 16: ...hich channel is being muted If no pre fix is used all channels will be affected The m is a variable and indicates the mute setting 0 Not muted 1 Muted Not all parameters have to be present and they do...

Страница 17: ...EEPROM would be PSM 6 If the settings are changed but the suffix is not used the new settings will not be restored after a power fail ure The suffix is used to backup the new settings in EEPROM which...

Страница 18: ...s breakaway_opt_x A variable number of breakaway options This command is used to determine the number of inputs zones and the different breakaway options available to a device Its response string is s...

Страница 19: ...OM To save the new LI settings you can issue the LI command with just a LI Or you can use the SS command to save all unsaved data which will include the LI setting SS 2 The SS command is also used to...

Страница 20: ...return SZ 1 M2 A3 D1 H2 V Version Query Query for the current firmware version of the MAS7 1 V Request version string V Request version string Response String V MAS7 1 firmware_ver firmware_serial_num...

Страница 21: ...anged FPC 1 Front panel settings have changed PSM 1 Primary secondary mappings have changed This command uses a bitmapped parameter see Using Bitmapped Parameters on page 24 The parameter is a Backup...

Страница 22: ...trol Settings will also backup the Transmit Enable Settings see XE Transmit Enable Settings on page 20 The IR control IRE and the IR jack IRS work differently when disabled Disabling IR control by set...

Страница 23: ...erpreted as P 1 When a command has more than one parameter the parameters are separated by either whitespace s or a comma or both whitespace s and a comma for instance LI 3 3 80 CR or LI 3 3 80 CR wil...

Страница 24: ...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 bit mapped parameter with a...

Страница 25: ...e 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...

Страница 26: ...er to use a single rou tine 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...

Страница 27: ...here is a Query Status command available to the control ler that return the status state of the device as a bitmap of flags indicating which states have changed and need querying This allows the contr...

Страница 28: ...ceived One approach would be to write a Get Response routine that handles all Query Response internally by looking for the character and only passing through non query responses By using such a routin...

Страница 29: ...nding more and different types of errors than a checksum can A good description of its capability is described in the above referenced articles but a simple example show some of the differences Here s...

Страница 30: ...calculated checksum appended to it You can download this source code at http www zektor com downloads ckstst c include stdio h int main void char TestString LI 3 2 80 unsigned char cksum int index ch...

Страница 31: ...e bits of the polynomial are reversed from the polynomial s order This allows us to read in each bit starting with bit 0 of each byte instead of bit 7 This is done because the UART sends its LSB first...

Страница 32: ...ng LI 3 2 80 unsigned char crc8 int index char token crc8 CRC8_INIT initialize checkcode CRC8 all of TestString index 0 while TestString index 0 crcByte crc8 TestString index Add the CRC 8 token chara...

Отзывы: