iOS 蓝牙初步
2017-04-11 本文已影响66人
翻滚的炒勺2013
GATT Profile (Generic Attribute Profile)
GATT配置文件是一个通用规范,用于在BLE链路上发送和接收被称为“属性”(Attribute)的数据块。目前所有的BLE应用都基于GATT。
(1) 定义两个 BLE 设备通过叫做 Service 和 Characteristic 的东西进行通信。中心设备和外设需要双向通信的话,唯一的方式就是建立 GATT 连接。
(2) GATT 连接是独占的。基于 GATT 连接的方式的,只能是一个外设连接一个中心设备。
(3) 配置文件是设备如何在特定的应用程序中工作的规格说明,一个设备可以实现多个配置文件。
GAP(Generic Access Profile)
用来控制设备连接和广播。GAP 使你的设备被其他设备可见,并决定了你的设备是否可以或者怎样与合同设备进行交互。
(1) GATT 连接,必需先经过 GAP 协议。
(2) GAP 给设备定义了若干角色,主要两个:外围设备(Peripheral)和中心设备(Central)。
(3) 在 GAP 中外围设备通过两种方式向外广播数据: Advertising Data Payload(广播数据)和 Scan Response Data Payload(扫描回复)。
Profile
Profile 并不是实际存在于 BLE 外设上的,它只是一个被 Bluetooth SIG(一个以制定蓝牙规范,以推动蓝牙技术为宗旨的跨国组织) 或者外设设计者预先定义的 Service 的集合。
Service
Service 是把数据分成一个个的独立逻辑项,它包含一个或者多个 Characteristic。每个 Service 有一个 UUID 唯一标识。 UUID 有 16 bit 的,或者 128 bit 的。16 bit 的 UUID 是官方通过认证的,需要花钱购买,128 bit 是自定义的,可以自己设置。
Characteristic
GATT 事务中的最低界别,Characteristic 是最小的逻辑数据单元
* 当然它可能包含一个组关联的数据,例如加速度计的 X/Y/Z 三轴值。
* 与 Service 类似,每个 Characteristic 用 16 bit 或者 128 bit 的 UUID 唯一标识。
MFI
make for ipad ,iphone, itouch 专们为苹果设备制作的设备。
开发使用ExternalAccessory 框架。
BLE
bluetooth low energy,蓝牙4.0设备因为低耗电,所以也叫做BLE。
iOS开发使用CoreBluetooth 框架。
CoreBluetooth框架
核心:peripheral和central, 可以理解成外设和中心。
业务场景
(1)中心模式 : 以app作为中心,连接其他的外设。
中心模式流程
1. 建立中心角色
2. 扫描外设(discover)
3. 连接外设(connect)
4. 扫描外设中的服务和特征(discover)
4.1 获取外设的services
4.2 获取外设的Characteristics,获取Characteristics的值,获取Characteristics的Descriptor和Descriptor的值
5. 与外设做数据交互(explore and interact)
6. 订阅Characteristic的通知
7. 断开连接(disconnect)
(2)外设模式 : 使用手机作为外设别其他中心设备操作。
1. 启动一个Peripheral管理对象
2. 本地Peripheral设置服务,特性,描述,权限等等
3. Peripheral发送广告
4. 设置处理订阅、取消订阅、读characteristic、写characteristic的委托方法