Core Bluetooth库编程指南官方文档翻译1-2

Core Bluetooth概述

这个Core Bluetooth框架让你的IOS 和 Mac 应用程序与蓝牙低功耗设备交互。例如,你的应用程序能够发现,探索,和与低功耗外围设备交互,比如心率监测器,数字恒温控制器,甚至其他的iOS 设备。
这个框架是为了使用低功耗设备的蓝牙4.0规范的抽象,也就是说,它为你隐藏了一些规范里的低水平细节,开发者利用它更容易来开发与蓝牙低功耗设备的应用程序。因为这个框架是在该规范的基础上,规范中的一些概念和术语已经被采用。这个章节给你介绍你需要知道使用Core Bluetooth框架开发一个好的应用程序所需要的主要术语和概念。

中央和外围设备和它们在蓝牙交互中的角色

在蓝牙低功耗交互中涉及到两个主要的成员:中央和外围设备。基于某种传统的客户端-服务端架构,一个外围设备一般有其他设备需要的数据,一个中央通过外围设备提供的服务信息来完成一些特别的任务,如图1-1所示,例如,一个心率监测器有你的Mac或者iOS应用程序可能需要的有用的信息,为了已一种友好的方式显示用户的心率。


图1-1
中央发现和连接正在广播的外设(外围设备)

外设会广播一些它们在广播包中有的数据。一个广播包是一些相当少的数据,可以包含一个外设必须提供的有用信息,比如外设的名称和主要功能。一个实际的例子,一个数字恒温控制器可能广播它给一个房间提供当前温度。在蓝牙低功耗中,广播是主要的方式来使外设被知道。
一个中央,在另一方面,可以扫面和监听它感兴趣的一些正在广播信息的外设,如图1-2. 中央可以请求连接它已经发现在广播的外设。

图1-2
外设的数据结构是怎样的

连接到外设的目的是开始与它提供的数据进行探索和交互。在你做这些之前,然而,它有助于理解外设的数据结构是怎样的。
外设可能包含一个或多个服务或者提供一些有用的信息如它们被连接的信号强度。一个服务是一个数据的集合,并且为完成一些功能和一个设备(或部分设备)的特性所相关的行为。一个心率监测器的服务可能是来显示从心率监测传感器来的心率数据。
服务本身是由特征或包括的服务(即引用其他服务)组成的,一个特征对外设的服务提供更多的详情。例如,心率服务,只是描述可能包含的一个用来描述设备心率传感器的身体位置的特征和另一个传输心率测量数据的特征。图1-3阐述了一种心率监测器的服务和特征的可能结构。

图1-3
中央与外设的数据之间探索与交互。

当一个中央与外设建立连接成功之后,它能够发现该外设提供的全部范围的服务和特征(广播数据可能只包含有效服务的一小部分)。
中央也可以通过给服务的特征值进行读或写来与外设服务进行交互,例如,你的应用程序可以从数字恒温控制器来请求当前房间的温度,或者提供一个恒温值来设置房间的温度。

中央,外设,和外设数据是如何表现的

一个简单直接的方法来将蓝牙低功耗交互中主要成员和有关数据映射到Core Bluetooth框架。

在中央端的对象

当你使用一个本地中央与一个远程外设交互,你是在蓝牙低功耗交互的中央端执行操作。除非你设置了一个本地的外设,用它来响应中央端的请求,你的蓝牙事务主要是在中央端。
关于如何在你的应用程序实现中央端的信息,请看Performing Common Central Role TasksBest Practices for Interacting With a Remote Peripheral Device.

本地中央和远程外设

在中央端,使用CBCentralManager对象来代表一个本地中央设备,这个对象是用来管理发现和连接远程外设(用CBPeripheral表示),包括扫描,发现,连接正在广播的外设。图1-4显示在Core Bluetooth框架中本地中央和远程外设是如何表示的。

图1-4
远程外设的数据是通过CBServiceCBCharacteristic对象来表示的。

当你和远程外设(用CBPeripheral对象表示)的数据进行交互,你是在处理它的服务和特征。在Core Bluetooth框架中,远程外设的服务用CBService对象表示,相似的,远程外设的服务的特征是用CBCharacteristic对象表示,如图1-5阐述了一个远程外设的服务和特征的基本结构。

图1-5
在外设端的对象

在OSX v10.9和iOS6, Mac和iOS设备可以作为蓝牙低功耗外设,给其他的设备服务数据,包括其他的Macs, iPhones,和iPads。当设置你的设备来实现外设角色,你是在蓝牙低功耗交互中的外设端执行操作。

本地外设和远程中央

在外设端,本地外设用CBPeripheralManager对象来表示,这个对象是用来发布在本地外设的服务和特征的数据库中的服务并且广播这些服务给远程中央设备(用CBService表示)。外设管理对象也可以用来响应远程中央的读写请求。图1-6显示在Core Bluetooth框架中本地外设和远程中央如何表示。

图1-6
本地外设数据是通过CBMutableServiceCBMutableCharacteristic对象来表示

当你设置和本地外设(使用CBPeripheralManager对象表示)数据交互,你是在处理它的服务和特征的可变译本。在Core Bluetooth框架中,本地外设的服务用CBMutableService对象来表示,相似的,本地外设的服务的特征用CBMutableCharacteristic对象来表示,图1-7阐述了本地外设服务和特征的基本结构。

图1-7

关于如何设置你的本地设备来实现外设角色,请看Performing Common Peripheral Role TasksBest Practices for Setting Up Your Local Device as a Peripheral.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容