BRP / ResponseFrame Protocol Frame
After receiving a command frame, the reader responds with 1 or more response frames, depending on the execution mode.
Response frames contain the requested response data or a status code, depending on the result of command execution.
Format
|
Name
|
Type/Size
|
Description
|
|
FormatFlags
|
Bit mask (8 bits)
|
Flags that enable optional fields in the response frame. These are the same flags as set in the command frame.
|
|
Failure
|
Boolean (bit 0x80)
|
Status of command execution. False represents status code OK (0x00).
True enables the StatusCode field with additional status information and disables the Payload field.
|
|
CriticialBootStatus
|
Boolean (bit 0x40)
|
True indicates a hardware problem. This can be any status returned by Sys.GetBootStatus
with bitmask 0x00FFFFFF.
|
|
CheckSumAlgo
|
Enumeration (bit mask area 0x30)
|
Checksum algorithm as specified in the command frame.
Values (4):
-
None (0x00)
-
BCC8 (0x01)
-
CRC16 (0x02)
-
BCC16 (0x03)
|
|
UncompressedLength
|
Boolean (bit 0x08)
|
Value as specified in command frame. If true, the space for the command code is increased from 8 to 16 bits by enabling
the optional LengthHigh field.
|
|
UncompressedCmdCode
|
Boolean (bit 0x04)
|
Value as specified in command frame. If true, the space for the command code is increased from 8 to 16 bits
by disabling the CompressedCmdCode field and enabling the CmdCode field.
|
|
Phase
|
Enumeration (bit mask area 0x03)
|
Confirms the end of a command loop in continuous or repeat mode.
This happens when the command is aborted or (in continuous mode) was executed successfully.
Values (3):
-
None (0x00)
-
RepeatEnd (0x01)
-
ContinuousEnd (0x02)
|
Optional field, condition:
UncompressedCmdCode
|
CmdCode
|
Integer (16 bits)
|
Command code as specified in command frame
|
|
Optional field, condition:
not UncompressedCmdCode
|
CompressedCmdCode
|
Bit mask (8 bits)
|
Command code as specified in command frame, compressed from 16 to 8 bits.
|
|
CmdCodeHigh
|
Integer (bit mask area 0xE0)
|
Lower 3 bits of 1st byte of uncompressed command code
|
|
CmdCodeLow
|
Integer (bit mask area 0x1F)
|
Lower 5 bits of 2nd byte of uncompressed command code
|
|
|
LengthLow
|
Integer (8 bits)
|
Length of payload.
If command execution has failed, this is the length of the StatusCode and set to 1
|
Optional field, condition:
UncompressedLength
|
LengthHigh
|
Integer (8 bits)
|
Length of payload. If this optional additional byte is used, it's transmitted LSB first (little endian)
|
|
Optional field, condition:
Failure
|
Optional field, condition:
not Failure
|
Payload
|
Raw data (length 0 Bytes)
|
Returned values for the command (see command reference page)
|
|
Optional field, condition:
CheckSumAlgo == CheckSumAlgo.BCC8
|
ShortCheckSum
|
Integer (8 bits)
|
Checksum if BCC-8 is used
|
|
Optional field, condition:
(CheckSumAlgo == CheckSumAlgo.BCC16) or (CheckSumAlgo == CheckSumAlgo.CRC16)
|
LongCheckSum
|
Integer (16 bits)
|
Checksum if BCC-16 or CRC-16 is used
|
|