BLE開發(fā)之GATT

基本概念

想要進(jìn)行Ble相關(guān)的開發(fā)派殷,我們必須具備一定的基礎(chǔ)知識护昧,當(dāng)然基礎(chǔ)知識肯定是非常簡單的。

設(shè)備角色

首先要明白的是注服,這兩種角色的區(qū)分是硬件層面上床估,而且是成對出現(xiàn)的相對概念:
** 中心設(shè)備(Central device) **:功能相對強(qiáng)大瞬铸,用來掃描和連接周邊設(shè)備的熊昌,例如手機(jī)蒲稳、平板等
** 周邊設(shè)備(Central device) **:功能相對簡單,功耗較小可很,被中心設(shè)備連接以提供數(shù)據(jù)的诗力,例如手環(huán)、智能體溫計(jì)等

其實(shí)從最根本上來講我抠,它應(yīng)該是在對建立連接的過程不同角色的一種區(qū)分。我們知道藍(lán)牙設(shè)備要想讓別人知道自己的存在袜茧,是要不間斷的對外放松廣播的菜拓,而另外一方則需要掃描并回復(fù)該廣播包,這樣才能建立連接笛厦,在這個過程中纳鼎,負(fù)責(zé)廣播的就是peripheral,而負(fù)責(zé)掃描的是Central裳凸。

關(guān)于兩者的連接過程需要注意:

  • 中心設(shè)備可以同時(shí)連接多個周邊設(shè)備贱鄙。
  • 周邊設(shè)備一旦被連接上,立刻停止廣播姨谷,斷開后繼續(xù)廣播
  • 任何時(shí)候只能一個設(shè)備嘗試連接逗宁,排隊(duì)連接。
GATT

BLE技術(shù)是基于GATT進(jìn)行通信的梦湘,GATT是一種屬性傳輸協(xié)議瞎颗,簡單的講可以認(rèn)為是一種屬性傳輸?shù)膽?yīng)用層協(xié)議。
它的結(jié)構(gòu)非常簡單:

image

你可以把他看成xml來理解:

  • 每個GATT由完成不同功能的Service組成捌议;
  • 每個Service由不同的Characteristic組成哼拔;
  • 每個Characteristic由一個value和一個或者多個Descriptor組成;
  • Service瓣颅、Characteristic相當(dāng)于標(biāo)簽(Service相當(dāng)于他的類別倦逐,Characteristic相當(dāng)于它的名字),而value才真正的包含數(shù)據(jù)宫补,Descriptor是對這個value進(jìn)行的說明和描述檬姥,當(dāng)然我們可以從不同角度來描述和說明,因此可以有多個Descriptor.

這樣子理解可能不夠準(zhǔn)確守谓,下面我們來舉一個簡單的例子進(jìn)行說明:

常見的小米手環(huán)是一個BLE設(shè)備穿铆,(假設(shè))它包含三個Service,分別是提供設(shè)備信息的Service、提供步數(shù)的Service斋荞、檢測心率的Service;
而設(shè)備信息的service中包含的characteristic包括廠商信息荞雏、硬件信息、版本信息等;而心率Service則包括心率characteristic等凤优,而心率characteristic中的value則真正的包含心率的數(shù)據(jù)悦陋,而descriptor則是對該value的描述說明,比如value的單位啊筑辨,描述啊俺驶,權(quán)限啊等。

GATT C/S

對GATT有了初步的了解棍辕,我們知道GATT是一種典型的C/S模式暮现,既然是C/S那么我們就有必要對Server和client進(jìn)行區(qū)分。

** GATT server ** vs. ** GATT client **楚昭。這兩種角色存在的階段則是建立連接之后栖袋,根據(jù)對話地位的不同進(jìn)行區(qū)分的,很容易理解的是抚太,保有數(shù)據(jù)的那一方我們稱之為GATT server塘幅,訪問數(shù)據(jù)的那一方我們稱之為GATT client。

