共计 1843 个字符,预计需要花费 5 分钟才能阅读完成。
随着穿戴设施的遍及,静止数据的采集变的更加便捷,越来越多的静止衰弱类 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/…
原作者:胡椒