KB: Bluetooth Low Energy Advertising & Scan Response Data and Flags Supported on RSL10


[RSL10 - Knowledge Base]


Question

The Bluetooth Low Energy stack implementation on the RSL10 offers the ability to pack the Advertising Packet and Scan Response Packet with a variety of information that can be provided to, and used by, a device which is scanning for an Advertising Peripheral.

What are the Advertising & Scan Response Flags that can be used on the RSL10, and what Data does each Flag expect to be provided within the packets?


Recommendation

The Bluetooth Low Energy stack on the RSL10 provides an easy method to create and pack the data that will be sent out in the Advertising & Scan Response Packets through the use of a GAPM_AddAdvData() function. The Stack will automatically allocate the first 3 bytes of both packets as the “Flags Section” and will automatically update the Flags as the specific data is passed into the stack. That is, if you add the Local Device Name to the Advertising or Scan Response packets using the GAP_AD_TYPE_COMPLETE_NAME or GAP_AD_TYPE_SHORTENED_NAME parameters, the Flags indicating that this information is present in the packet will automatically be set. A list of these Flag Parameters is provided below:

Available Flags

GAP_AD_TYPE_MORE_16_BIT_UUID           = 0x02    /*Use of More Than 16 Bit UUID*/ 
GAP_AD_TYPE_COMPLETE_LIST_16_BIT_UUID  = 0x03    /*Complete List of 16 Bit UUID*/
GAP_AD_TYPE_MORE_32_BIT_UUID           = 0x04    /*Use of More Than 32 Bit UUD*/
GAP_AD_TYPE_COMPLETE_LIST_32_BIT_UUID  = 0x05    /*Complete List of 32 Bit UUID*/
GAP_AD_TYPE_MORE_128_BIT_UUID          = 0x06    /*Use of More Than 128 Bit UUID*/
GAP_AD_TYPE_COMPLETE_LIST_128_BIT_UUID = 0x07    /*Complete List of 128 Bit UUID*/
GAP_AD_TYPE_SHORTENED_NAME             = 0x08    /*Shortened Device Name*/
GAP_AD_TYPE_COMPLETE_NAME              = 0x09    /*Complete Device Name*/
GAP_AD_TYPE_TRANSMIT_POWER             = 0x0A    /*Transmit Power*/
GAP_AD_TYPE_CLASS_OF_DEVICE            = 0x0D    /*Class of Device*/
GAP_AD_TYPE_SP_HASH_C                  = 0x0E    /*Simple Pairing Hash C*/
GAP_AD_TYPE_SP_RANDOMIZER_R            = 0x0F    /*Simple Pairing Randomizer*/
GAP_AD_TYPE_TK_VALUE                   = 0x10    /*Temporary Key Value*/
GAP_AD_TYPE_OOB_FLAGS                  = 0x11    /*Out of Band Flag*/
GAP_AD_TYPE_SLAVE_CONN_INT_RANGE       = 0x12    /*Peripheral connection interval range*/
GAP_AD_TYPE_RQRD_16_BIT_SVC_UUID       = 0x14    /*Require 16 bit service UUID*/
GAP_AD_TYPE_RQRD_32_BIT_SVC_UUID       = 0x1F    /*Require 32 bit service UUID*/
GAP_AD_TYPE_RQRD_128_BIT_SVC_UUID      = 0x15    /*Require 128 bit service UUID*/
GAP_AD_TYPE_SERVICE_16_BIT_DATA        = 0x16    /*Service data 16-bit UUID*/
GAP_AD_TYPE_SERVICE_32_BIT_DATA        = 0x20    /*Service data 32-bit UUID*/
GAP_AD_TYPE_SERVICE_128_BIT_DATA       = 0x21    /*Service data 128-bit UUID*/
GAP_AD_TYPE_PUB_TGT_ADDR               = 0x17    /*Public Target Address*/
GAP_AD_TYPE_RAND_TGT_ADDR              = 0x18    /*Random Target Address*/
GAP_AD_TYPE_APPEARANCE                 = 0x19    /*Appearance*/
GAP_AD_TYPE_ADV_INTV                   = 0x1A    /*Advertising Interval*/
GAP_AD_TYPE_LE_BT_ADDR                 = 0x1B    /*LE Bluetooth Device Address*/
GAP_AD_TYPE_LE_ROLE                    = 0x1C    /*LE Role*/
GAP_AD_TYPE_SPAIR_HASH                 = 0x1D    /*Simple Pairing Hash C-256*/
GAP_AD_TYPE_SPAIR_RAND                 = 0x1E    /*Simple Pairing Randomizer R-256*/
GAP_AD_TYPE_3D_INFO                    = 0x3D    /*3D Information Data*/
GAP_AD_TYPE_MANU_SPECIFIC_DATA         = 0xFF    /*Manufacturer specific data*/