我编写了一个连接到心率模型的程序,但我不知道如何解释数据。下面是从第一个输出开始的示例:
心率是: 16-40-15-04-6D-02-8C-01-0C-04-24-04-AB-03-7B-02-B4-01 心率: 16-40-20-04 心率: 16-40-8F-03 心率: 16-40-10-04
..。
心率: 16-40-F7-03 心率: 16-40-05-04 心率: 16-40-31-04 心率: 16-40-F8-02-47-01 心率: 16-40-A5-03
..。
心率: 16-40-D4-02 心率: 16-40-FE-03 心率: 16-40-15-05 心率: 16-3C-97-03 心率: 16-3D-64-03-78-03 心率: 16-3D-4F-04 心率: 06-3D
..。
心率: 16-3E-3D-04 心率: 16-3E-17-04-78-03
这是获取和转换数据的代码:
void hrMeasurementChanged( GattCharacteristic sender, GattValueChangedEventArgs eventArgs)
{
byte[] hrData = new byte[eventArgs.CharacteristicValue.Length];
Windows.Storage.Streams.DataReader.FromBuffer(
eventArgs.CharacteristicValue).ReadBytes(hrData);
var hrValue = BitConverter.ToString(hrData);
Debug.WriteLine("heart rate is : " +hrValue);
}这一页解释了它,但我不知道如何解释数据:measurement.xml
谢谢。
发布于 2016-08-08 05:02:37
心率: 16-40-20-04
第一个字节是0x16,它是heart_rate_measurement的Flags值字段。它的二进制形式是0001_0110,第一个位(最不重要的位)是Heart Rate Value Format位,这里是0,它意味着跟随Flags的心率由一个字节表示。在这里,心率是0x40,即64每分钟(Bpm)(十进制形式是64)。第四个位是RR-Interval位,这里是1,这意味着存在一个或多个RR-Interval值。RR-Interval值由两个字节表示。这里有一个RR-Interval值,它是0x0420(按LSO到MSO的顺序)。
心率是: 16-40-15-04-6D-02-8C-01-0C-04-24-04-AB-03-7B-02-B4-01
从0x15到结尾有8个RR-区间值.
心率: 06-3D
Flags值字段的第四位是RR-Interval位,这里是0,这意味着RR-Interval值不存在。所以只有心率值:0x3D。
另见GATT 心率特性规范
https://stackoverflow.com/questions/38818969
复制相似问题