这里的所有CoreBlooth都是新手。我已经成功地编写了一个小应用程序来连接到Wahoo Blue HR心率监视器,并检索我的心率等bpm。我使用了以下教程,但重写了代码为swift。
Link to tutorial
我现在正在尝试写一个简单的应用程序来从我的蓝牙血压读取器中检索血压读数。正在讨论的模型是iHealth BP5。
当我使用以下代码扫描此设备时,我什么也得不到。
func centralManagerDidUpdateState(central: CBCentralManager!) {
if central.state == CBCentralManagerState.PoweredOff {
println("CoreBluetooth BLE hardware is powered off")
}
else if central.state == CBCentralManagerState.PoweredOn {
println("CoreBluetooth BLE hardware is powered on and ready")
let IHEALTHBP5_BP_DEVICE_INFO_SERVICE_UUID = CBUUID(string:"1810")
let services = [IHEALTHBP5_BP_DEVICE_INFO_SERVICE_UUID]
centralManager!.scanForPeripheralsWithServices(services, options: nil)
}}
我显然已经将服务UUID更改为血压监视器,并使用运行LightBlue并启动血压服务的iPad进行了检查。它可以很好地用于模拟BP服务的iPad,但不能用于BP5设备本身?
我一直在读到一些关于制造商能够隐藏设备的东西?这会是正在发生的事情吗?
我注意到,BP5设备必须通过iOS蓝牙设置进行“配对”,才能与官方应用程序配合使用,而心率监测器则不能。这是否表明心率监视器会广播给除BP5以外的任何人,连接类型更安全?
如果术语不正确,我很抱歉,但我是蓝牙世界的新手。
如有任何帮助或指导,欢迎光临。
问候
奥利
PS在蓝牙设置应用程序中检查设备是否“连接”后,设备上的蓝牙指示灯从闪烁变为稳定,我使用了以下方法,但返回的结果为零。
let connectedPeripherals = centralManager!.retrieveConnectedPeripheralsWithServices(services)
println("Number of Connected Devices : \(connectedPeripherals.count)")发布于 2014-11-21 05:00:46
该产品的web page声明它使用“无线通信:蓝牙V3.0+EDR 2类SPP",这是一个”传统“蓝牙串行端口协议,而不是蓝牙低能耗/蓝牙4.0。这与您所描述的需要配对设备和核心蓝牙不可见的设备相匹配。
此类型的设备由外部附件框架管理。您需要识别他们在MFi程序下注册的供应商ID,然后查找有关其协议的文档或对其协议进行反向工程,因为它与使用GATT协议的BLE监视器不同。
https://stackoverflow.com/questions/27043957
复制相似问题