這和我們之前提到的設(shè)備角色是不同層面的概念尿贫,有必要加以區(qū)分电媳,我們還是用一個簡單的例子進(jìn)行說明:

以手機(jī)和手表的例子來進(jìn)行說明,手機(jī)和手機(jī)建立連接之前庆亡,我們都是用手機(jī)的藍(lán)牙搜索功能去搜索手表的藍(lán)牙設(shè)備匾乓,這個過程中很明顯手表在進(jìn)行BLE廣播以便其他設(shè)備知道自己的存在,它在這個過程中就是peripheral的角色身冀,而手機(jī)負(fù)責(zé)掃描的任務(wù)钝尸,自然扮演的就是Center了;兩者建立了GATT連接后搂根,當(dāng)手機(jī)需要從手表中讀取步數(shù)等傳感器數(shù)據(jù)時(shí)珍促,兩者交互的數(shù)據(jù)是保存在手表中的,因此此時(shí)手表就是GATT server的角色剩愧,自然手機(jī)就作為GATT client猪叙;而當(dāng)手表想要從手機(jī)讀取短信電話等信息室,數(shù)據(jù)的保佑者又變成了手機(jī)仁卷,所以此時(shí)手機(jī)就是server 穴翩,而手表則是client。

Service/Characteristic

上面我們已經(jīng)對他們有了感性的理解锦积,接下來我們來一些實(shí)用的信息:

  1. Characteristic是最小的數(shù)據(jù)邏輯單元∶⑴粒現(xiàn)在不難理解了吧。
  2. value丰介、descriptor中存儲數(shù)據(jù)的解析由Server的工程師決定背蟆,并無規(guī)范鉴分,雙發(fā)按照約定開發(fā)。
  3. Service/Characteristic均有一個唯一的UUID標(biāo)識带膀,UUID既有16位的也有128位的志珍,我們需要了解的是16位的UUID是經(jīng)過藍(lán)牙組織認(rèn)證的,是需要購買的垛叨,當(dāng)然也有一些通用的16位UUID伦糯。
    例如Heart Rate服務(wù)的UUID就是0X180D,代碼中表示為0X00001800-0000-1000-8000-00805f9b34fb,其他位為固定的。而128位的UUID則可以自定義嗽元。
  4. GATT連接是獨(dú)占的敛纲。

作者:小時(shí)不識月z
鏈接:http://www.reibang.com/p/29a730795294
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)还棱,非商業(yè)轉(zhuǎn)載請注明出處载慈。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市珍手,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辞做,老刑警劉巖琳要,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異秤茅,居然都是意外死亡稚补,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進(jìn)店門框喳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來课幕,“玉大人,你說我怎么就攤上這事五垮≌Ь” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵放仗,是天一觀的道長润绎。 經(jīng)常有香客問我,道長诞挨,這世上最難降的妖魔是什么莉撇? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮惶傻,結(jié)果婚禮上棍郎,老公的妹妹穿的比我還像新娘。我一直安慰自己银室,他們只是感情好涂佃,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布励翼。 她就那樣靜靜地躺著,像睡著了一般巡李。 火紅的嫁衣襯著肌膚如雪抚笔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天侨拦,我揣著相機(jī)與錄音殊橙,去河邊找鬼。 笑死狱从,一個胖子當(dāng)著我的面吹牛膨蛮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播季研,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼敞葛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了与涡?” 一聲冷哼從身側(cè)響起惹谐,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎驼卖,沒想到半個月后氨肌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡酌畜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年怎囚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桥胞。...
    茶點(diǎn)故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡恳守,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出贩虾,到底是詐尸還是另有隱情催烘,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布整胃,位于F島的核電站颗圣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏屁使。R本人自食惡果不足惜在岂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛮寂。 院中可真熱鬧蔽午,春花似錦、人聲如沸酬蹋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至骄恶,卻和暖如春食铐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背僧鲁。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工虐呻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寞秃。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓斟叼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親春寿。 傳聞我的和親對象是個殘疾皇子朗涩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評論 2 361