Текущее состояние
- Сканирование работает
- Несколько периферийных устройств успешно подключаются
- вызывается для каждого устройства
Код: Выделить всё
didConnect - Обнаруживаются службы и характеристики
- никогда не срабатывает
Код: Выделить всё
didUpdateValueFor characteristic - не дает ответа
Код: Выделить всё
readValue(for:) - не дает видимого результата
Код: Выделить всё
writeValue(_:for:type:) - Потоковые данные не принимаются от устройств
Поставщик предоставляет SDK, но:
- Он поддерживает только одно устройство одновременно
- Он не допускает нескольких одновременных подключений
Протокол устройства требует отправки команд инициализации на основе HEX, прежде чем он начнет потоковую передачу данных чертежа.
Что мы делаем
После выявления характеристик мы:
Код: Выделить всё
peripheral.setNotifyValue(true, for: characteristic)
peripheral.readValue(for: characteristic)
peripheral.writeValue(data, for: characteristic, type: .withResponse)
- никогда не вызывается
Код: Выделить всё
didUpdateValueFor - не срабатывает
Код: Выделить всё
didWriteValueFor - Данные не получены
- Если периферийное устройство подключается, но обновления характеристик не получены, каковы наиболее распространенные причины?
- Обязательно ли наличие характеристики Свойство .notify для потоковой передачи данных?
- Если SDK поставщика поддерживает только одно устройство, может ли встроенное ПО ограничить несколько активных потоков данных?
- Как мы можем проверить, что мы записываем правильные характеристики без документации поставщика?
- Может ли CoreBluetooth надежно обрабатывать несколько высокочастотных потоков данных периферийные устройства?
Соединения выполняются успешно, но характерная связь (чтение/запись/уведомление) не работает.
Любые рекомендации по диагностике этого типа сбоя связи BLE будут оценены.
Подробнее здесь: https://stackoverflow.com/questions/798 ... oth-core-f
Мобильная версия