Протокол Bluetooth и реализация системы позиционирования с четырьмя устройствами

Я изучаю протокол Bluetooth и внедряю систему позиционирования, считывающую RSSI в дБм с некоторых устройств. Система будет реализована с 3 фиксированными станциями с известной широтой и долготой и мобильной станцией. Позиционирование будет выполняться на мобильной станции с мощностью, принимаемой в дБм от каждой фиксированной станции, и алгоритмом типичного определения местоположения.

Для повышения эффективности системы необходимо изменить некоторые параметры Bluetooth-устройств. Этими параметрами могут быть:

  • Время сканирования на ремонтных станциях для сокращения времени ответа на запросы.

  • Запрашивает коды доступа, чтобы получать ответы на запросы только от выбранных устройств (наши 3 фиксированные станции)

  • Некоторые другие.

Есть несколько сценариев, которые можно использовать для этого в зависимости от используемых технологий (некоторые из них ограничены):

  • Исправить станции с ОС Linux (без проблем изменить параметры), мобильную станцию ​​с Android (кажется, что она обычно работает в своей библиотеке Bluetooth, но настройки Bluetooth трудно или невозможно изменить). См.: http://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html

  • Все станции под управлением ОС Linux и C++ на мобильной станции (похоже, их легко запустить из сценариев оболочки hcitool для исправления станций, изменяющих наши настройки, но кажется сложным реализовать исходный код на C++, чтобы получить RSSI с нашими требуемыми значениями на дБм ссылок фиксировать станции на мобильной станции).

  • Гнусный способ. Все станции, работающие под управлением ОС Linux и сценариев оболочки, на мобильных станциях, работающих под управлением сценариев оболочки, анализируют значения из RSSI из перенаправления вывода hcidump после запросов обеда.

Кажется, очень сложно найти полезную информацию, связанную с этим сценарием. Возможно, кто-то из вас поможет выбрать лучший сценарий и описать, как его реализовать.

(Извините, если что-то не объяснил в лучшем виде.. мой английский ужасен..)

Спасибо.


person amartinezi    schedule 15.04.2012    source источник


Ответы (1)


Извините, я не следил за всем, что вы написали, но я думаю, что первым шагом будет переход к уровню HCI на стационарных станциях. Это довольно просто выполнить и дает вам достаточный контроль.

Как вы упомянули, hcitool очень полезен, но не имеет значения, какой инструмент или язык вы используете. Вы можете получить доступ к командам HCI с любого языка.

Например, я сделал что-то подобное с Voyage Linux на компьютере с ALIX. Voyage основан на Debian, поэтому теперь проблема с загрузкой BlueZ, PyBluez и Python. Python упростил быстрое создание прототипа решения, которое при необходимости можно преобразовать в C++ позже. (Подробнее здесь.)

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

На мобильном устройстве вы можете быть сильно ограничены: если вы пытаетесь реализовать потенциал в реальном мире. Если это только для лаборатории, вы должны получить рутированные устройства Android, которые используют стандартный стек Bluez, а затем, как и на фиксированных устройствах, вы можете получить доступ к интерфейсу HCI. В конце концов, Android — это просто Linux, поэтому вы можете делать все, что хотите, если у вас есть root.

person Tom    schedule 15.04.2012