0xBD - backchannel data

This MAC header can be only sent by the anchor. It's used in data messages during backchannel transactions.

Structure of BD MAC header:

typedef struct __attribute__((packed, aligned(1))){
     uint8_t fcode;
     uint8_t MAC_addr[MAC_ADDR_BYTE_SIZE];
     uint8_t seqNum;
     uint8_t BC_version;
     uint8_t BC_ack_num[BC_ACK_NUM_SIZE];
     uint8_t BC_options;
}mac_header_bd_t;

field

description

length

fcode

MAC header type identifier - 0xBC - Backchannel poll message

1B

MAC_addr

MAC address of the tag

6B

seqNum

The sequence number of the blink.

1B

BC_version

The version of backchannel protocol

1B

BC_ack_num

BC transaction number - this number is generated by the server for every BC transaction.

5B

BC_options

Options that determine if the tag should send immediate ACK, and how many ACK tags should send after the successful reception of the BD message.

Lowes bite - if 1 - immediate ack should be sent after receiving this BD message.

Bite 4:1 - number of ACK, that should be sent by tag after successful reception of this BD message. <0;15>

Other bites are unused.

1B