Specifications

Sheet 6 of 39 Document 12245 Rev. I
1.5 Message Data
The actual content of the message starts with the least significant 6 bits of Byte 4, and can be of any length
up to 250 bytes (including Byte 4). An optional End Body byte may be placed in the message footer (at the
end of the Message Data), in which case the maximum length of the message data is 249 bytes.
The optional End Body byte is used for compatibility with earlier protocols, in which the End Body byte was
required if the message data contained more bytes than byte 4. Units determine whether to send this byte as
follows:
1. A setting in the unit will determine whether replies should contain an End Body byte. Units will be
shipped from the factory defaulting to use the End Body byte.
2. If the unit receives a message with more bytes in the message data than byte 4, but not containing an
End Body byte, the setting will be changed to NOT use the End Body byte in replies.
3. If the unit receives a message WITH an End Body byte, the setting will be changed to use the End
Body byte in replies.
Units will always accept correctly formatted messages with or without the End Body byte.
The least significant six bits of byte 4 are not allowed to be equal to 02, 03, or 3F and no value in the
message data can be equal to 02 or 03. See section 1.7.1, Rejected Messages.
The least significant six bits of Byte 4 are normally an instruction code.
1.6 Checksum
The checksum is the arithmetic sum of all the bytes starting with the address, and ending with the byte
preceding the checksum. The sum is truncated to the least significant byte.
The checksum is the second to last byte of a message frame.
1.7 Message Handling
1.7.1 Rejected Messages
Messages will be rejected if any of the following are true:
1. The message does not start with an STX (02).
2. A communications (framing) error occurs on any byte.
3. The message COUNT (nn) is less than 6.
4. The last byte of the message, as determined by the COUNT is not an ETX (03).
5. The message ADDRESS does not match the unit’s address, and is not 00.
6. The fourth byte of the message contains a 1 in the most significant bit.
7. The low six bits of the fourth byte are equal to 3F.
8. A byte equal to 02 or 03 is received anywhere in the MESSAGE DATA.
9. The message checksum (CHKSUM) is not equal to the low byte of the arithmetic sum of bytes 3
(ADDRESS) through nn-2 (where nn is the COUNT).
10. The receive buffer has become full, causing the unit to miss bytes of the message.
If a message is rejected because of any of these conditions, no ACK response will be returned, if requested
in Byte 4 of the message. (As mentioned previously, an ACK response will also not be sent if the global
address (00) is used, and the unit address is not set to 00.) AS SOON AS one of the listed problems is
detected the unit will immediately begin watching the data stream for the next STX (02) byte.