首先要先了解iBecaon。iBecaon是苹果基于BLE广播的一个技术规范;只要设备生产商符合特定标准,就可以要求苹果授权它们在其设备上使用“iBeacon” 商标。 在设备生产商签署保密协议之后,就能获得iBeacon授权使用规范。

先看一下IBecaon的特点:

1、无需配对,只需在BLE的信道中对外广播即可

2、无需打开APP,只需要设备周期对外广播特定的广播包即可。

接下来对广播的报文格式进行解析:

AD Field Length Type Company  ID iBeacon Type iBeacon Length UUID Major Minor TX Power

AD Field Length代表这个广播包有用信息的长度

Type 代表广播类型

Company ID 代表厂商数据字段的数据域前2字节为公司识别码

iBeacon Type 写为0x02代表为ibeacon的广播类型

iBeacon Length 代表 字节长度

UUID 指明拥有该becaon设备的机构

Major 和 Minor 主次字段用来编码位置信息,通常主字段指明某个建筑,而次字段指明在这栋建筑中的特定位置。例如“伦敦中心商场,运动产品区”

Tx Power 发送功率,帮助应用进行距离估算。

更多ibecaon详情可见:Getting Started with iBeacon (apple.com)

实现代码格式可根据:

  26,           /* length of manufacture data */
0xff, /* adv type of manufacture data */
0x4c,0x00, /* apple inc 0x004c*/
0x02, /* apple type beacon 0x02*/
0x15, /* length 21*/
此处是16bit的uuid/* uuid */
0x88,0xab, /* major 34987*/
0x04,0x12, /* minor 1042*/
0xcd /* rssi at 1m -51dbm*/

仅是个人学习分享;如有任何错漏敬请留言指正。

CH57x/CH58x/CH59x iBecaon广播的更多相关文章

  1. CH573 CH579 CH582程序烧录讲解

    WCH的蓝牙芯片CH57x/CH58x系类大部分是支持串口烧录.USB烧录和LINK烧录的,除了一些特殊的封装,如571K,它引脚较少,只支持串口免按键烧录. 仿真下载:ARM内核的CH579支持Jl ...

  2. CH58X/CH57X/V208的Broadcaster(广播者)例程讲解

    在对ble进行应用的时候,每个用户的需求可能不尽相同.这里着重介绍从机Broadcaster例程,只广播不连接. 使用该例程时可以在手机使用APP上对Broadcaster进行调试. 安卓端在应用市场 ...

  3. CH58X/CH57X/V208 Observer(观察者)例程讨论讲解

    使用的是沁恒的CH582M的Observer例程与官方的demo板. 本例程的功能是主机扫描到从机的MAC地址并打印出来. 先对宏定义进行理解讨论. 最大响应扫描数为8,在串口调试助手那里可以看到打印 ...

  4. Android开发学习—— Broadcast广播接收者

    现实中:电台要发布消息,通过广播把消息广播出去,使用收音机,就可以收听广播,得知这条消息.Android中:系统在运行过程中,会产生许多事件,那么某些事件产生时,比如:电量改变.收发短信.拨打电话.屏 ...

  5. Xamarin.Android广播接收器与绑定服务

    一.前言 学习了前面的活动与服务后,你会发现服务对于活动而言似乎就是透明的,相反活动对于服务也是透明的,所以我们还需要一中机制能够将服务和活动之间架起一座桥梁,通过本节的学习,你将会学到广播与绑定服务 ...

  6. 2、利用蓝牙定位及姿态识别实现一个智能篮球场套件(二)——CC2540/CC2541基于广播的RSSI获得

    CC2541一拖多例程中RSSI获得是通过一个事件回调函数实现的,前提是需要连接上蓝牙设备. 这个对于多点定位来说是不可行的,由于主机搜索蓝牙设备过程中也能获得当前蓝牙设备的RSSI等信息,因此可基于 ...

  7. 利用Docker技术实现UDP广播效果(网络编程python版)

    docker的安装见官方文档 我使用的系统为Ubuntu16.04 Ubuntu系统安装docker文档地址:https://docs.docker.com/engine/installation/l ...

  8. 【Win 10 应用开发】UDP广播

    我们知道,对于UDP协议的通信,除了可以用来聊天外,可以发送广播数据.只要向广播地址的某个端口发送数据就可以进行广播,子网中只要监听该端口的socket就能收到广播消息. 最简单的方法就是向255.2 ...

  9. android Broadcast广播消息代码实现

    我用的是Fragment , 发送写在一个类中,接收写在另外一个类的内部类中.代码动态实现注册. 代码: myReceiver = new zcd.netanything.MyCar.myReceiv ...

  10. Android广播接收器BroadcastRceiver

    一.使用BroadcastRceiver 1.创建BroadcastRceiver(MyRceiver),重写OnReceiver: public void onReceive(Context con ...

随机推荐

  1. babel7 的配置加载逻辑

    babel.config.js 是对整个项目(父子package) 都生效的配置,但要注意babel的执行工作目录. .babelrc 是对 待编译文件 生效的配置,子package若想加载.babe ...

  2. Liunx常用操作(九)-进阶命令

    一.查看用户who 1.查看所有用户:who

  3. Java标签在循环中的使用

    定义 标签,类似--label1: 放在循环外部,用于内部多重循环语句的跳出 例子 public static void main(String[] args) { Scanner sc = new ...

  4. 问题--去除CSDN水印

    1.问题如上 有时候需要使用其中的图片,但是水印很让人烦恼 确实可以用PS中的修复画笔工具,修复工具等进行处理 但是当水印覆盖到字体时,就会破坏到原有字体 2.解决方式 从CSDN添加水印的方式入手 ...

  5. [转帖]oracle导出千万级数据为csv格式

    当数据量小时(20万行内),plsqldev.sqlplus的spool都能比较方便进行csv导出,但是当数据量到百万千万级,这两个方法非常慢而且可能中途客户端就崩溃,需要使用其他方法. 一. sql ...

  6. [转帖]经典的 Fork 炸弹解析

    https://linux.cn/article-5685-1.html Jaromil 在 2002 年设计了最为精简的一个 Linux Fork 炸弹,整行代码只有 13 个字符(包括空格在内,空 ...

  7. [转帖]Java 容器化的历史坑(史坑) - 资源限制篇

    原文:https://blog.mygraphql.com/zh/posts/cloud/containerize/java-containerize/java-containerize-resour ...

  8. [转帖]Linux之/etc/fstab文件讲解

    https://www.cnblogs.com/FengGeBlog/p/10178824.html /etc/fstab是用来存放文件系统的静态信息的文件.位于/etc/目录下,可以用命令less ...

  9. Inspur CS5280H BMC重装系统的过程

    Inspur CS5280H BMC重装系统的过程 背景 公司里面一台信创海光的设备 默认安装了银河麒麟v10的操作系统 但是在进行瀚高数据库压测时 总会出现无缘无故的宕机的情况. 昨天还特别学习了下 ...

  10. [转帖]Redis命令详解:Keys

    https://jackeyzhe.github.io/2018/09/22/Redis%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3%EF%BC%9AKeys/ 介绍完Re ...