【问题标题】:Xiaomi mi scale v1 Weight Data小米体重秤 v1 体重数据
【发布时间】:2021-10-04 20:26:36
【问题描述】:

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

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

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

【问题讨论】:

    标签: bluetooth-lowenergy xiaomi mi


    【解决方案1】:

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

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

    3.27.2.7 权重字段

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

    1100 * 0.005 = 5.5 公斤

    【讨论】:

      【解决方案2】:

      十六进制 4c04 的值等于 19460,这不会为您提供所需的结果。 但是将endianess(字节顺序)更改为044c会得到1100的值,除以200,得到5.5kg的期望结果

      【讨论】:

        【解决方案3】:

        我遇到了类似的问题,我个人是这样做的

        对于转换,我使用这个网站,因为我不知道如何转换 :) enter link description here

        这是一张图片,显示了它是如何工作的,你需要查看 INT 16 BIG endian 并发布整个十六进制代码,而不仅仅是像这样的最后两个字节:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-01-24
          • 1970-01-01
          • 2017-05-27
          • 1970-01-01
          • 1970-01-01
          • 2023-02-25
          • 1970-01-01
          相关资源
          最近更新 更多