随着穿戴设施的遍及,静止数据的采集变的更加便捷,越来越多的静止衰弱类App步入人们的视线。对于日常静止数据的跟踪记录,成为不拘一格静止类App的外围性能。

华为静止衰弱服务提供的南向服务-设施接入服务,能够帮忙开发者实现静止数据的写入。开发者在开发过程中,须要在App中对设施回传的数据进行字段解析,还原成对应的参数,在App的用户界面进行展现。

那么静止设施返回的数据该如何解析呢?

首先咱们要理解,华为静止衰弱提供的设施接入服务,是基于规范FTMS协定进行数据传输的,所谓FTMS - 健身器材服务是规范蓝牙协定针对静止健身中的训练数据传输做出的独自定义

从协定文档中咱们能够理解到,规范的FMTS协定曾经定义了静止状态(热身,低强度,高强度等),健身器材状态(开启,停滞等),以及反对的健身器材类型(跑步机,穿插训练器,阶梯攀登者,爬楼梯者,划艇者,室内自行车)

对于不同健身器材类型的反对状况,能够参考FTMS协定第三章

对于特定健身器材反对的具体参数,能够参考FTMS协定第四章

须要留神的是,在FTMS协定中,咱们曾经对字节程序曾经做了约定,FTMS协定中均采纳小端序(little endian),即高的地址位存储的是低字节位数据。具体形容能够参考FTMS协定3.2章节

FMTS协定文档链接如下:
https://www.bluetooth.com/spe...

好了,具备了上述根底,咱们来举个例子

以划船机为例(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千卡的能量;另外咱们还能够理解具体的划桨数,浆频,静止耗费的工夫等数据。

通过这样一条条静止数据的传递及解读,咱们能够记录跟踪用户的锤炼状况及日常静止状况,已帮忙用户实现对本身衰弱和健身的治理需要。

更多设施的接入,请参考

https://developer.huawei.com/...

欲了解HMS Core更多详情,请参阅:
华为开发者联盟官网
获取开发领导文档
参加开发者探讨请到CSDN社区或者Reddit社区
下载demo和示例代码请到Github或者Gitee
解决集成问题请到Stack Overflow

原文链接:https://developer.huawei.com/...
原作者:胡椒