UWP GATT心率监测仪特征值解读
UWP GATT heart rate monitor characteristic value interpretation
我编写了一个连接到建模心率的程序,但我不知道如何解释数据。
这是从第一个输出开始的示例:
heart rate is : 16-40-15-04-6D-02-8C-01-0C-04-24-04-AB-03-7B-02-B4-01
heart rate is : 16-40-20-04
heart rate is : 16-40-8F-03
heart rate is : 16-40-10-04
...
heart rate is : 16-40-F7-03
heart rate is : 16-40-05-04
heart rate is : 16-40-31-04
heart rate is : 16-40-F8-02-47-01
heart rate is : 16-40-A5-03
...
heart rate is : 16-40-D4-02
heart rate is : 16-40-FE-03
heart rate is : 16-40-15-05
heart rate is : 16-3C-97-03
heart rate is : 16-3D-64-03-78-03
heart rate is : 16-3D-4F-04
heart rate is : 06-3D
...
heart rate is : 16-3E-3D-04
heart rate is : 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
谢谢。
heart rate is : 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的顺序)。
heart rate is : 16-40-15-04-6D-02-8C-01-0C-04-24-04-AB-03-7B-02-B4-01
从0x15
到末尾有八个RR-Interval值。
heart rate is : 06-3D
Flags
值域的第4位是RR-Interval
位,这里是0
,表示不存在RR-Interval
个值。所以只有心率值:0x3D
.
我编写了一个连接到建模心率的程序,但我不知道如何解释数据。 这是从第一个输出开始的示例:
heart rate is : 16-40-15-04-6D-02-8C-01-0C-04-24-04-AB-03-7B-02-B4-01
heart rate is : 16-40-20-04
heart rate is : 16-40-8F-03
heart rate is : 16-40-10-04
...
heart rate is : 16-40-F7-03
heart rate is : 16-40-05-04
heart rate is : 16-40-31-04
heart rate is : 16-40-F8-02-47-01
heart rate is : 16-40-A5-03
...
heart rate is : 16-40-D4-02
heart rate is : 16-40-FE-03
heart rate is : 16-40-15-05
heart rate is : 16-3C-97-03
heart rate is : 16-3D-64-03-78-03
heart rate is : 16-3D-4F-04
heart rate is : 06-3D
...
heart rate is : 16-3E-3D-04
heart rate is : 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
谢谢。
heart rate is : 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的顺序)。
heart rate is : 16-40-15-04-6D-02-8C-01-0C-04-24-04-AB-03-7B-02-B4-01
从0x15
到末尾有八个RR-Interval值。
heart rate is : 06-3D
Flags
值域的第4位是RR-Interval
位,这里是0
,表示不存在RR-Interval
个值。所以只有心率值:0x3D
.