广播数据参考:
static uint8 iBeacon_advertData[] =
{
//ble相关内容,与ibeacon无直接关系
// discoverable mode (advertises indefinitely)
0x02, // length of this data
GAP_ADTYPE_FLAGS,
DEFAULT_DISCOVERABLE_MODE | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED,
//iBeacon相关内容
0x1A, // length of this data 26byte
GAP_ADTYPE_MANUFACTURER_SPECIFIC,
/*Apple Pre-Amble*/
0x4C, 0x00, //Apple company Id
0x02, 0x15, //For all proximity beacon,specify data type & remaining data length
/*Device UUID (16 Bytes)*/
0xE2, 0xC5, 0x6D, 0xB5, 0xDF, 0xFB, 0x48,0xD2, 0xB0, 0x60, 0xD0, 0xF5, 0xA7, 0x10, 0x96, 0xE0,
/*Major Value (2 Bytes)*/
0x00, 0x01,
/*Minor Value (2 Bytes)*/
0x00,0x02,
/*Measured Power*/
0xCD
};
- 上述源码有标注iBeacon相关内容,由于iBeacon不属于ble协议规范的内容,因此iBeacon相关协议数据放到了厂商自定义数据字段GAP_ADTYPE_MANUFACTURER_SPECIFIC中。
- Apple Pre-Amble
Apple公司ID;后面的数据类型和长度
- Device UUID
设备uuid,ble本身也是通过uuid来区分service的,但是这里的uuid不同于ble协议的uuid,而是苹果用来区分不同ibeacon设备的,可以自定义
- Major Value、Minor Value
主要值、次要之,如果使用uuid来代表一类设备,那么该类设备可通过Major Value、Minor Value来区分同一类设备的不同设备个体
- Measured Power
Measured Power代表ibeacon设备与接收器之间在1m处的接收信号强度RSSI。此参数需要针对第个设备进行测试写入,可将此参数用于测距应用。