ibeacon广播数据简析

一、实验目的:

  • 分析基于ble的ibeacon协议广播数据含义

二、实验环境:

  • 本文涉及的广播数据以TI ble芯片cc2xxx为例分析

三、广播数据:

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,
  0x02,
  0x15,
  /*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
};

  • 1、上述源码有标注iBeacon相关内容,由于iBeacon不属于ble协议规范的内容,因此iBeacon相关协议数据放到了厂商自定义数据字段GAP_ADTYPE_MANUFACTURER_SPECIFIC中
  • 2、Apple Pre-Amble
    • 该项内容个人理解为苹果ibeacon协议的标识,通过该字段来判定是否为ibeacon协议,如有错误,欢迎指正
  • 3、Device UUID
    • 设备uuid,ble本身也是通过uuid来区分service的,但是这里的uuid不同于ble协议的uuid,而是苹果用来区分不同ibeacon设备的,可以自定义
  • 4、Major Value、Minor Value
    • 主要值、次要之,如果使用uuid来代表一类设备,那么该类设备可通过Major Value、Minor Value来区分同一类设备的不同设备个体
  • 5、Measured Power
    • Measured Power代表ibeacon基站的发射功率,发射功率和rssi息息相关,因此该字段需要参数距离的计算

总结:

  • 通过广播数据中的Apple Pre-Amble字段来判断是不是ibeacon设备
  • 通过Device UUID、Major Value和Minor Value来确定某一个ibeacon基站
  • Measured Power是唯一需要参与计算的数据
  • 根据多个基站的原始位置信息,以及当前位置距离个基站的距离,可以得到一个当前的位置信息
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路人 假

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值