標籤:
轉載自:http://www.cocoachina.com/ios/20150915/13454.html
原文劉彥瑋
藍芽常見名稱和縮寫
MFI ======= make for ipad ,iphone, itouch 專們為蘋果裝置製作的裝置
BLE ==== buletouch low energy,藍芽4.0裝置因為低耗電,所以也叫做BLE
peripheral,central == 外設和中心,發起串連的時central,被串連的裝置為perilheral
service and characteristic === 服務和特徵 每個裝置會提供服務和特徵,類似於服務端的api,但是機構不同。每個外設會有很多服務,每個服務中包含很多欄位,這些欄位的許可權一般分為 讀read,寫write,通知notiy幾種,就是我們串連裝置後具體需要操作的內容。
Description 每個characteristic可以對應一個或多個Description使用者描述characteristic的資訊或屬性
MFI === 開發使用ExternalAccessory 架構
4.0 BLE === 開發使用CoreBluetooth 架構
藍芽基礎知識
CoreBluetooth架構的核心其實是兩個東西,peripheral和central, 可以理解成外設和中心。對應他們分別有一組相關的API和類
這兩組api分別對應不同的業務情境,左側叫做中心模式,就是以你的app作為中心,串連其他的外設的情境,而右側稱為外設模式,使用手機作為外設別其他中心裝置操作的情境。
服務和特徵,特徵的屬性(service and characteristic):
每個裝置都會有一些服務,每個服務裡面都會有一些特徵,特徵就是具體索引值對,提供資料的地方。每個特徵屬性分為這麼幾種:讀,寫,通知這麼幾種方式。
| 12345678910111213 |
//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}; |
外設、服務、特徵間的關係
藍芽中心模式流程
1. 建立中心角色
2. 掃描外設(discover)
3. 串連外設(connect)
4. 掃描外設中的服務和特徵(discover)
- 4.1 擷取外設的services
- 4.2 擷取外設的Characteristics,擷取Characteristics的值,擷取Characteristics的Descriptor和Descriptor的值
5. 與外設做資料互動(explore and interact)
6. 訂閱Characteristic的通知
7. 中斷連線(disconnect)
藍芽外設模式流程
1. 啟動一個Peripheral管理對象
2. 本地Peripheral設定服務,特性,描述,許可權等等
3. Peripheral發送廣告
4. 設定處理訂閱、取消訂閱、讀characteristic、寫characteristic的委託方法
藍牙裝置狀態
1. 待機狀態(standby):裝置沒有傳輸和發送資料,並且沒有串連到任何設
2. 廣播狀態(Advertiser):周期性廣播狀態
3. 掃描狀態(Scanner):主動尋找正在廣播的裝置
4. 發起連結狀態(Initiator):主動向掃描裝置發起串連。
5. 主裝置(Master):作為主裝置串連到其他裝置。
6. 從裝置(Slave):作為從裝置串連到其他裝置。
藍牙裝置的五種工作狀態
準備(standby)
廣播(advertising)
監聽掃描(Scanning
發起串連(Initiating)
已串連(Connected)
藍芽和版本的使用限制
iOS藍芽開發(一)藍芽相關基礎知識(轉)