0

我正在实施一个 iOS 演示应用程序来读取来自 Polar、Wahoo 等 HR 监视器的数据。我发现并连接/配对(编辑)设备并从多个同时蓝牙连接中成功获取数据。

现在我的要求是从更多的 BLE 设备(数量超过 20 个)收集数据。我尝试使用 swift BLE API,它在没有/之前没有配对的情况下不提供心率数据。此外,蓝牙不适用于(似乎)这个数量的同时连接。有人建议我这样做:

“如果你只对基本心率数据感兴趣,也就是说每分钟的心跳次数,那么我假设你可能能够处理 40 个单位,因为你不必实际连接这些单位。听听就足够了到广播消息,因为广播消息包括每个设备的每分钟节拍值。”

这意味着我可以从广播消息中获取基本的心率数据,而无需配对设备。我的疑问:

Q1:我真的可以在不配对(仅通过发现)的情况下获得基本的心率数据吗?

Q2:原生 BLE API 支持这个吗?

Q3:有什么方法/API/SDK/例子来实现这个目的?

Q4:如果我能每秒钟获取一次数据会更好。

Q5:我可以从 HealthKit 获得任何帮助吗?

----------------更新1 ----------------

当我发现 BLE 设备使用

func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) { }

我找到了 6 个值的 kCBAdvDataManufacturerData 数组。

我按照此链接从 Polar H10 设备的 kCBAdvDataManufacturerData 键中提取 HR 数据, 在 Swift 上从 kCBAdvDataManufacturerData 中提取数据

但我失败了,如何做到这一点?

----------------更新2 ----------------

终于找到了解决方案,如果有人需要,请点击此链接。

https://github.com/polarofficial/polar-ble-sdk/issues/103

提前致谢。

4

1 回答 1

2

你朋友指的广播信息是广告数据,相当有限(31字节),也取决于你是否控制了你的蓝牙设备中的固件。

A1:有可能,如果硬件在广告数据中提供了该信息

A2:可以,可以通过 CBCentralManager 的委托方法获取广告数据

A3:如果你已经实现了 BLE 连接到一个设备,你可能已经知道如何使用 CBCentralManager,但是如果你需要一个链接,这里有一个CoreBluetooth 教程

A4:我认为您无法控制发现某个外围设备的频率

A5:我从来没有用过 HealthKit,所以我不能回答这个问题

于 2020-10-22T08:19:48.610 回答