Я использую модуль Adafruit Fear Ble для Tinker с.

Вместе с ним идет набор AT-команд, который я использую для создания настраиваемой службы и характеристики с ней. Я использую опцию уведомления. В боковом коде iOS говорится, что характеристика не уведомляет. Я немного погуглил, и некоторые люди сказали, что для уведомления характеристики необходим дескриптор. Я добавил один, но все равно безуспешно.

Вот сторона adafruit кода -

AT+GATTADDSERVICE=UUID128= 3d-e8-3e-34-dc-98-43-d0-87-de-3d-97-73-8b-ba-b6
AT+GATTADDCHAR=UUID=0xABCD, PROPERTIES=0x10, MIN_LEN=2, VALUE='01', DATATYPE=1, DESCRIPTION=TEST, PRESENTATION=17-00-AC-27-01-00-00

Я вижу в серийном мониторе, что его успешно. После этого я пишу в модуль BLE каждые несколько миллисекунд.

На стороне iOS вот журнал, который я получаю -

Characteristics: [<CBCharacteristic: 0x2817a4180, UUID = ABCD, properties = 0x10, value = (null), notifying = NO>] 

Уведомление = NO в описании отладки указывает, что вы не включали уведомления для этой характеристики (то есть его {{{x0}} - {{x1}}). Это не значит, что характеристика не поддерживает не

1
SFlow 8 Окт 2020 в 19:50

1 ответ

Лучший ответ

notifying = no в описании отладки указывает, что вы не включили уведомления для этой характеристики (т. е. его свойство isNotifying равно false). Это не значит, что характеристика не поддерживает уведомления.

Чтобы включить уведомления, необходимо позвонить в setNotifyValue(true, for: characteristic).

Затем вам позвонят делегату didUpdateNotificationState. обратный вызов, чтобы сообщить вам, были ли уведомления успешно включены или нет.

2
Paulw11 8 Окт 2020 в 20:01