Core Bluetooth庫編程指南官方文檔翻譯1-2

Core Bluetooth概述

這個Core Bluetooth框架讓你的IOS 和 Mac 應(yīng)用程序與藍(lán)牙低功耗設(shè)備交互。例如,你的應(yīng)用程序能夠發(fā)現(xiàn),探索,和與低功耗外圍設(shè)備交互,比如心率監(jiān)測器,數(shù)字恒溫控制器,甚至其他的iOS 設(shè)備。
這個框架是為了使用低功耗設(shè)備的藍(lán)牙4.0規(guī)范的抽象,也就是說,它為你隱藏了一些規(guī)范里的低水平細(xì)節(jié),開發(fā)者利用它更容易來開發(fā)與藍(lán)牙低功耗設(shè)備的應(yīng)用程序。因為這個框架是在該規(guī)范的基礎(chǔ)上,規(guī)范中的一些概念和術(shù)語已經(jīng)被采用。這個章節(jié)給你介紹你需要知道使用Core Bluetooth框架開發(fā)一個好的應(yīng)用程序所需要的主要術(shù)語和概念。

中央和外圍設(shè)備和它們在藍(lán)牙交互中的角色

在藍(lán)牙低功耗交互中涉及到兩個主要的成員:中央和外圍設(shè)備。基于某種傳統(tǒng)的客戶端-服務(wù)端架構(gòu),一個外圍設(shè)備一般有其他設(shè)備需要的數(shù)據(jù),一個中央通過外圍設(shè)備提供的服務(wù)信息來完成一些特別的任務(wù),如圖1-1所示,例如,一個心率監(jiān)測器有你的Mac或者iOS應(yīng)用程序可能需要的有用的信息,為了已一種友好的方式顯示用戶的心率。


圖1-1
中央發(fā)現(xiàn)和連接正在廣播的外設(shè)(外圍設(shè)備)

外設(shè)會廣播一些它們在廣播包中有的數(shù)據(jù)。一個廣播包是一些相當(dāng)少的數(shù)據(jù),可以包含一個外設(shè)必須提供的有用信息,比如外設(shè)的名稱和主要功能。一個實際的例子,一個數(shù)字恒溫控制器可能廣播它給一個房間提供當(dāng)前溫度。在藍(lán)牙低功耗中,廣播是主要的方式來使外設(shè)被知道。
一個中央,在另一方面,可以掃面和監(jiān)聽它感興趣的一些正在廣播信息的外設(shè),如圖1-2. 中央可以請求連接它已經(jīng)發(fā)現(xiàn)在廣播的外設(shè)。

圖1-2
外設(shè)的數(shù)據(jù)結(jié)構(gòu)是怎樣的

連接到外設(shè)的目的是開始與它提供的數(shù)據(jù)進(jìn)行探索和交互。在你做這些之前,然而,它有助于理解外設(shè)的數(shù)據(jù)結(jié)構(gòu)是怎樣的。
外設(shè)可能包含一個或多個服務(wù)或者提供一些有用的信息如它們被連接的信號強(qiáng)度。一個服務(wù)是一個數(shù)據(jù)的集合,并且為完成一些功能和一個設(shè)備(或部分設(shè)備)的特性所相關(guān)的行為。一個心率監(jiān)測器的服務(wù)可能是來顯示從心率監(jiān)測傳感器來的心率數(shù)據(jù)。
服務(wù)本身是由特征或包括的服務(wù)(即引用其他服務(wù))組成的,一個特征對外設(shè)的服務(wù)提供更多的詳情。例如,心率服務(wù),只是描述可能包含的一個用來描述設(shè)備心率傳感器的身體位置的特征和另一個傳輸心率測量數(shù)據(jù)的特征。圖1-3闡述了一種心率監(jiān)測器的服務(wù)和特征的可能結(jié)構(gòu)。

圖1-3
中央與外設(shè)的數(shù)據(jù)之間探索與交互。

