Для связи с устройством я сейчас использую peripheral.discoverServices
и peripheral.discoverCharacteristics
, чтобы обнаружить все доступные характеристики, и сопоставляю их со списком UUID известных характеристик (согласно для примера пиццы вБлагородный репозиторий ).
Это означает, что я подключаюсь к своему устройству, обнаруживаю и сопоставляю характеристики, пишу и читаю те, которые мне нужны (включая подписку на характеристику, которой требуется некоторое время для возврата ответа, предотвращая необходимость опроса).
Все это работает как положено.Но так как мне нужно опрашивать более 30 различных устройств через равные промежутки времени, мне кажется странным, что каждый раз для каждого устройства приходится проходить через часть обнаружения.
В попытке пропустить обнаружение и ускоритьПроцесс, который я пытался использовать характеристики маркеров (которые одинаковы для всех устройств)Они позволяют мне общаться сразу после подключения к устройству, используя peripheral.readHandle(...)
и peripheral.writeHandle(...)
.вместо того, чтобы пройти через открытие в первую очередь.Но, похоже, этот способ позволяет только читать и писать, а не подписываться, что я действительно предпочитаю выше опроса.
Итак, вопрос в том,есть ли способ подписаться на характеристику через ее дескриптор или получить характеристику дескриптора напрямую, чтобы я мог подписаться на нее, вместо того чтобы каждый раз проходить поиск?