Есть ли другой способ получить значения RSSI, кроме blueZ (Pybluez) - PullRequest
8 голосов
/ 24 апреля 2019

Я очень тяжело борюсь с этим, поэтому любая помощь / указатели будут с благодарностью.

Я пытался получить точные значения из RSSI с помощью pyblueZ

Я получаю несколько хороших результатов, но это то, чего я не хочу (из blueZ doc):

Для контроллера BR / EDR в качестве дескриптора используется Connection_Handle параметр команды и возвращаемый параметр. Параметр RSSI возвращает разница между измеренным показателем силы принятого сигнала (RSSI) и пределы Золотого диапазона мощности приема для Connection_Handle к другому контроллеру BR / EDR. Connection_Handle должен быть Connection_Handle для соединения ACL. Любой положительный RSSI Значение, возвращаемое контроллером, указывает, сколько дБ выше RSSI верхний предел, любое отрицательное значение указывает, сколько дБ RSSI ниже нижнего предела. Нулевое значение указывает, что RSSI находится внутри Золотой диапазон получения энергии.

Другими словами, когда приемник находится рядом с генератором, значение RSSI все равно будет 0 (возможно, диапазон 2/3 метра) И это действительно беспокоит меня.

Я использовал метод HCI_Read_RSSI от BlueZ, здесь есть пример: https://github.com/ewenchou/bluetooth-proximity

Другой способ получить значение RSSI - это получить его с событием: HCI_Inquiry_Result_with_RSSI , здесь я получаю истинное значение RSSI, НО, это режим обнаружения, и он довольно медленный и возвращает мне mac всех устройств адреса. И этого я тоже не хочу.

С моими знаниями и тем фактом, что я не могу заставить Google найти то, что я хочу, я дошел до того, что застрял.

Итак, мои вопросы:

  1. В любом случае, нужно ли копаться в bluetooth API, предоставляемом blueZ? Я не могу найти это нигде !! И не начинайте говорить со мной об их документации, это почти не существует !!

  2. Есть ли способ заставить HCI_Inquiry_Result_with_RSSI работать с одним Mac-адресатом?

  3. Есть ли другой способ получить значения RSSI? Я попробовал hcitool (такая же проблема, как кажется?), L2ping (я получаю 100% -ную потерю при пинге после 4/5 успешного, я не копался в этом)

  4. Может быть, мой ключ немного подстроен?

  5. Будет ли по-другому, если я попытаюсь обнаружить RSSI с BLE-устройств?

(Сейчас я хочу придерживаться Bluetooth, но если вы подумаете о любых других радиочастотных сигналах, которые я могу использовать, просто упомяните об этом, и я буду иметь в виду, что буду использовать его позже.)

Спасибо всем, кто зашел и прочитал мой выпуск.

И извините за мой английский, это был ... долгий день.

Мир

Редактировать: с помощью Bluez я могу обнаружить BT classic или запросить RSSI для конкретного адреса (но, тем не менее, получаю значения за пределами золотого диапазона). Я также могу обнаружить BLE, но я не могу найти ничего, чтобы попросить RSSI для конкретного адреса (для BLE) ...

...