2017-04-20 12 views
0

私はラズベリーパイ3は、最新のRaspbianを実行している、と私は5.23から アップグレードのbluezを持っています。 5.43。 2秒間隔で広告するBLE デバイスに接続しようとしています。 gatttoolに というコードを書き、これらのデバイスに接続しようとしました。私は LE接続要求が2秒後にキャンセルされています。したがって、私は、アーカイブには約15カ月前からこのまたがっただし、以下の後のbluez 5不明な接続識別子

https://www.spinics.net/lists/linux-bluetooth/msg65434.html

を走った私の研究から

が0x02(不明な接続識別子)のステータスでLE接続完了メッセージを取得しますスレッド、解像度が見つかった場合、私は見ませんでした。

私は bluetoothctlを使用して私のコード、gatttoolユーティリティと同様にしてテストを実行しています。 2どこかのコードで秒のタイムアウト、おそらくカーネル側があるように見えます

 

HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7        [hci0] 21:45:51.917070 
     Type: Passive (0x00) 
     Interval: 60.000 msec (0x0060) 
     Window: 30.000 msec (0x0030) 
     Own address type: Public (0x00) 
     Filter policy: Ignore not in white list (0x01) 
> HCI Event: Command Complete (0x0e) plen 4            [hci0] 21:45:51.917819 
     LE Set Scan Parameters (0x08|0x000b) ncmd 1 
     Status: Success (0x00) 
HCI Event: Command Complete (0x0e) plen 4            [hci0] 21:45:51.918357 
     LE Set Scan Enable (0x08|0x000c) ncmd 1 
     Status: Success (0x00) 
> HCI Event: LE Meta Event (0x3e) plen 27            [hci0] 21:45:52.597503 
     LE Advertising Report (0x02) 
     Num reports: 1 
     Event type: Connectable undirected - ADV_IND (0x00) 
     Address type: Random (0x01) 
     Address: D3:67:2D:D1:46:46 (Static) 
     Data length: 15 
     Flags: 0x06 
      LE General Discoverable Mode 
      BR/EDR Not Supported 
     Company: FedEx Services (321) 
      Data: 070a111080d28004 
     RSSI: -63 dBm (0xc1) 
HCI Event: Command Complete (0x0e) plen 4            [hci0] 21:45:52.599626 
     LE Set Scan Enable (0x08|0x000c) ncmd 1 
     Status: Success (0x00) 
HCI Event: Command Status (0x0f) plen 4            [hci0] 21:45:52.600508 
     LE Create Connection (0x08|0x000d) ncmd 1 
     Status: Success (0x00) 
HCI Event: Command Complete (0x0e) plen 4            [hci0] 21:45:54.684146 
     LE Create Connection Cancel (0x08|0x000e) ncmd 1 
     Status: Success (0x00) 
> HCI Event: LE Meta Event (0x3e) plen 19            [hci0] 21:45:54.684361 
     LE Connection Complete (0x01) 
     Status: Unknown Connection Identifier (0x02) 
     Handle: 64 
     Role: Master (0x00) 
     Peer address type: Random (0x01) 
     Peer address: D3:67:2D:D1:46:46 (Static) 
     Connection interval: 67.50 msec (0x0036) 
     Connection latency: 0.00 msec (0x0000) 
     Supervision timeout: 420 msec (0x002a) 
     Master clock accuracy: 0x00 
@ Connect Failed: D3:67:2D:D1:46:46 (2) status 0x02 

:私は 下に表示されbtmonにおける同種の活性を参照してください。注意すべき

ことの一つは、私が接続するためにhcitoolを使用している場合、私はほとんどの時間のすべてを を接続することができる午前です。私はこれがL2CAPの層ではないことを知っていますが、私は 私が接続することができます参照してくださいすることができます。また

、私は1秒にBLEデバイスの広告間隔を変更した場合。私はうまく接続することができます。

は、誰もが、最近、この問題に遭遇しています(2秒の広告間隔の理由は、省電力である)、そしてそう持っている場合、任意の解像度がありましたか?

ありがとう

答えて

1

同じ問題があります。広告間隔を10秒から0.5秒に減らすことで問題は解決します。私はまた、バッテリーを節約するために、より長い間隔が必要です。私はRaspbianの古いビルド(2016-03-18-raspbian-jessieカーネル4.1.19-v7 +#858 SMP、bluez 5.23)を使ってもうまく動作することを知っていますが、まだ新しいビルドを稼働させることはできません。

UPDATE この記事を発見した後:私はに次の値が/ネット/ブルートゥース/ hci.hを含める変更https://www.spinics.net/lists/linux-bluetooth/msg67800.html

#define HCI_LE_CONN_TIMEOUT msecs_to_jiffies(22000) /* 22 seconds WAS 2 seconds */ 
 
#define HCI_LE_AUTOCONN_TIMEOUT msecs_to_jiffies(22000) /* 22 seconds WAS 2 seconds */

再コンパイル

、すべてが今取り組んでいます私のデバイスからの最新のRaspbianカーネル4.4.50とbluez 5.45の10.24秒のブロードキャスト間隔で。お役に立てれば。

+1

あなたは正しい人がハングアップするメーリングリストにメールを投稿する必要があります。http://www.bluez.org/development/lists/ – Emil

+0

ありがとうございます!しましょう! –

+0

これは私のための解決のように聞こえる。これがカーネルパラメータであり、カーネルを再コンパイルする必要があることを二度と確認したいだけですか? – vagrant4ever

関連する問題