C# 循环速度和节奏传感器';s BLE Gatt特征数据解析与操作
我们已经确定了车轮和曲轴传感器Gatt特性测量数据,这些数据是根据下面链接中的拆分在我们的应用程序中获得的。 “” 比如说我们试过, 十六进制数据:0x03 6D010000 FC7E 2C01 F87E Flag-03->0000 0011->8位,因此两者都为真,因此我们可以得到车轮和曲柄各自的值 累积车轮转数-6D 01 00->32位,因此将蓝牙值反转为小端,即00 00 01 6D,并将其转换为十进制,我们得到-365 最后一轮事件时间-FC 7E->16位,因此将蓝牙值反转为小端字节,即7E FC,并将其转换为十进制,我们得到-32508 累积盘车转数-2C 01->16位,因此将蓝牙值反转为小端,即01 2C,并将其转换为十进制,我们得到-300 上次启动事件时间-F8 7E->16位,因此将蓝牙值以小端字节反转,即7E F8,并将其转换为十进制,我们得到-32504C# 循环速度和节奏传感器';s BLE Gatt特征数据解析与操作,c#,bluetooth-lowenergy,gatt,C#,Bluetooth Lowenergy,Gatt,我们已经确定了车轮和曲轴传感器Gatt特性测量数据,这些数据是根据下面链接中的拆分在我们的应用程序中获得的。 “” 比如说我们试过, 十六进制数据:0x03 6D010000 FC7E 2C01 F87E Flag-03->0000 0011->8位,因此两者都为真,因此我们可以得到车轮和曲柄各自的值 累积车轮转数-6D 01 00->32位,因此将蓝牙值反转为小端,即00 00 01 6D,并将其转换为十进制,我们得到-365 最后一轮事件时间-FC 7E->16位,因此将蓝牙值反转为小端字节
在这里,我们在应用中仅使用了车轮和曲柄转速值,因此我们面临一个问题,即即使在停止循环后,曲柄或车轮的最后一个值仍在重复,并且该值从上一个事件值继续,有时该值非常高且异常。在这里,我怀疑最后一个车轮和曲柄事件时间将起主要作用。但我不确定这些时间字节背后的功能和用途。主轮和曲柄值的单位较少,因此我们不知道必须进行哪种类型的转换。我们如何获得正确的实时值来计算循环运动时的转速和速度。我们应该如何在C#编码中使用最后一个事件时间?我们如何将时间事件纳入我们的逻辑?请指导我们完成这个解析过程。我使用的设备是SunDing515自行车速度和节奏传感器,具有蓝牙低能量功能strong text我正在为
BLE
装置开发一个应用程序,用于传输GATT
CSC
测量值。我下面描述的不是C#或Java特定的概念,而是通用的
csc_measurement.xml
文件时,您可以看到单位为1/1024秒。所以你必须除以你提到的值(32508和32504)才能得到纯二次读数。然而,由于该读数作为UInt16传输,这也意味着该变量每64秒溢出一次。我不知道为什么关贸总协定的特点是这样设计的,他们可以在这里使用UInt32(或UInt24),就像车轮旋转一样,但这就是我们所拥有的尽管如此,如果您的设备仍然为事件时间提供不稳定的数据:请仔细检查1024除法和溢出逻辑以及滑动窗口。你仍然有最后的办法回到你自己测量的时间戳,但在我的情况下,结果适得其反:当手机在训练期间进入锁定模式,然后再次解锁时,所有的测量数据立刻涌入应用程序,导致我的时间戳无效,我的计算变得异常。因此,如果可能的话,尽量保持设备的读数。有没有在santosh解决过这个问题?看到相似的东西了吗