iOS蓝牙开发(一)蓝牙相关基础知识
原網(wǎng)址
iOS藍牙開發(fā)(一)藍牙相關基礎知識
藍牙常見名稱和縮寫
-
MFI ======= make for ipad ,iphone, itouch 專們?yōu)樘O果設備制作的設備
-
BLE ==== buletouch low energy,藍牙4.0設備因為低耗電,所以也叫做BLE
-
peripheral,central == 外設和中心,發(fā)起連接的時central,被連接的設備為perilheral
-
service and characteristic === 服務和特征 每個設備會提供服務和特征,類似于服務端的api,但是機構不同。每個外設會有很多服務,每個服務中包含很多字段,這些字段的權限一般分為 讀read,寫write,通知notiy幾種,就是我們連接設備后具體需要操作的內容。
-
Description 每個characteristic可以對應一個或多個Description用戶描述characteristic的信息或屬性
-
MFI === 開發(fā)使用ExternalAccessory 框架
-
4.0 BLE === 開發(fā)使用CoreBluetooth 框架
藍牙基礎知識
CoreBluetooth框架的核心其實是兩個東西,peripheral和central, 可以理解成外設和中心。對應他們分別有一組相關的API和類
-
這兩組api分別對應不同的業(yè)務場景,左側叫做中心模式,就是以你的app作為中心,連接其他的外設的場景,而右側稱為外設模式,使用手機作為外設別其他中心設備操作的場景。
-
服務和特征,特征的屬性(service and characteristic):
//objcetive c特征的定義枚舉typedef NS_OPTIONS(NSUInteger, CBCharacteristicProperties) {CBCharacteristicPropertyBroadcast = 0x01,CBCharacteristicPropertyRead = 0x02,CBCharacteristicPropertyWriteWithoutResponse = 0x04,CBCharacteristicPropertyWrite = 0x08,CBCharacteristicPropertyNotify = 0x10,CBCharacteristicPropertyIndicate = 0x20,CBCharacteristicPropertyAuthenticatedSignedWrites = 0x40,CBCharacteristicPropertyExtendedProperties = 0x80,CBCharacteristicPropertyNotifyEncryptionRequired NS_ENUM_AVAILABLE(NA, 6_0) = 0x100,CBCharacteristicPropertyIndicateEncryptionRequired NS_ENUM_AVAILABLE(NA, 6_0) = 0x200};
每個設備都會有一些服務,每個服務里面都會有一些特征,特征就是具體鍵值對,提供數(shù)據(jù)的地方。每個特征屬性分為這么幾種:讀,寫,通知這么幾種方式。
外設、服務、特征間的關系
藍牙中心模式流程
1. 建立中心角色 2. 掃描外設(discover) 3. 連接外設(connect) 4. 掃描外設中的服務和特征(discover)- 4.1 獲取外設的services- 4.2 獲取外設的Characteristics,獲取Characteristics的值,獲取Characteristics的Descriptor和Descriptor的值 5. 與外設做數(shù)據(jù)交互(explore and interact) 6. 訂閱Characteristic的通知 7. 斷開連接(disconnect)藍牙外設模式流程
1. 啟動一個Peripheral管理對象 2. 本地Peripheral設置服務,特性,描述,權限等等 3. Peripheral發(fā)送廣告 4. 設置處理訂閱、取消訂閱、讀characteristic、寫characteristic的委托方法藍牙設備狀態(tài)
1. 待機狀態(tài)(standby):設備沒有傳輸和發(fā)送數(shù)據(jù),并且沒有連接到任何設 2. 廣播狀態(tài)(Advertiser):周期性廣播狀態(tài) 3. 掃描狀態(tài)(Scanner):主動尋找正在廣播的設備 4. 發(fā)起鏈接狀態(tài)(Initiator):主動向掃描設備發(fā)起連接。 5. 主設備(Master):作為主設備連接到其他設備。 6. 從設備(Slave):作為從設備連接到其他設備。藍牙設備的五種工作狀態(tài)
- 準備(standby)
- 廣播(advertising)
- 監(jiān)聽掃描(Scanning
- 發(fā)起連接(Initiating)
- 已連接(Connected)
藍牙和版本的使用限制
- 藍牙2.0 === 越獄設備
- 藍牙4.0 === IOS6 以上
- MFI認證設備(Make For ipod/ipad/iphone) === 無限制
名詞解釋
- GAAT : Generic Attribute Profile , GATT配置文件是一個通用規(guī)范,用于在BLE鏈路上發(fā)送和接收被稱為“屬性”的數(shù)據(jù)塊。目前所有的BLE應用都基于GATT。 藍牙SIG規(guī)定了許多低功耗設備的配置文件。配置文件是設備如何在特定的應用程序中工作的規(guī)格說明。注意一個設備可以實現(xiàn)多個配置文件。例如,一個設備可能包括心率監(jiān)測儀和電量檢測。
- Characteristic 一個characteristic包括一個單一變量和0-n個用來描述characteristic變量的descriptor,characteristic可以被認為是一個類型,類 似于類。
- Descriptor Descriptor用來描述characteristic變量的屬性。例如,一個descriptor可以規(guī)定一個可讀的描述,或者一個characteristic變量可接受的范圍,或者一個characteristic變量特定的測量單位。 Service service是characteristic的集合。例如,你可能有一個叫“Heart Rate Monitor(心率監(jiān)測儀)”的service,它包括了很多characteristics,如“heart rate measurement(心率測量)”等。你可以在bluetooth.org 找到一個目前支持的基于GATT的配置文件和服務列表。
參考閱讀
- GATT Profile簡介
最后
babyBluetooth交流群
- qq交流群6: 284341984
- qq交流群5: 426082944(滿)
- qq交流群4: 313084771(滿)
- qq交流群3:530142592(滿)
- qq交流群2:168756967(滿)
- qq交流群1:426603940(滿)
感謝收看,如果對大家有幫助,請github上follow和star,本文發(fā)布在劉彥瑋的技術博客,轉載請注明出處
總結
以上是生活随笔為你收集整理的iOS蓝牙开发(一)蓝牙相关基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql时间间隔interval_My
- 下一篇: Java obj与JSON互转(jack