В iOS отсутствуют данные (байт) при чтении значения дескриптора с устройства BLE - PullRequest
0 голосов
/ 12 ноября 2018

Мы использовали corebluetooth framework для получения данных с устройства 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!)
}
...