小编San*_*nan的帖子

我想从我们开发的移动应用程序的 11 字节数据中识别 BLE 车轮和曲柄传感器数据

我想从11 字节数据中识别车轮和曲柄传感器数据。我试图按照下面链接中的拆分来解析我在我们的移动应用程序中获得的 11 字节十六进制数据。

https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Characteristics/org.bluetooth.characteristic.csc_measurement.xml

例如,我尝试了以下方法,

十六进制数据:0x03 6D010000 FC7E 2C01 F87E

Flag-03 ->0000 0011 -> 8bits 所以两者都是真的,因此我们可以得到车轮和曲柄各自的值。

累积车轮转数- 6D 01 00 00 -> 32 位,因此将其转换为十进制我们得到 -1828782080

最后一个轮子事件时间 - FC 7E -> 16 位,因此我们将其转换为十进制 - 64638

累积曲柄转数 - 2C 01 -> 16 位,因此将其转换为十进制我们得到 - 11265

上次曲柄事件时间 - F8 7E -> 16 位,因此我们将其转换为十进制 - 63614

我无法从 BLE 获得实际的车轮和曲柄测量值。我从我遵循的参考链接中了解到的上述程序是否正确?还是我在其他地方错了?我已尽最大努力剖析和解析数据,但不幸的是我无法找到解决方案。请指导我完成这个过程。我们必须做什么才能获得正确的价值?就像我应该用某个数字乘以它吗?我尝试过不同的组合但无法获得。我使用的设备是SunDing515 自行车速度和踏频传感器,带有蓝牙低功耗

android bluetooth-lowenergy gatt android-ble

6
推荐指数
1
解决办法
1090
查看次数

骑行速度与踏频传感器的BLE Gatt特性数据解析与运算

根据以下链接中的拆分,我们已经确定了我们在应用程序中获得的车轮和曲柄传感器 Gatt 特性测量数据。" https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.csc_measurement.xml "

例如,我们尝试了以下方法,

十六进制数据:0x03 6D010000 FC7E 2C01 F87E

Flag-03 ->0000 0011 -> 8bits 所以两者都是真的,因此我们可以得到车轮和曲柄各自的值。

累积轮转数- 6D 01 00 00 -> 32 位,因此以小端顺序反转蓝牙值,即 00 00 01 6D 并将其转换为十进制,我们得到-365

最后一个轮子事件时间- FC 7E -> 16 位,因此以小端顺序反转蓝牙值,即 7E FC 并将其转换为十进制,我们得到-32508

Cumulative Crank Revolutions- 2C 01 -> 16bits 所以在小端即 01 2C 中反转蓝牙值并将其转换为十进制我们得到-300

上次曲柄事件时间 - F8 7E -> 16 位,因此以小端顺序反转蓝牙值,即 7E F8 并将其转换为十进制,我们得到 - 32504

在这里,我们只为我们的应用程序使用了轮子和曲柄旋转值,所以我们面临一个问题,即使在停止循环后曲柄或轮子的最后一个值仍在重复,并且该值从前一个事件值继续高而异常。在这里,我怀疑Last Wheel 和 Crank 事件时间将发挥重要作用. 但我不确定这些时间字节背后的功能和目的。主轮和曲柄值的单位更少,因此我们不知道我们必须做哪种类型的转换。我们如何获得正确的实时值来计算循环运动时的 RPM 和速度。我们应该如何在 C# 编码中使用最后一个事件时间?我们如何将时间事件纳入我们的逻辑?请指导我们完成这个解析过程。我使用的设备是SunDing515 骑行速度和踏频传感器,带蓝牙低功耗强文本

c# bluetooth-lowenergy gatt

5
推荐指数
1
解决办法
1240
查看次数

标签 统计

bluetooth-lowenergy ×2

gatt ×2

android ×1

android-ble ×1

c# ×1