【发布时间】:2023-01-18 15:00:56
【问题描述】:
我正在尝试制作一个 flutter 应用程序来从我的智能手表中获取数据(心率、spo2、……)。我不知道它是 wearOS 还是 tizen 还是什么。是名牌fire boltt的smartwatch。我目前正在使用 flutter_ble 实现蓝牙功能。我正在从蓝牙客户端获取服务和特性。但无法弄清楚这些数据中的哪些对应于什么。我该如何解决这个问题?
这是我收到的数据示例之一:
BluetoothService{uuid: 0000180f-0000-1000-8000-00805f9b34fb,
deviceId: F9:CE:08:3E:0B:31,
isPrimary: true,
characteristics: [BluetoothCharacteristic{
uuid: 00002a19-0000-1000-8000-00805f9b34fb,
deviceId: F9:CE:08:3E:0B:31,
serviceUuid: 0000180f-0000-1000-8000-00805f9b34fb,
secondaryServiceUuid: null,
properties: CharacteristicProperties{
broadcast: false,
read: true,
writeWithoutResponse: false,
write: false,
notify: true,
indicate: false,
authenticatedSignedWrites: false,
extendedProperties: false,
notifyEncryptionRequired: false,
indicateEncryptionRequired: false},
descriptors: [BluetoothDescriptor{
uuid: 00002902-0000-1000-8000-00805f9b34fb,
deviceId: F9:CE:08:3E:0B:31,
serviceUuid: 0000180f-0000-1000-8000-00805f9b34fb,
characteristicUuid: 00002a19-0000-1000-8000-00805f9b34fb,
value: []}],
value: []],
includedServices: []}
【问题讨论】:
-
您可以添加收到的结果吗?
-
我假设您为此需要 0x1822(脉搏血氧计)和 0x180D(心率)。此页面将包含每个的规范:bluetooth.com/specifications/specs 使用标记为“服务”而不是“配置文件”的文档(HRS 和 PLXS)。蓝牙站点有时有点混乱。你想要的文件是规格不是测试套件。您会在相关页面上找到“立即下载”按钮。例如:bluetooth.com/specifications/specs/pulse-oximeter-service-1-0-1
-
当您下载 31 页的 SPO2 规范时,您可能会不知所措。这很正常;不要担心。略读;看看什么是有意义的,什么是没有意义的,然后一次迈出这一步。从心率开始,因为您可能会找到相关的教程(如果不是在实际代码中,您已经找到了如何从概念上解析它的答案)。获得一些数据和代码后,开始针对每个步骤提出问题。这就是 SO 最有帮助的地方:有明确答案的重点问题。不幸的是,SO 偶然发现了开放式问题。蓝牙其实很难,但你可以做到。
-
您的应用程序在运行吗?您的源代码在某处可用吗?