iOS пропускает данные (в байтах) при чтении значения дескриптора с устройства BLE

Мы использовали corebluetooth фреймворк для получения данных с устройства BLE. Сканируем устройство BLE и устанавливаем соединение. Мы получаем услуги устройств BLE и получаем характеристики конкретных услуг.

Установите значение индикации характеристик с помощью метода setNotifyValue после того, как установленное значение индикации прочитало значение дескриптора дескриптора.

Мы успешно получили данные с нашего Bluetooth в didUpdateValueFor() метод. Но мы упустили некоторые данные из этого.

Наш Bluetooth отправляет 244 байта за один раз, но в iOS мы получаем только 182 байта за один раз. Так что не хватает значения при загрузке данных из этого.

Мы использовали код ниже для того же. Пожалуйста, дайте нам решение этого. Как получить полные данные с устройства Bluetooth или в рамках ядра iOSBluetooth, чтобы дать какое-то определенное количество байтов?

func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?){
    for Characteristics in service.characteristics!{
        if aCharacteristics.uuid.isEqual(CBUUID(string: “XXXXX-XXXXX-XX-XXXX”)) {
                peripheral.setNotifyValue(true, for: aCharacteristics)
            }
        }
    }

func peripheral(_ peripheral: CBPeripheral, didDiscoverDescriptorsFor characteristic: CBCharacteristic, error: Error?) {

        for disc in characteristic.descriptors!{
            if disc.uuid.isEqual(CBUUID(string: “XXXXX-XXX-XXXXXX”)){
                peripheral.readValue(for: disc)
            }

        }       
    }


func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?){
       let nsdataStr = NSData.init(data: characteristic.value!)
}

0 ответов

Другие вопросы по тегам