如何解码葡萄糖测量特性(蓝牙)的响应
How to decode response from Glucose Measurement Characteristic (Bluetooth)
我有一个 react-native 应用程序,我正在尝试从 Accu-Chek Guide 设备获取葡萄糖测量值。
我对 BLE 的了解有限,这个 Whosebug 问题对我理解蓝牙和检索葡萄糖测量有很大帮助。
所以,我在我的代码中做了什么:
1、连接BLE外设
2、监控特性Glucose Feature
& Record Access Control Point
3、发送0x0101 (Report stored records | All records)
到Record Access Control Point
4、解码响应
到目前为止我有 1-3 个工作,但我不知道如何解码葡萄糖特征的响应:
Glucose Measurement
的通知响应
[27, 4, 0, 195, 164, 7, 7, 14, 11, 6, 5, 90, 2, 119, 194, 176, 195, 184, 0, 0]
通知 Record Access Control Point
[6, 0, 1, 1]
我假设这是蓝牙 SIG 采用的连续血糖监测服务 (CGMS) 配置文件,其规范可从以下网址获得:
https://www.bluetooth.com/specifications/gatt/
查看 XML 的 Glucose Measurement
特征,提供有关数据结构的更多详细信息。
解压数据需要做一些工作。
例如,第一个字节存储名为 flags
的第一个字段的信息。但是,您需要查看这些不同标志的前 5 位。
下一个字段是“序列号”,它是一个 uint16
,因此需要两个字节。这里值得注意的是,蓝牙通常使用 little endian.
接下来是 Base Time
字段,它引用 https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Characteristics/org.bluetooth.characteristic.date_time.xml,它将占用接下来的 7 个字节。
因为特征中的 9 个字段中的某些字段占用超过 1 个字节,这就是为什么您看到这 9 个字段占用 20 个字节的原因。
我有一个 react-native 应用程序,我正在尝试从 Accu-Chek Guide 设备获取葡萄糖测量值。
我对 BLE 的了解有限,这个 Whosebug 问题对我理解蓝牙和检索葡萄糖测量有很大帮助。
所以,我在我的代码中做了什么:
1、连接BLE外设
2、监控特性Glucose Feature
& Record Access Control Point
3、发送0x0101 (Report stored records | All records)
到Record Access Control Point
4、解码响应
到目前为止我有 1-3 个工作,但我不知道如何解码葡萄糖特征的响应:
Glucose Measurement
[27, 4, 0, 195, 164, 7, 7, 14, 11, 6, 5, 90, 2, 119, 194, 176, 195, 184, 0, 0]
通知 Record Access Control Point
[6, 0, 1, 1]
我假设这是蓝牙 SIG 采用的连续血糖监测服务 (CGMS) 配置文件,其规范可从以下网址获得:
https://www.bluetooth.com/specifications/gatt/
查看 XML 的 Glucose Measurement
特征,提供有关数据结构的更多详细信息。
解压数据需要做一些工作。
例如,第一个字节存储名为 flags
的第一个字段的信息。但是,您需要查看这些不同标志的前 5 位。
下一个字段是“序列号”,它是一个 uint16
,因此需要两个字节。这里值得注意的是,蓝牙通常使用 little endian.
接下来是 Base Time
字段,它引用 https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Characteristics/org.bluetooth.characteristic.date_time.xml,它将占用接下来的 7 个字节。
因为特征中的 9 个字段中的某些字段占用超过 1 个字节,这就是为什么您看到这 9 个字段占用 20 个字节的原因。