官方藍牙4.0基本概念

1.中心設備和外圍設備以及它們在藍牙通訊中的角色。

在所有的BLE( Bluetooth low energy,下文簡稱藍牙4.0 )通訊中都涉及2個主要的角色:中心設備和外圍設備。它是基於傳統的客戶-服務器(主從式)結構,一般來說,外圍設備有其它設備需要的數據,中心設備使用外圍設備提供的數據來完成特定的任務。像下圖所示,心率監測器有有用的數據,Mac或者iOS APP需要這些數據來顯示用戶的心率。


技術分享


2.中心設備搜索和連接正在廣告的外圍設備

這裏介紹了一個新的名詞:廣告(advertise)。


外圍設備對外廣播廣告包(advertising packets)形式的數據,一個廣告包是一個相對小的一捆包含着外圍設備信息的數據,例如包含外圍設備的名字和它的主要功能。舉一個例子,一個數字溫度調節器會廣告(advertise)說它提供房間的目前溫度數據,在藍牙4.0中,廣告是外圍設備讓其它設備發現的主要方法。


另一方面,中心設備,可以掃描和監聽任何在廣告(advertising)的外圍設備,如下圖。中心設備可以向任何它發現正在廣告的外圍設備請求連接


技術分享




三.外圍設備的數據結構

這裏介紹了兩個新名詞:服務(services)和特徵(characteristics)。


連接外圍設備的目的是探索並與其進行數據交互,開始這些之前,我們先來了解下外圍設備的數據組成


外圍設備包含一個或多個服務(services)以及提供了連接信號的強度。一個服務是一些數據的集合,是設備完成一個特定行爲的功能。例如,一個心率計的服務是從心率傳感器讀取數據。


服務由特徵(characteristics)組成。一個特徵提供外圍設備服務的更詳細信息。例如,心率服務只是說明它包含一個描述心率傳感器所在的身體部位的特徵和一個傳輸心率測量數據的特徵。圖1-3表明了一個心率傳感器服務和特徵的關係結構


技術分享


4、中心設備檢測外圍設備並與其進行數據交互

一箇中心設備與一個外圍設備連接成功後,便可以搜索外圍設備提供的所有服務和特徵。(廣告的數據可能只含有一部分可用服務)。一箇中心設備也可以通過讀和寫服務的特徵來與外圍設備交互。例如,你的app可以從數碼溫度調節器請求當前房間的溫度,或者可以提供一個值來設置房間溫度。


5.中心設備、外圍設備和外圍設備數據的表現形式

主要的藍牙參與者和相關數據對應Core Bluetooth framework中的哪些對象?


5.1.中心設備

當你使用本地中心設備來與外部外圍設備進行交互,你需要在藍牙的中心設備這邊進行代碼編寫,除非你建立的是一個本地外圍設備(在5.2進行介紹),否則你的大多數藍牙傳輸會在中心設備這邊進行。


有關怎樣在你的app中實現中心設備角色,請看 Performing Common Central Role Tasks我的上一篇翻譯)andBest Practices for Interacting with a Remote Peripheral Device



5.1.1本地中心設備和遠程外圍設備

在中心設備這邊,一個本地中心設備用一個CBCentralManager對象來代表,這些對象用來管理髮現和連接遠程設備(用CBPeripheral對象來代表),包括搜索、發現、連接正在廣告的外圍設備。如下圖,顯示本地中心設備和遠程外圍設備在Core Bluetooth framework的表現形式。


技術分享




5.1.2遠程外圍設備數據用CBService 和 CBCharacteristic來表示

當你與外圍設備( CBPeripheral對象)進行數據交互,你需要處理它的服務(services)和特徵(characteristics),在Core Bluetooth framework中,外圍設備的服務用CBService對象來表示。同樣的,


外圍設備的特徵用 CBCharacteristic對象來表示。如下圖,表示一個遠程外圍設備的服務和特徵的基本結構。


技術分享



5.2外圍設備對應的對象

從OS X10.9 和iOS6開始,Mac和iOS設備可以作爲藍牙4.0的外圍設備,爲其它設備提供數據,包括其它的Mac、iPhone和iPad設備。當你將你的設備設置爲外圍設備角色,你需要實現外圍設備的一些處理。


5.2.1本地外圍設備和外部中心設備

在外圍設備這一邊,本地外圍設備用 CBPeripheralManager對象來表示,這些對象用來管理外圍設備數據庫中的服務和特徵,以及給外部的中心設備(CBCentral對象)廣播這些服務,外圍設備管理對象同時可以迴應遠程設備的讀和寫請求,下圖顯示本地外圍設備和遠程中心設備在 Core Bluetooth framework的表示


技術分享




5.2.2本地外圍設備的數據使用CBMutableService 和CBMutableCharacteristic對象來表示

當你設置本地外圍設備( CBPeripheralManager對象)並且進行數據交互,你需要處理它的服務和特徵。在Core Bluetooth framework中,本地外圍設備的服務用CBMutableService對象來表示。同樣的,一個服務的特徵用CBMutableCharacteristic對象來表示,圖1-7便是本地外圍設備的服務和特徵的基本結構


技術分享



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章