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

Изучавам Bluetooth протокол и прилагам система за позициониране, четеща RSSI в dBm от някои устройства. Системата ще бъде реализирана с 3 фиксирани станции с известни географска ширина и дължина и мобилна станция. Позиционирането ще се извършва на мобилна станция с получената мощност в dBm от всяка фиксирана станция и типичния алгоритъм за позициониране.

За да се повиши ефективността на системата е необходимо да се променят някои параметри от Bluetooth устройства. Тези параметри могат да бъдат:

  • Времето за сканиране на станциите за фиксиране, за да се намали времето за отговор на запитвания.

  • Запитвания за кодове за достъп, за да получите отговор на запитвания само от избрани устройства (нашите 3 фиксирани станции)

  • Някои други.

Има някои сценарии, които могат да се използват за това в зависимост от използваните технологии (някои от тях са ограничени):

  • Фиксирани станции с Linux OS (няма проблем за промяна на параметрите), мобилна станция с Android (изглежда, че има само типични функции в своята Bluetooth библиотека, но настройката на bluetooth е трудна или невъзможна за промяна). Вижте: http://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html

  • Всички станции, работещи с Linux OS и C++ на мобилна станция (изглежда, че е лесно да се стартира от shell скриптове hcitool за станции за коригиране, променящи нашите настройки, но изглежда трудно да се внедри изходен код на C++, за да се получи RSSI с нашите стойности на нуждата за dBm връзки за фиксиране на станции на мобилна станция).

  • Гадният начин. Всички станции, работещи с Linux OS и шел скриптове, на мобилна станция, работещи под шел скриптове, анализират стойности от RSSI от пренасочване на изхода на hcidump след стартиращи запитвания.

Изглежда е много трудно да се намери полезна информация, свързана с този сценарий. Може би някой от вас може да помогне при избора на най-добрия сценарий и да опише как трябва да се приложи.

(Съжалявам, ако нещо не е обяснено по-добре.. английският ми е ужасен..)

Благодаря.


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


Отговори (1)


Съжалявам, не проследих всичко, което написахте, но мисля, че първата стъпка е да преминете към HCI слоя на фиксираните станции. Това е доста лесно за постигане и ви дава доста контрол.

Както споменахте, hcitool е много полезен, но няма значение какъв инструмент или език използвате. Имате достъп до HCI команди от всеки език.

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

Но това е само пример - използвайте какъвто стек ви е удобно, стига да можете да стигнете до HCI слоя. (За да преминете през HCI слоя, трябва да работите с конкретен чипсет и да заредите код директно в Bluetooth чипсета.)

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

person Tom    schedule 15.04.2012