1. 程式人生 > >藍芽學習--關係

藍芽學習--關係

簡寫

  • GAP : Generic Access Profile
  • GATT : Generic Attribute Profile
  • ATT : Attribute Protocol
  • HCI : Host-Controller Interface

在這裡插入圖片描述

ATT、GATT、Profile的通俗說法(喜聞樂見)

GATT Profile(通用屬性配置) GATT(通用屬性規範) ATT(屬性協議)
Profile 就像這個做煤球的模子。每個 SIG 組織成員都可以向 SIG 提交這個“模子”, 如果審批通過,那麼這個就成了全世界 都通用的“模子”,你不用管這個“煤球” 是在中國燒,還是在美國燒,不管是用 的安卓系統還是蘋果系統,全部都是通 用的,所以這個叫“通用屬性規範配置”, 也就是“全球通用的蜂窩煤模子” GATT 就是通過“模子”做出來的各種各樣的“煤 球”,它相當於一個“煤球供應商”,它這有各式 各樣已經做好的煤球,都儲存在“庫房”。對於 軟體來說,GATT 就相當於一個伺服器或者是資料 庫,這個資料庫中有各種各樣由 Profile 模子製作 出來的資料。這個資料儲存在晶片中,軟體實現 的話就是一個連結串列,只是這個連結串列需要動態建 立,也就相當於“煤球供應商”不能將所有不同 種類的煤球都做出來,他們會根據客戶的需求, 動態去做哪種煤球。對於 GATT 資料庫也是一樣 的,它會根據應用而在初始化系統時動態建立所 用到的“模子”的資料庫。 ATT 就相當於一個運輸“煤球”工具。它 在4.0的規範中定義了怎麼去訪問GATT數 據庫,並傳輸這些資料到相應層。

服務是什麼鬼?

 藍芽4.0是以引數來進行資料傳輸的,即服務端定好一個東西,客戶端可以對這個東西進行讀,寫,通知等操作,這個東西我們稱之為特徵值(characteristic),

但一個引數不夠我們用,比如我們這個特徵值是電量的值,另一個特徵值是裝置讀取的溫度值。

那這時候會有多個特徵值,並且我們還會對它們分類,分出來的類我們稱之為服務(service)。

一個裝置可以有多個服務,每一個服務可以包含多個特徵值。為了方便操作,每個特徵值都有他的屬性,例如長度(size),許可權(permission),值(value),描述(descriptor)

在這裡插入圖片描述