Записываются ли данные в характеристику BLE после записи - PullRequest
0 голосов
/ 01 июня 2018

У меня есть работающее приложение BLE, которое считывает данные со сканера и отправляет конфигурацию на сканер до начала чтения.Я использую следующий код для отправки строки на сканер.

let configItem = "BD1"

let data = configItem?.data(using: String.Encoding.ascii)

peripheral.writeValue(data!, for: characteristic, type: .withResponse)

Я печатаю имя и значение характеристики при обратном вызове

func peripheral(_:didWriteValueFor:CBCharacteristic:Error?)
{
    let value = String(data: characteristic.value!, encoding: .ascii)!

    print("Wrote characteristic value: " + value + "; for characterisitc: " + characteristic.uuid.description)
}

Напечатанное значение не является данными конфигурацииЯ написал, но какой-то старый сканер прочитал данные.Удивительно, но те же самые старые прочитанные данные присутствуют даже после закрытия приложения.

Так ли верна характеристика, отправленная в обратном вызове, и содержит ли она записанные данные?

1 Ответ

0 голосов
/ 02 июня 2018

Оказывается, это особенность устройства.Сканер не возвращает ответ на характеристическую запись, но я все равно получаю обратный вызов, поэтому данные просто устарели.И тестирование показывает, что строки конфигурации никогда не попадали в сканер.Решением для этого случая является отправка данных ".withoutResponse".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...