運動健康南向裝置接入服務傳輸資料解析舉例
隨著穿戴裝置的普及,運動資料的採集變的更加便捷,越來越多的運動健康類App步入人們的視野。對於日常運動資料的跟蹤記錄,成為形形色色運動類App的核心功能。
華為運動健康服務提供的南向服務-裝置接入服務,可以幫助開發者實現運動資料的寫入。開發者在開發過程中,需要在App中對裝置回傳的資料進行欄位解析,還原成對應的引數,在App的使用者介面進行展示。
那麼運動裝置返回的資料該如何解析呢?
首先我們要了解,華為運動健康提供的裝置接入服務,是基於標準 FTMS協議進行資料傳輸的,所謂 FTMS - 健身器材服務是標準藍芽協議針對運動健身中的訓練資料傳輸做出的單獨定義
從協議文件中我們可以瞭解到,標準的FMTS協議已經定義了運動狀態(熱身,低強度,高強度等),健身器材狀態(開啟,停滯等),以及支援的健身器材型別(跑步機,交叉訓練器,階梯攀登者,爬樓梯者,划艇者,室內腳踏車)
對於不同健身器材型別的支援情況,可以參考 FTMS協議第三章
對於特定健身器材支援的具體引數,可以參考 FTMS協議第四章
需要注意的是,在 FTMS協議中,我們已經對位元組順序已經做了約定, FTMS協議中均採用小端序( little endian),即高的地址位儲存的是低位元組位資料。具體描述可以參考 FTMS協議 3.2章節
FMTS協議文件連結如下:
好了,具備了上述基礎,我們來舉個例子
以划船機為例( Rower Data),我們收到划船機發來的一串資料,他代表什麼含義呢
7e19002700d69c0000000061000000e4000d0000000024000000
我們先看下協議中的資料格式,資料可以分為兩大段,第一段是Flags,第二段是引數
Flags欄位解析
依據上圖,我們看到資料是以2位元組(16位元位)的Flags開頭的,即7E19,這個16進位制的表示轉換成二進位制,即為0111 1110 0001 1001
但是不要忘了,FTMS是小端序,即左邊8位儲存的其實是低位元位的資料,所以實際上的讀取順序應該是
依據文件,我們可以發現,這個 Flags 標識這段資料上報了以下欄位的內容(需要參考 FTMS 協議中描述的欄位含義)
此時此刻,我們再參考一下FTMS標準協議中4.8.1.1 Flags Field的描述,我們就可以知道這個Flag指示的後續欄位包含的資訊;
這裡需要注意的是,每個位元位標識的引數個數並不相同,存在一個位元位對應多個引數的情況,本例中具體的位元位與引數的對應情況可參考下表
綜上,我們知道這條資料Flags段告訴我們,接下來的引數段,包含了以下13個引數:
Stroke Rate
Stroke Count
Average Stroke Rate
Total Distance
Instantaneous Pace
Average Pace
Instantaneous Power
Average Power
Total Energy
Energy Per Hour
Energy Per Minute
Elapsed Time
Remaining Time
接下來就可以開始具體引數的解析了
Parameter 欄位解析
參考指導文件中對各個引數的格式定義,我們可以將引數段的資料按照格式定義的長度進行劃分,以匹配到各個引數,此例資料分割如下:
00-2700-d6-9c0000-0000-6100-0000-e400-0d00-0000-00-2400-0000
我們將上述分割好的引數位元組段轉換成十進位制,即可知曉每個引數的含義了。這裡依然不要忘 記FTMS的位元組順序,將各欄位的16進位制的資料轉換為十進位制時,依然要注意讀取順序。解析結果如下:
至此,這樣一條運動資料就解讀完成了,我們可以看到,此使用者在這次划船機運動中,共計劃動了234米,消耗了15千卡的能量;另外我們還可以瞭解具體的划槳數,漿頻,運動消耗的時間等資料。
透過這樣一條條運動資料的傳遞及解讀,我們可以記錄跟蹤使用者的鍛鍊情況及日常運動情況,已幫助使用者實現對自身健康和健身的管理需求。
更多裝置的接入,請參考
欲瞭解
HMS Core
更多詳情,請參閱:
>>
華為開發者聯盟官網
>>
獲取開發指導文件
>>
參與開發者討論請到
CSDN社群
或者
Reddit
社群
>>
下載
demo
和示例程式碼請到
Github
或者
Gitee
>>
解決整合問題請到
Stack Overflow
原文連結: https://developer.huawei.com/consumer/cn/forum/topic/0204580449361770029?fid=18
原作者:胡椒
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69970551/viewspace-2785660/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 整合華為運動健康服務乾貨總覽健康服務
- 如何獲取華為運動健康服務授權碼並呼叫Rest API訪問資料?健康服務RESTAPI
- 美國國防部從“中國”購買資料傳輸服務
- SyncBird Pro Mac(iOS裝置資料傳輸管理工具)MaciOS
- 健康行業告別資料阻塞,迎來資料傳輸自由行業
- Mate 40系列釋出 搭載華為運動健康服務帶來健康數字生活健康服務
- 光纖傳輸裝置學習資料第421篇:12路Base Camera link 全景影像複合光纖傳輸裝置
- 華為運動健康服務Health Kit 6.10.0版本新增功能速覽!健康服務
- 華為運動健康服務Health Kit 6.9.0版本新增功能揭秘!健康服務
- iPhone 的健康資料採用的是 FHIR 傳輸格式iPhone
- php原生socket實現客戶端與服務端資料傳輸PHP客戶端服務端
- WIndows NT服務和普通程式之間大資料傳輸問題Windows大資料
- 裝置接入物聯網平臺必知必會--裝置接入類
- 運動與資料的碰撞,華為分析運動健康行業模板上線行業
- HarmonyOS跨裝置通訊:多端協同的RPC資料傳輸實現RPC
- ios裝置媒體傳輸工具:TouchCopy for maciOSMac
- DNS解析服務(bind)安裝DNS
- 【FAQ】申請運動健康服務驗證環節常見問題及解答健康服務
- 工業裝置資料快速接入華為雲物聯網平臺
- Linux SPI匯流排和裝置驅動架構之四:SPI資料傳輸的佇列化Linux架構佇列
- USB裝置的列舉過程分析——資料結構先行資料結構
- 7 Redo Transport Services 日誌傳輸服務
- FTP檔案服務搭建與同步傳輸FTP
- MacDroid for Mac安卓裝置檔案傳輸工具Mac安卓
- MacDroid for mac(安卓裝置檔案傳輸助手)Mac安卓
- 列舉系統裝置
- 原始碼|什麼是服務提供者框架?舉例?原始碼框架
- 一文看懂怎麼快捷、安全地實現製造裝置資料傳輸
- Xamarin Essentials教程實現資料的傳輸功能例項
- 天龍八部服務端資料傳遞服務端
- 分析服務實時概覽資料助力開發者資料運營
- 基於Cocos SDKHub接入華為HMS Game服務—接入華為應用升級服務GAM
- iOS資料傳輸工具iOS
- 加入運動健康資料開放平臺,共贏鴻蒙未來鴻蒙
- MYSQL CLENT/SERVER資料包傳輸及net packet buffer作用解析MySqlServer
- 使用C# + httpWebRequest 解析WMTS服務後設資料C#HTTPWeb
- 【FAQ】運動健康服務REST API介面使用過程中常見問題和解決方法總結健康服務RESTAPI
- 關於印度跨境資料傳輸,印度放寬了跨境資料傳輸