目前APP同硬件模塊通信的方式主要有幾種模式: 藍牙連接模式、WiFi 連接模式(Socket 或 HTTP server)、DLNA 音視頻共享 (iOS端還可使用AirPlay)。最近測試了 A PP與外設 通 過 藍牙方式 實現(xiàn) 硬件 連 接 的功能,對相關的開發(fā)實現(xiàn)和測試方法進行一些整理, 在此分享給大家。
藍牙基礎知識
1. iOS平臺下藍牙開發(fā)可以使用 MFI(ExternalAccessory 框架) 或 BLE (CoreBluetooth 框架) 進行,但實際開發(fā)中基本都使用 CoreBluetooth 框架,因為它功能更強大,支持藍牙4.0標準。
2. 藍牙4.0 BLE (Bluetooth low energy) : 它的優(yōu)點在于傳輸快,耗電低,但傳輸數(shù)據(jù)有限,雖然這個傳輸字節(jié)大小硬件工程師可調,但也不會太大。
3. CoreBluetooth框架的核心是peripheral和 central, 可以理解成外設和中心, 發(fā)起連接的是central,被連接的設備為 peripheral,它們是一組相對概念。 比如,當手機去連接控制藍牙耳機時,你的手機就是central,當手機藍牙被另一個手機連接并為其提供服務時就是peripheral。
4. Service和Characteristic:藍牙 設備 通過GATT協(xié) 議 定 義的數(shù)據(jù)通訊方式。一個 peripheral可以提供多種 服務Service,一種Service 又可以包含多個不同的 特征Characteristic。特征就是具體鍵值對,提供數(shù)據(jù)的地方。每個特征屬性分為讀、寫、通知等幾種方式。
5. central通過peripheral 的 Characteristic 來讀寫外設的數(shù)據(jù),和獲取通知。 Peripheral廣播自己的Service和characteristic,Central訂閱某一個具體的characteristic,Peripheral就和Central之間通過characteristic建立了一個雙向的數(shù)據(jù)通道
6. 外設peripheral、服務Service、特征characteristic之間的關系:
7. UUID: 藍牙上的唯一標示符,為了區(qū)分不同服務和特征,就用UUID來表示。

