2016-08-07 33 views
1

我寫了一個程序,連接到心率模型,但我不知道如何解釋數據。 這裏是從第一輸出開始的樣品:UWP GATT心率監測器特徵值解釋

心臟速率是:16-40-15-04-6D-02-8C-01-0C-04年4月24日-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

謝謝。

回答

4

心臟速率爲:16-40-20-04

第一個字節爲0x16,它是heart_rate_measurementFlags值字段。它的二進制形式是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年4月24日-AB-03-7B-02-B4-01

0x15到最後有8個RR間隔值。

心臟率:06-3D

Flags值字段的第四位是RR-Interval位,這裏是0,這意味着RR-Interval值不存在。所以只有心率值:0x3D

另請參閱GATT heart rate characteristic specification