问题描述
我正在尝试从 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 节。