iOS开发——CoreBluetooth蓝牙开发(二)

前面一讲iOS开发——CoreBluetooth蓝牙开发(一)中,我们已经知道了Core BlueTooth的两个重要角色CentralPeripheral。这一讲我们来进一步地、更加具体地来探讨这两个角色之间是如何进行通信的,包括数据组成和数据结构等内容。

Peripheral的数据结构

在研究某个协议的时候,了解通信所使用的数据结构十分重要。Peripheral往往都会有一到几个Service(服务)来提供连接信号强度的信息。这里所说的服务是为完成设备某项功能的一系列数据集合或相关行为。例如,心率仪的一项服务就是将心率传感器的数据曝露出来。

Service本身又是由Characteristics或者是其他Service嵌套构成,其他Service一般用引用来表示。例如,一个心率仪Service的可能结构如下图所示。其中一个Characteristic用来记录心率值,另外一个用来记录感应器的位置信息。

这里写图片描述

一旦Central和Peripheral建立了连接,它就能发现所有该Peripheral提供的所有Service和Characteristic(广播数据可能只包含Service中的一部分)。Central就是通过读写这些Service中的Characteristic来实现与Peripheral的交互的,例如你的苹果设备可以从温度计那里读取到当前室内的温度,也可以像温度计写入一个温度值来控制当前室内温度。

Central、Peripheral & Peripheral数据的代码表示形式

说了这么多,最终还是要回归代码,还是要知道该怎么运用苹果提供的Core BlueTooth Framework来实现自己的蓝牙App,下面我们就来看看上面的这些概念是如何映射到该框架中去的。

开发Central设备应用

如果你要和Peripheral设备进行通信并完成某项任务的话,需要从Central角度出发去开发。

通过CBCentralManager&CBPeripheral表示Central设备和Peripheral设备

在Core BlueTooth框架中,以CBCentralManager对象表示Central设备,该对象可以管理发现到或者连接到的Peripheral(以CBPeripheral表示)。

这里写图片描述

通过CBService & CBCharacteristic表示Peripheral数据

当你试图和Peripheral进行交互时,其实就是在和Peripheral提供的Service以及Characteristic交互。顾名思义,CBService和CBCharacteristic就是Core BlueTooth框架中用来描述这两个数据结构的对象。CBPeripheral、CBService、CBCharacteristic是一种从上至下的聚合树形结构。

这里写图片描述

开发Peripheral服务

如果你是要将iPhone或者MacBook作为一个Peripheral的话,你需要从Peripheral角度出发来进行编程。

通过CBPeripheralManager & CBCentral表示Peripheral设备和Central设备

CBPeripheralManager用来管理Peripheral的Service&Characteristic数据库中发布的Service,同时负责将这些服务传递给CBCentral。

通过CBMutableService & CBMutableCharacteristic表示本地Pheripheral数据

和前面所说的类似,这里不再赘述。

下节我们将正式开始讲解如何利用CoreBluetooth框架在代码中实现蓝牙通信。
(未完待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值