當(dāng)一個中央與外設(shè)建立連接成功之后,它能夠發(fā)現(xiàn)該外設(shè)提供的全部范圍的服務(wù)和特征(廣播數(shù)據(jù)可能只包含有效服務(wù)的一小部分)。
中央也可以通過給服務(wù)的特征值進(jìn)行讀或?qū)憗砼c外設(shè)服務(wù)進(jìn)行交互,例如,你的應(yīng)用程序可以從數(shù)字恒溫控制器來請求當(dāng)前房間的溫度,或者提供一個恒溫值來設(shè)置房間的溫度。

中央,外設(shè),和外設(shè)數(shù)據(jù)是如何表現(xiàn)的

一個簡單直接的方法來將藍(lán)牙低功耗交互中主要成員和有關(guān)數(shù)據(jù)映射到Core Bluetooth框架。

在中央端的對象

當(dāng)你使用一個本地中央與一個遠(yuǎn)程外設(shè)交互,你是在藍(lán)牙低功耗交互的中央端執(zhí)行操作。除非你設(shè)置了一個本地的外設(shè),用它來響應(yīng)中央端的請求,你的藍(lán)牙事務(wù)主要是在中央端。
關(guān)于如何在你的應(yīng)用程序?qū)崿F(xiàn)中央端的信息,請看Performing Common Central Role TasksBest Practices for Interacting With a Remote Peripheral Device.

本地中央和遠(yuǎn)程外設(shè)

在中央端,使用CBCentralManager對象來代表一個本地中央設(shè)備,這個對象是用來管理發(fā)現(xiàn)和連接遠(yuǎn)程外設(shè)(用CBPeripheral表示),包括掃描,發(fā)現(xiàn),連接正在廣播的外設(shè)。圖1-4顯示在Core Bluetooth框架中本地中央和遠(yuǎn)程外設(shè)是如何表示的。

圖1-4
遠(yuǎn)程外設(shè)的數(shù)據(jù)是通過CBServiceCBCharacteristic對象來表示的。

當(dāng)你和遠(yuǎn)程外設(shè)(用CBPeripheral對象表示)的數(shù)據(jù)進(jìn)行交互,你是在處理它的服務(wù)和特征。在Core Bluetooth框架中,遠(yuǎn)程外設(shè)的服務(wù)用CBService對象表示,相似的,遠(yuǎn)程外設(shè)的服務(wù)的特征是用CBCharacteristic對象表示,如圖1-5闡述了一個遠(yuǎn)程外設(shè)的服務(wù)和特征的基本結(jié)構(gòu)。

圖1-5
在外設(shè)端的對象

在OSX v10.9和iOS6, Mac和iOS設(shè)備可以作為藍(lán)牙低功耗外設(shè),給其他的設(shè)備服務(wù)數(shù)據(jù),包括其他的Macs, iPhones,和iPads。當(dāng)設(shè)置你的設(shè)備來實現(xiàn)外設(shè)角色,你是在藍(lán)牙低功耗交互中的外設(shè)端執(zhí)行操作。

本地外設(shè)和遠(yuǎn)程中央

在外設(shè)端,本地外設(shè)用CBPeripheralManager對象來表示,這個對象是用來發(fā)布在本地外設(shè)的服務(wù)和特征的數(shù)據(jù)庫中的服務(wù)并且廣播這些服務(wù)給遠(yuǎn)程中央設(shè)備(用CBService表示)。外設(shè)管理對象也可以用來響應(yīng)遠(yuǎn)程中央的讀寫請求。圖1-6顯示在Core Bluetooth框架中本地外設(shè)和遠(yuǎn)程中央如何表示。

圖1-6
本地外設(shè)數(shù)據(jù)是通過CBMutableServiceCBMutableCharacteristic對象來表示

當(dāng)你設(shè)置和本地外設(shè)(使用CBPeripheralManager對象表示)數(shù)據(jù)交互,你是在處理它的服務(wù)和特征的可變譯本。在Core Bluetooth框架中,本地外設(shè)的服務(wù)用CBMutableService對象來表示,相似的,本地外設(shè)的服務(wù)的特征用CBMutableCharacteristic對象來表示,圖1-7闡述了本地外設(shè)服務(wù)和特征的基本結(jié)構(gòu)。

圖1-7

關(guān)于如何設(shè)置你的本地設(shè)備來實現(xiàn)外設(shè)角色,請看Performing Common Peripheral Role TasksBest Practices for Setting Up Your Local Device as a Peripheral.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容