蓝牙碰一碰广播与蓝牙靠近发现广播的AD Structure2结构大致类似,主要区别在于Huawei Spec Data中的Business字段之后:蓝牙靠近发现定义了多个TV/TLV字段,而蓝牙碰一碰定义了一个TypeList以及一组Value信息。广播字段说明详见广播包结构(拉起FA)。 图6 蓝牙碰一碰广播的AD Structure2结构 广播...
有效数据部分:包含若干个广播数据单元,称为 AD Structure。如图中所示,AD Structure 的组成是:第一个字节是长度值 Len,表示接下来的 Len 个字节是数据部分。数据部分的第一个字节表示数据的类型 AD Type,剩下的 Len - 1 个字节是真正的数据 AD data。其中 AD type 非常关键,决定了 AD Data 的数据代表的是...
数据的类型 AD Type,剩下的 Len - 1 个字节是真正的数据 AD data。其中 AD type 非常关键,决 定了AD Data 的数据代表的是什么和怎么解析 无效数据部分:因为广播包的长度必须是 62 个 byte,如果有效数据部分不到 62 自己,剩下的就 用0 补全。这部分的数据是无效的,解释的时候,忽略即可。 AD type分类 F...
这样就共有 6 种 AD Type。 非完整的 16 bit UUID 列表: TYPE = 0x02; 完整的 16 bit UUID 列表: TYPE = 0x03; 非完整的 32 bit UUID 列表: TYPE = 0x04; 完整的 32 bit UUID 列表: TYPE = 0x05; 非完整的 128 bit UUID 列表: TYPE = 0x06; 完整的 128 bit UUID 列表: TYPE = 0x07...
#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_16BIT 0x14 /**< List of 16-bit Service Solicitation UUIDs. */ #define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_128BIT 0x15 /**< List of 128-bit Service Solicitation UUIDs. */
/*! service UUID list */ 9, /*! length */ DM_ADV_TYPE_16_UUID, /*! AD type */ UINT16_TO_BYTES(ATT_UUID_HEART_RATE_SERVICE), UINT16_TO_BYTES(ATT_UUID_RUNNING_SPEED_SERVICE), UINT16_TO_BYTES(ATT_UUID_DEVICE_INFO_SERVICE), ...
可以看到广播数据里面包含多个AD Structure。每个AD Structure分为两个部分:数据段长度(1字节)+数据段(N字节)。数据段又分为头1个字节的AD Type标识类型和剩余的AD Data具体数据。 注意看最后的Non-significant part,有时候在安卓的回调里面会在byte数组的最后看到一堆的0x0,这个实际上也是定义在协议里面正常的无...
// GAP_ADTYPE_DEFINES GAP Advertisement Data Types #defineGAP_ADTYPE_FLAGS 0x01 //!< Discovery Mode: @refGAP_ADTYPE_FLAGS_MODES #defineGAP_ADTYPE_16BIT_MORE 0x02 //!< Service: More 16-bit UUIDs available #defineGAP_ADTYPE_16BIT_COMPLETE 0x03 //!< Service: Complete list of 16-bit...
各个AD Type的值在QN9020 SDK里也可以看到: /// GAP Advertising Flags enum { /// Flag GAP_AD_TYPE_FLAGS = 0x01, /// Use of more than 16 bits UUID GAP_AD_TYPE_MORE_16_BIT_UUID, /// Complete list of 16 bit UUID GAP_AD_TYPE_COMPLETE_LIST_16_BIT_UUID, ...
1#defineBLE_GAP_AD_TYPE_FLAGS 0x01 /**< Flags for discoverability. */2#defineBLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_MORE_AVAILABLE 0x02 /**< Partial list of 16 bit service UUIDs. */3#defineBLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_COMPLETE 0x03 /**< Complete list of 16 bit service UUID...