background image

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

27

K.I.S.S.™

 

 Keep It Simple Serial

Response String Checksums and CRC-8 Checkcodes (Continued)

Notice that in the first example a checksum was not appended to the “LI?” command. When issuing a com-
mand 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 or 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 operational 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 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 controller to poll, using a single command, 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 Acknowledge-
ment 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 3,2,80<CR><LF>

Received: Query Response

In the Master / Slave mode, the Acknowledgement or Error Response will always be the next response string 
after a command is issued, and a Query Response will always follow an Acknowledgement Response.

The Asynchronous Mode of Operation

In the Asynchronous mode the device sends a Query Response string anytime there is a state change. For 
instance when an input is changed by the user by pressing a button on the front panel, or using a remote con-
trol, or by the IR jack, or even if a serial command has been issued, a Query Response string indicating an 
input change will be sent to the controller.

The advantage if this mode is the controller can be kept constantly in sync with the device without having to 
send periodic polling commands. This disadvantages are: The controller must be able to receive the Query 
Response strings in the background at unspecified times, and the communications flow is slightly more compli-
cated.

Содержание 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...

Отзывы: