BTLE 特征值字节过多

问题描述

我正在尝试从 BTLE fitness machine service,特别是 Indoor Bike Data characteristic 读取数据。

我得到的典型读数是字节 44-02-9c-09-5c-00-4f-00-50。前两个是标志,指示其余字节依次表示:

  • 瞬时节奏 (uint16)
  • 瞬时功率 (sint16)
  • 心率 (uint8)

问题是,那只占了 5 个字节,但值中多了 7 个字节。看起来 5c-00 是节奏,00-4f 是力量,50 是心率,但是

  • 我不知道 9c-09 代表什么,但更重要的是,
  • 如果要向我发送 flags 字段表示不存在的数据,我不知道如何可靠地读取此特征。

我需要做什么才能正确解析这些字节?在这种特定情况下,我可能会跳过这两个字节,但这对于不同的设备制造商来说并不可靠。

更新:FWIW 我认为将其标记为重复是不正确的。我能够解析字节,问题是结果似乎与健身机规范相矛盾。接受的答案澄清了这一点。

解决方法

9c-09 值是瞬时速度,如果第一个标志位为 0,则出现(违反直觉)。请参阅 Fitness Machine Service spec,第 4.9.1.1 节。