Как сделать данные BLE доступными для определенного приложения?

Я использовал пример BLE из здесь.

Но любое устройство может читать и записывать заявленные характеристики. Есть ли способ сделать данные недоступными для других устройств, кроме моего приложения. То, что я действительно хотел бы сделать, это что-то вроде SDP, а затем подключаться и обмениваться данными через RFCOMM, но кажется невозможным сделать это в esp32. Я сделал это с помощью библиотеки bluez в Linux, но в случае с esp32 я нашел только одну библиотеку btstack, которую невозможно использовать с esp-idf из-за отсутствия CMakeLists.txt. Есть ли способ добиться того, чего я хочу?

, 👍0


1 ответ


1

В общих чертах можно просто потребовать, чтобы клиент сначала прошел аутентификацию. Это потребует небольшого отклонения от примера, на который вы ссылаетесь (который на самом деле обрабатывает только чтение характеристики), чтобы обрабатывать несколько соединений и их состояние, но это должно быть довольно просто.

Похоже, что в библиотеке Arduino BLE отсутствует отправка довольно большого количества информации через обратные вызовы, поэтому вы просто знаете, что есть подключение или отключение или запись в характеристику, а не какие устройства это сделали. Это означает, что вы не сможете обрабатывать несколько подключений одновременно, но убедитесь, что вы сбрасываете состояние аутентификации всякий раз, когда вы получаете подключение или отключение, должно быть достаточно, чтобы никто, кроме вашего собственного клиента, не «разговаривал» с вашим устройством.

,

спасибо, я попробую реализовать этот поток и сообщу вам, как только смогу., @Ryosuke