2016-08-07 1 views
1

모델링 된 심박수에 연결하는 프로그램을 작성했지만 데이터 해석 방법을 모르겠습니다.UWP GATT 심박수 모니터 특성 값 해석

심박수는 : 16-40-15-04-6D-02-8C-01-0C-04-24-04-AB-03-7B 여기서 상기 제 1 출력에서 ​​시작하는 샘플이며 -02-B4-01

심장 박동이다 : 16-40-20-04

심장 박동수는 다음과 같습니다 16-40-8F-03

심장 박동이 : 16-40-10- 04

...

01 23,516,

심장 박동이다 : 16-40-F7-03

심장 박동이다 : 16-40-05-04

심장 박동이다 : 16-40-31-04

심장 박동이다 : 16-40 - F8-02-47-01

심장 박동이다 : 16-40-A5-03

...

012 3,516,

심장 박동이다 : 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

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

이 -78-03 가져 데이터를 변환하는 코드

이 페이지는 그것을 설명하지만 데이터를 해석하는 방법을 잘 모르겠습니다 : https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.heart_rate_measurement.xml

당신을 감사합니다.

답변

4

심박수이다 : 첫번째 바이트 0x16이다 16-40-20-04

그것은 heart_rate_measurementFlags 값 필드이다. 이진 형식은 0001_0110이고, 첫 번째 비트 (최하위 비트)는 Heart Rate Value Format 비트입니다. 여기서 0은 1 바이트로 표시되는 Flags 다음의 심박수를 의미합니다. 여기에서 심박수는 0x40, 즉 64 박동 (bpm)입니다 (십진 양식은 64). 네 번째 비트는 RR-Interval 비트이며 여기서는 1입니다. 이는 하나 이상의 RR-Interval 값이 있음을 의미합니다. RR-Interval 값은 2 바이트로 표시됩니다. 여기에는 하나의 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 값 필드의 네 번째 비트는 0 여기, RR-Interval 비트, 즉 RR-Interval 값이 존재하지 않는 것을 의미한다. 따라서 심박수 값은 0x3D입니다.

도 참조하십시오. heart rate characteristic specification