2017-07-21 8 views
1

私はnrf51822 sdk130(セントラルデバイス)とnrf51822 sdk110(周辺デバイス)を使用します。私は接続せずに中央デバイスを使用して周辺機器のrssi値を連続的に取得したい。通常、button_handler関数を使用してscan_start関数を開始します。接続確立が発生します。しかし、私はそれをしたくないです。ボタンを押さずにデバイスを自動的に接続したい(button_handler機能なし)。そして、私はそれがブルートゥース信号の範囲を残すまで、デバイスが再接続しないようにしたい(KEYLESS GO - Mercedesのように思う)。出来ますか?BLE中央デバイスからBLE周辺デバイスに接続せずにRSSIを連続的に取得するにはどうすればよいですか?

答えて

1

周辺機器から接続不可能な広告を送信することができます。これは、接続されていない状態でいくつかの情報をブロードキャストするためのものです。この中央デバイスを使用することにより、周辺機器の広告のrssiを読み取ることができる。あなたの質問の2番目の部分はあまり明確ではありません。中央のアプリケーションには広告が表示されないため、周辺機器の不在を検出することは可能です。

下記のパッシブスキャンシーケンスを参照してください。

enter image description here

enter image description here

は以下のアクティブ走査シーケンスを参照して、唯一の要件は、アクティブスキャナが、少なくとも一つのスキャン要求を送信しなければならないことです。パッシブスキャンVSアクティブ enter image description here

enter image description here

接続が確立されると、RSSIは、HCIコマンド以下使用して読み取ることができます。 enter image description here LE接続の関連セクションは次のとおりです。 enter image description here

+0

はい、私はRssi値を読み取ることができるように接続する必要があります。私は接続する前にrssiの値を読んでどこかに格納したい(配列にすることができる)。ボタンを押すと、関数 "button_handler"のために関数 "scan_start"がトリガされます。しかし、私は接続を望んでいません。実際には、接続する正確な時刻を判断できるようにしたいと考えています。そのため、接続せずにrssi値を連続的に測定したいと考えています。 – Purgoufr

+0

LE広告レポートイベントは、dbmのRSSI値を示していますが、それは十分ではありませんか?つまり、RSSI値を測定するために接続する必要はありません。 –

+0

あなたが提供した情報に感謝します。しかし残念ながら、現在のプロジェクトではアクティブスキャンを使用しています。アクティブとパッシブの両方を同時にスキャンできますか? – Purgoufr

関連する問題