iOS 中的 BlueCap 套件 BLE 实施
BlueCap Kit BLE imlementation in iOS
我正在使用 swift 通过 BLE 连接到外围设备并在 iOS 应用程序中收集数据。我使用的包装器最初是由 Troy Stribling 编写的。 https://github.com/troystribling/BlueCap.
我在采用我的设备特性来匹配他使用的风格时遇到了问题。该应用程序工作到它发现设备的程度,但是当我尝试订阅特征以收集数据时它失败了。这是我的 ViewController.swift 代码示例。任何建议将不胜感激:
// discover services and characteristics
let peripheralDiscoveredFuture = peripheralConnectFuture.flatmap{(peripheral, connectionEvent) -> Future<Peripheral> in
if peripheral.state == .Connected {
return peripheral.discoverPeripheralServices([serviceUUID])
} else {
let promise = Promise<Peripheral>()
promise.success(peripheral)
return promise.future
}
} // end of flatmap
peripheralDiscoveredFuture.onSuccess {peripheral in
if let service = peripheral.service(serviceUUID) {
self.HaIdCharacteristic = service.characteristic(hearingAidUUID)
self.HaBatteryCharacteristic = service.characteristic(batteryUUID)
self.HaSideCharacteristic = service.characteristic(sideUUID)
self.SsiNextCharacteristic = service.characteristic(ssiNextUUID)
}
}
// get the characteristic value
let readEnabledFuture = peripheralDiscoveredFuture.flatmap {__ -> Future<Characteristic> in
if let HaIdCharacteristic = self.HaIdCharacteristic {
return HaIdCharacteristic.read(10.0)
}else {
let promise = Promise<Characteristic>()
promise.failure(CentralError.enabledCharacteristicNotFound)
return promise.future
}
}
readEnabledFuture.onSuccess {characteristic in
self.updateEnabled(characteristic)
}
您确定您拥有正确的特征 UUID 吗?您可以使用像 LightBlue 这样的应用程序来仔细检查。
上面的代码运行良好。从@SnarfSnarf 得到提示后,我使用嗅探器应用程序找到我的 UUID。我有几个问题:
1. 我的设备配置不正确。
2.特征UUID不正确
修复以上问题后,我开始收集数据。谢谢!!
我正在使用 swift 通过 BLE 连接到外围设备并在 iOS 应用程序中收集数据。我使用的包装器最初是由 Troy Stribling 编写的。 https://github.com/troystribling/BlueCap.
我在采用我的设备特性来匹配他使用的风格时遇到了问题。该应用程序工作到它发现设备的程度,但是当我尝试订阅特征以收集数据时它失败了。这是我的 ViewController.swift 代码示例。任何建议将不胜感激:
// discover services and characteristics
let peripheralDiscoveredFuture = peripheralConnectFuture.flatmap{(peripheral, connectionEvent) -> Future<Peripheral> in
if peripheral.state == .Connected {
return peripheral.discoverPeripheralServices([serviceUUID])
} else {
let promise = Promise<Peripheral>()
promise.success(peripheral)
return promise.future
}
} // end of flatmap
peripheralDiscoveredFuture.onSuccess {peripheral in
if let service = peripheral.service(serviceUUID) {
self.HaIdCharacteristic = service.characteristic(hearingAidUUID)
self.HaBatteryCharacteristic = service.characteristic(batteryUUID)
self.HaSideCharacteristic = service.characteristic(sideUUID)
self.SsiNextCharacteristic = service.characteristic(ssiNextUUID)
}
}
// get the characteristic value
let readEnabledFuture = peripheralDiscoveredFuture.flatmap {__ -> Future<Characteristic> in
if let HaIdCharacteristic = self.HaIdCharacteristic {
return HaIdCharacteristic.read(10.0)
}else {
let promise = Promise<Characteristic>()
promise.failure(CentralError.enabledCharacteristicNotFound)
return promise.future
}
}
readEnabledFuture.onSuccess {characteristic in
self.updateEnabled(characteristic)
}
您确定您拥有正确的特征 UUID 吗?您可以使用像 LightBlue 这样的应用程序来仔细检查。
上面的代码运行良好。从@SnarfSnarf 得到提示后,我使用嗅探器应用程序找到我的 UUID。我有几个问题: 1. 我的设备配置不正确。 2.特征UUID不正确
修复以上问题后,我开始收集数据。谢谢!!