Bluetooth LE с характеристикой шифрования / аутентификации уведомить не возможно? - PullRequest
0 голосов
/ 27 апреля 2019

Глядя на bluez API dbus , кажется, что невозможно иметь характеристику с «уведомлением», на которую только парные устройства могут подписываться в зашифрованном виде (так что-то вроде «шифровать-аутентифицируемый-уведомлять» «).

Есть ли способ сделать это? Или это ограничение bluez? Или, может быть, даже вообще не поддерживается Bluetooth?

1 Ответ

1 голос
/ 29 апреля 2019

Фактически это поддерживается как Bluetooth Low Energy, так и API BlueZ, однако необходимо применить свойства к дескриптору конфигурации характеристики клиента (CCCD) , а не к самой характеристике.

Для уточнения, чтобы характеристика была уведомляемой / индицируемой, она должна иметь дескриптор CCCD как часть этой характеристики. Например, для характеристики частоты сердечных сокращений имеется сопроводительный дескриптор CCCD, который можно использовать для включения / отключения уведомлений или показаний. Запись 0100 в дескриптор включает уведомления, запись 0200 включает индикации, а запись 0000 отключает оба уведомления / индикации.

Теперь, если вы хотите, чтобы только сопряженные устройства могли включать уведомления, вам нужно изменить свойства этого дескриптора, чтобы он не был "открытым". API для этого доступен здесь , и вы можете, например, установить свойство «read, encrypt-write», что означает, что вы можете читать значение дескриптора в обычном режиме, но для записи в это и включить уведомления, вам придется сопрягаться с ним.

Пожалуйста, посмотрите на следующие ссылки, которые могут быть полезны

Надеюсь, это поможет.

...