Just My Life & My Work

[iOS] BLE某些概念的解釋

已經持續與藍芽奮戰近一年,來回顧一下BLE某些概念的解釋

首先總結CBServiceCBCharacteristic關係如圖,這樣才好理解其角色負責的任務!

bluetooth Services Characteristics

CBCentralManager

中央,扮演藍牙設備的管理中心,用來管理所有的藍牙設備、連接請求、資料包管理等,每一次的連接都必須有一個central,對所有設備的發現、連接等等操作都需要它。

它本身並沒有幾個屬性,最重要的只是一個用做狀態判斷的state只讀屬性。但是它有一些協議方法,是必須實現的,而且BLE的操作大多是通過delegate來進行交互。

bluetooth Central Peripheral

CBPeripheral

外設(外圍設備),扮演著一個遠程端的藍牙設備的角色,central所管理的就是它。

它有一些只讀屬性,用做判斷,其中重要的一個是UUID,它唯一的標識著一個peripheral(遠程端的BLE智能硬體設備),由開發者寫在硬體的硬體(firmware)中。

還一個重要並且必須的是services(NSArray類型,服務),裡面包含了一個peripheral所包含的所有服務。

當然必須的是,它還有一些必須實現的協議方法需要實現。

bluetooth peripheral service characteristics

CBService

服務,是每個peripheral必備的。每個service都用來表明peripheral所能提供的服務,比如溫度計服務、硬體訊息服務等等。

而且每個service都有一個UUID來標識著它的唯一性,其中16位的UUID只有藍牙聯盟指定規定的一些service時可以使用,比如0x180A設備訊息服務、0x1809體溫計服務等等,開發者自己只能使用128位的,比如0xFFFFFFC1-0457-4000-B000-000000000000。當然了,你也可以使用16位的。但是,如果你們的硬體設備想得到藍牙聯盟的認證,那就不可能囉。

而每個service又包含有多個characteristics(NSArray類型,特徵)。

CBCharacteristic

特徵,是每個service必備的。每個characteristic都標識著service的一個特徵值,比如180A硬體服務的2A26硬體版本號、2A25串號等等。所以,我們讀取peripheral的資料或者操縱peripheral的資料發送等等最後都是根據characteristic來具體執行與表示的。

RSSI

BLE的信號強度,以負數表示(例如:-77),數值越小,表示信號衰減越厲害(例如:-77比-44衰減大),工廠在生產藍牙相關硬體設備的時候就可以以這個為標準來判斷設備是良品還是次級品。

在iBeacon中,這個可以用來判斷距離的遠近。可參考我先前的文章:初探 iBeacon 技術

 

參考:iOS BLE Programming 之CentralManager

廣告

隨意留個言吧:)~

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

標籤雲

%d 位部落客按了讚: