
API frame format
XLR PRO Radio Frequency (RF) Modem User Guide
51
API operation with escape characters (AP parameter = 2)
When this API mode is enabled (AP = 2), the serial data frame structure is defined as follows:
Escape characters
When sending or receiving a serial data frame, specific data values must be escaped (flagged) so they do not interfere
with the data frame sequencing. To escape an interfering data byte, insert 0x7D and follow it with the byte to be
escaped XORed with 0x20.
The following data bytes need to be escaped:
•
0x7E – Frame Delimiter
•
0x7D – Escape
•
0x11 – XON
•
0x13 – XOFF
Example -
Raw serial data frame (before escaping interfering bytes):
0x7E 0x00 0x02 0x23 0x11 0xCB
0x11 needs to be escaped which results in the following frame:
0x7E 0x00 0x02 0x23 0x7D 0x31 0xCB
Note
In the above example, the length of the raw data (excluding the checksum) is 0x0002 and the checksum of the
non-escaped data (excluding frame delimiter and length) is calculated as:
0xFF - (0x23 + 0x11) = (0xFF - 0x34) = 0xCB.
Length
The length field is a two-byte value that specifies the number of bytes contained in the frame data field. It does not
include the checksum field.
Frame Data
The frame data field of the serial data frame forms an API-specific structure as follows:
Start Delimiter
(Byte 1)
Length
(Bytes 2-3)
Frame Data
(Bytes 4-n)
Checksum
(Byte n + 1)
0x7E
MSB
LSB
API-specific Structure
1 Byte
Characters Escaped If Needed
MSB = Most Significant Byte, LSB = Least Significant Byte
Length
(Bytes 2-3)
Checksum
(Byte n + 1)
MSB
LSB
1 Byte
Start Delimiter
(Byte 1)
0x7E
Frame Data
(Bytes 4-
n
)
API-specific Structure
Identifier-specific Data
cmdData
API Identifier
cmdID