小米米秤v1体重数据

问题描述

我正在尝试编写一个可以从小米米秤版本 1 进行体重测量的应用程序。我从身体成分测量服务中得到一个像 0624b2070101002e3800004c04(5.50kg) 这样的十六进制值。

根据我的研究,第一个字节给出 02:计量单位 最后两个字节是权重值, 但是当我将此值转换为十进制并除以 200 时,我没有得到正确的值。

有人可以帮我获取正确的数据吗?

解决方法

十六进制 4c04 的值等于 19460,这不会给您想要的结果。 但是将 endianess(字节顺序)更改为 044c 会产生 1100 的值,除以 200,您会得到 5.5kg 的预期结果

,

最后两个字节是 4c04。蓝牙以小端格式发送数据,因此作为 1100 的整数。

位于 https://www.bluetooth.com/specifications/specs/ 的“GATT 规范补充 4”文档说:

3.27.2.7 权重字段

如果 Flag 字段的第 0 位为 0,则该字段以千克为单位,分辨率为 0.005 或以磅为单位,分辨率为 0.005 如果标志字段的位 0 为 1,则为 0.01。

1100 * 0.005 = 5.5 公斤