上周智能騎行系列的第一篇文章中,小碼哥介紹了自行車選手們可以如何借助Bluetooth Smart 設(shè)備提高比賽成績,大家也領(lǐng)略了智能騎行的魅力。(有些妹紙表示圖片撩人熱血,有想流口水的沖動)本篇將繼續(xù)從開發(fā)者的視角就藍牙騎行技術(shù)展開討論。
哪些配置文件必不可少?
與騎行相關(guān)的主要配置文件包括:心率配置文件(Heart Rate Profile)、騎行速度和踩踏速率配置文件(CyclingSpeed and Cadence Profile) 、騎行功率配置文件(Cycling PowerProfile)。
心率配置文件使用通知將心率測量結(jié)果傳輸至向與之相連的GATT客戶端。通知中包括的不僅僅是心率數(shù)據(jù),稍后小碼哥會詳細說明。騎行速度和踩踏速率配置文件也使用通知傳輸數(shù)據(jù),每個通知都包含車輪轉(zhuǎn)數(shù)或(和)曲柄轉(zhuǎn)數(shù)數(shù)據(jù)。騎行功率配置文件也使用“通知”這一超級有用的屬性協(xié)議(AttributeProtocol)信息來傳輸數(shù)據(jù)。
BluetoothDeveloper Studio助力開發(fā)
如果你想要深入了解并著手開發(fā),請點擊原文鏈接下載并安裝Bluetooth Developer Studio正式版。它是藍牙技術(shù)聯(lián)盟新推出的開發(fā)工具,是助力開發(fā)的神器。其龐大的配置文件、服務(wù)、特性和描述符資源庫并不局限于之前所提到的。Bluetooth Developer Studio是探索這些配置文件的絕佳工具,讓開發(fā)者能夠通過插件生成代碼,迅速進入開發(fā)的實施。
圖1 –Bluetooth Developer Studio
可供下載的智能手機APP
許多配置文件可用的移動應(yīng)用程序,可以下載并使用。下面列舉的三個是適用于安卓系統(tǒng)的移動應(yīng)用程序:
Polar Beat
Wahoo 健身
北歐半導(dǎo)體BLE nRF 工具箱
開發(fā)專屬你的炫酷APP
如果你是移動開發(fā)者,你一定會想要開發(fā)自己的Bluetooth Smart應(yīng)用,尤其是當(dāng)藍牙技術(shù)聯(lián)盟或其他設(shè)備制造商發(fā)布新的配置文件時。而且,隨意結(jié)合采用的服務(wù)和你自己自定義服務(wù)打造自己的自定義配置文件也是完全合法的。
編寫代碼的種類取決于開發(fā)所面向的平臺以及開發(fā)的是GATT客戶端還是GATT服務(wù)器。如果你編寫的是與自行車或選手身上的一種或多種類型的傳感器協(xié)同工作的GATT客戶端應(yīng)用,就需要訂閱包含所需傳感器值的特性的通知,當(dāng)通知通過BluetoothSmart從傳感器傳輸至設(shè)備時,就可以依照代碼對這些通知進行相應(yīng)處理。
讓我們再進一步觀察一下這三個配置文件,然后我會陸續(xù)穿插一些代碼片段。
心率配置文件 (HRM)
這一配置文件包括一項強制性服務(wù),即心率服務(wù);以及一項選擇性服務(wù),即設(shè)備信息服務(wù)。心率服務(wù)定義了以下幾項特性:
心率測量特性值可分解為若干不同的字段,因此接收此特性通知的應(yīng)用要做的第一件事就是對值數(shù)據(jù)進行劃分。我們可以從Flags 字段的首字符和0-4比特位中了解心率傳感器的更多功能,以及特性值其余部分的數(shù)據(jù)形式。例如,表示每分鐘心跳數(shù)的心率值可能是8位或16位字段,F(xiàn)lags 字段會以一個特定的通知告訴我們是哪種情況。
一個8位字段能夠保存0-225范圍的值,對于人的心率來說足夠了。一種計算心率理論最大值的方法是220-年齡,所以一個40歲的人心率理論最大值為180。但如果你要用心率測量儀給一只蜂鳥側(cè)心率,那這一數(shù)值可能在50-1260跳/每分鐘之間,就需要一個16位的值才夠。
圖2 –處理安卓系統(tǒng)中的心率通知
騎行速度和踩踏速率配置文件(CSC)
這一配置文件也有一個強制性的服務(wù),即騎行速度和踩踏速率服務(wù);以及一個選擇性的服務(wù),即設(shè)備信息服務(wù)。CSC服務(wù)定義了以下四個特性:
特性 | 需求 | 注釋 |
CSC 測量 | 強制性 | 車輪轉(zhuǎn)數(shù)數(shù)據(jù)或/和曲柄轉(zhuǎn)數(shù)數(shù)據(jù)。可通過通知消息發(fā)送至客戶端應(yīng)用。 |
CSC 特性 | 強制性 | 只讀特性,指示是否支持車輪轉(zhuǎn)數(shù)數(shù)據(jù)或(和)曲柄轉(zhuǎn)數(shù)數(shù)據(jù),以及是否支持多重傳感器位置。 |
傳感器位置 | 條件性 | 指示傳感器位置 (如前輪,左曲柄) ,如果支持多重傳感器位置則為必需。 |
SC 控制點 | 條件性 | 允許多個過程的啟動,如傳感器校準(zhǔn)。 |
CSC測量特性是應(yīng)用開發(fā)者最感興趣的,它的值也可以分解為若干個字段。首個字節(jié)包括一個Flags 字段, 前兩個字節(jié)可指示該值是否包含車輪轉(zhuǎn)數(shù)數(shù)據(jù)或(和)曲柄轉(zhuǎn)數(shù)數(shù)據(jù)。車輪轉(zhuǎn)數(shù)數(shù)據(jù)包括一個32位的累計車輪轉(zhuǎn)數(shù),以及一個代表以1/1024為單位最后一次測量車輪事件的時間的16位的值。曲柄數(shù)據(jù)包括一個16位的曲柄轉(zhuǎn)數(shù)累計計數(shù),以及一個類似的16位的最后一個事件的時間字段。有了這些數(shù)據(jù),客戶端就能夠計算自最后一次事件的車輪轉(zhuǎn)動或踩踏的平均速度,即便藍牙連接在中間發(fā)生過中斷。如果客戶端知道車輪的圓周,那么還可以計算出自最后一次事件之后的行進距離和平均騎行速度。
圖3 – 處理安卓系統(tǒng)中的CSC 通知
騎行功率配置文件(CPP)
這一配置文件定義了四個角色,允許通過兩種完全不同的方式使用騎行功率傳感器。通常“收集器”可以連接至“CP 傳感器”, 發(fā)現(xiàn)GATT服務(wù)和特性并與之互動。但配置也可以把騎行功率傳感器設(shè)置為“CP廣播者“的角色,有一個或多個客戶端作為“CP觀察者”通過無定向不可連接的GAP廣播接收騎行功率數(shù)據(jù)。在后者的情況下,必須使用Bluetooth Smart傳輸數(shù)據(jù),反之也可以通過藍牙BR/EDR調(diào)用CP 傳感器和收集器的角色。
請注意,在不同位置(如自行車左右兩側(cè)曲柄)安裝、并同時使用多個騎行速率傳感器是十分常見的。騎行功率服務(wù)的傳感器位置特性可以適應(yīng)這一情況。
這一配置文件定義了一項強制性服務(wù)(即騎行功率服務(wù))以及兩項選擇性服務(wù)(即數(shù)據(jù)信息服務(wù)和電池服務(wù))。其中騎行功率服務(wù)定義了以下5項特性。
以上騎行功率測量時大多數(shù)應(yīng)用都會利用的特性。通知可采用GATT用于從CP傳感器向與之相連的采集器傳輸數(shù)據(jù)。如果這一特性的服務(wù)器特性配置描述符被設(shè)置為0x01,特性就能采用GAP廣播數(shù)據(jù)包在服務(wù)數(shù)據(jù)字段中被廣播。
測試客戶端應(yīng)用
使用藍牙開發(fā)板生成模擬傳感器讀數(shù),就可以很更簡單地測試與傳感器設(shè)備協(xié)調(diào)工作的藍牙客戶端應(yīng)用。這顯然比每次做出改動、安裝應(yīng)用后都要親自騎車測試便利的多。雖然可能沒有親自騎車那么有趣,但的確非常便利。
我有一些來自不同制造商的開發(fā)板,如CSR(已被高通收購)、北歐半導(dǎo)體、藍兆(已被Silicon Labs收購),它們都包括心率配置文件的實施,可以生成模擬心率數(shù)據(jù)。北歐半導(dǎo)體SDK還包括CSC配置文件。創(chuàng)建常見的配置文件的模擬時,用心率配置文件做模板即簡單、又省事。
圖4 – 適用于北歐半導(dǎo)體nRF1DK的心率配置文件項目
另外,一個叫做LightBlue的iOS和Mac應(yīng)用能幫助開發(fā)者建立Mac、iPhone或iPad的“虛擬外圍設(shè)備”, 并支持CSC、HRM、騎行功率等多項配置文件。
資源
BluetoothDeveloper Studio讓開發(fā)者能夠快速啟動開發(fā),使用、設(shè)計服務(wù)和特性,來打造自己的解決方案。這一工具是無價的資源庫,讓開發(fā)者能夠創(chuàng)建自己的服務(wù),并了解采用的服務(wù)器如何工作。
北歐半導(dǎo)體有一個非常不錯的安卓應(yīng)用,同時支持心率配置文件、騎行速度和踩踏速率配置文件,以及其他配置文件。源代碼還公布于Github上:
我最初便攜的兩個 Bluetooth Smart APP都是針對BlackBerry 10的心率配置文件、騎行速度和踩踏速率配置文件。兩個應(yīng)用的代碼現(xiàn)已開源(Blackberry 10 心率監(jiān)測儀,Blackberry 10 CSC 監(jiān)測儀),有需要請上網(wǎng)搜索或微信聯(lián)系小編。
-
藍牙
+關(guān)注
關(guān)注
114文章
5752瀏覽量
169600 -
Bluetooth Smart
+關(guān)注
關(guān)注
0文章
17瀏覽量
9192
發(fā)布評論請先 登錄
相關(guān)推薦
評論