私は Bluetooth プロトコルを研究しており、いくつかのデバイスから dBm で RSSI を読み取る位置システムを実装しています。システムは、既知の緯度と経度を持つ 3 つの固定局と移動局で実装されます。ポジショニングは、各フィックス ステーションから dBm で受信した電力と通常のポジショニング アルゴリズムを使用して、モバイル ステーションで実行されます。
システムの効率を上げるために、Bluetooth デバイスのいくつかのパラメータを変更する必要があります。このパラメーターは次のようになります。
問い合わせへの応答時間を短縮するために、修正ステーションの時間をスキャンします。
選択したデバイス (3 つの固定ステーション) からのみ問い合わせに応答するためのアクセス コードを問い合わせます。
他の何人か。
使用されているテクノロジに応じて、これを行うために使用できるシナリオがいくつかあります (一部は制限されています)。
Linux OS のステーション (パラメーターを変更しても問題ありません)、Android のモバイル ステーション (通常は Bluetooth ライブラリに機能があるようですが、Bluetooth 設定の変更は困難または不可能です) を修正します。参照: http://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html
Linux OS を実行しているすべてのステーション、およびモバイル ステーションで C++ を実行しています (ステーションを修正するためのシェル スクリプト hcitool から実行して設定を変更するのは簡単なようですが、リンクの dBm で必要な値で RSSI を取得するために C++ でソース コードを実装するのは難しいようですステーションをモバイル ステーションに固定します)。
厄介な方法。Linux OS とシェル スクリプトを実行しているすべてのステーション、シェル スクリプトの下で実行しているモバイル ステーションは、問い合わせ後に hcidump の出力リダイレクトから RSSI の値を解析します。
このシナリオに関連する有益な情報を見つけるのは非常に難しいようです。おそらく、あなたの誰かが最良のシナリオを選択し、どのように実装すべきかを説明するのを手伝ってくれるでしょう.
(何かがより良い方法で説明されていない場合は申し訳ありません..私の英語はひどいです..)
ありがとう。