UWP GATT心率监测器特征值解释

时间:2016-08-07 22:01:56

标签: uwp gatt

我写了一个连接到心率模型的程序,但我不知道如何解释数据。 以下是从第一个输出开始的示例:

  

心率为: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);
    }

此页面解释了它,但我不确定如何解释数据: https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.heart_rate_measurement.xml

谢谢。

1 个答案:

答案 0 :(得分:5)

  

心率是:16-40-20-04

第一个字节是0x16,它是Flags的{​​{1}}值字段。其二进制形式为heart_rate_measurement,第一位(最低有效位)为0001_0110位,此处为Heart Rate Value Format,表示在0之后的心率字节。在这里,心率为Flags,即每分钟0x40次(bpm)(十进制形式为64)。第四位为64位,此处为RR-Interval,表示存在一个或多个1值。 RR-Interval值由两个字节表示。这里有一个RR-Interval值,它是RR-Interval(按照LSO到MSO的顺序)。

  

心率为:16-40-15-04-6D-02-8C-01-0C-04-24-04-AB-03-7B-02-B4-01

0x0420到结尾有八个RR-Interval值。

  

心率是:06-3D

0x15值字段的第四位为Flags位,此处为RR-Interval,表示0值不存在。因此,只有心率值:RR-Interval

另见关贸总协定heart rate characteristic specification