BRP / CommandFrame Protocol Frame
A command frame is sent by the host to initiate communication with the reader and invoke a command.
Format
|
Name
|
Type/Size
|
Description
|
|
FormatFlags
|
Bit mask (8 bits)
|
Flags that enable optional fields in the command frame. These fields will then also be enabled in the response frame.
|
|
RFU
|
Integer (bit mask area 0xC0)
|
Zero padding
|
|
CheckSumAlgo
|
Enumeration (bit mask area 0x30)
|
Creates a checksum using 1 of the available algorithms.
Please use checksums only for unsecured connections, i.e. connections via RS-232/UART.
For security reasons, we highly recommend CRC-16.
Values (4):
-
None (0x00)
-
BCC8 (0x01)
-
CRC16 (0x02)
-
BCC16 (0x03)
|
|
UncompressedLength
|
Boolean (bit 0x08)
|
Increases the space for payload length information from 8 to 16 bits by enabling the optional LengthHigh field.
We recommend you always set this bit and use uncompressed length.
|
|
UncompressedCmdCode
|
Boolean (bit 0x04)
|
Increases the space for the command code from 8 to 16 bits by disabling the CompressedCmdCode field and enabling the CmdCode field.
We recommend you always set this bit and use uncompressed command code.
|
|
ExecutionMode
|
Enumeration (bit mask area 0x03)
|
Defines the execution mode
Values (3):
-
Standard (0x00)
-
Repeat (0x01)
-
Continuous (0x02)
|
Optional field, condition:
UncompressedCmdCode
|
CmdCode
|
Integer (16 bits)
|
Command code (see command reference page)
|
|
Optional field, condition:
not UncompressedCmdCode
|
CompressedCmdCode
|
Bit mask (8 bits)
|
Command code (see command reference page), 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 data
|
Optional field, condition:
UncompressedLength
|
LengthHigh
|
Integer (8 bits)
|
Length of payload data. If this optional additional byte is used, it's transmitted LSB first (little endian).
|
|
|
Payload
|
Raw data (length 0 Bytes)
|
Parameters for the command (see command reference page) Length is LengthLow + LengthHigh*256
|
Optional field, condition:
CheckSumAlgo == CheckSumAlgo.BCC8
|
ShortCheckSum
|
Integer (8 bits)
|
Checksum if BCC-8 algorithm is used
|
|
Optional field, condition:
(CheckSumAlgo == CheckSumAlgo.BCC16) or (CheckSumAlgo == CheckSumAlgo.CRC16)
|
LongCheckSum
|
Integer (16 bits)
|
Checksum if BCC-16 or CRC-16 algorithm is used
|
|