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不正确

修复以上问题后,我开始收集数据。谢谢!!