Fork me on GitHub

一 概念
  iBeacon 是苹果公司2013年9月发布的移动设备用OS(iOS7)上配备的新功能。其工作方式是,配备有 低功耗蓝牙(BLE)通信功能的设备使用BLE技术向周围发送自己特有的ID,接收到该ID的应用软件会根据该ID采取一些行动。
比如,在店铺里设置iBeacon通信模块的话,便可让iPhone和iPad上运行一资讯告知服务器,或者由服务器向顾客发送折扣券及进店积分。此外,还可以在家电发生故障或停止工作时使用iBeacon向应用软件发送资讯。
 
二 协议格式
 
iBeacon广播帧的格式:
AD Field Length +Type+Company ID+Company ID+iBeacon Length+UUID+Major+Minor+TX Power
 
三 源码解析
 
 在8258sdk中可以选择ble_remote项目修改实现iBeacon
在对应的app.c里面修改tbl_advData[],将其修改为iBeacon的格式
tbl_advData[] = {
 /* Advertising data: Flags AD Type */
 0x02,
 0x01,
 0x06,
 /* Advertising data: manufacturer specific data */
 0x1a, //len
 0xFF, //manufacturer type
 0x4C,0x00, //
 0x02, // ID
 0x15, //Length of the remaining payload
 0xFD, 0xA5, 0x06, 0x93, 0xA4, 0xE2, 0x4F, 0xB1, //Location UUID
 0xAF, 0xCF, 0xC6, 0xEB, 0x07, 0x64, 0x78, 0x25,
 0xA8, 0x00,  // Major number
 0x00, 0x01,  // Minor number
 0xC8 //2's complement of the Tx power (-56dB)};
};
 
这里即是ibeacon的源码实现,可以根据需要广播的内容来进行修改。
 
四 总结备忘
ibeacon整体比较简单,这里比较难的一般是定时广播,并且能把功耗控制的比较低。这个是使用过程中的必备的技术热点。
posted on 2022-04-22 10:54  虚生  阅读(242)  评论(0编辑  收藏  举报