8

私は現在、RadiusNetworks によって投稿された Raspberry Pi iBeacon チュートリアルを試みています。

http://developer.radiusnetworks.com/2013/10/09/how-to-make-an-ibeacon-out-of-a-raspberry-pi.html

しかし、数秒後に接続がタイムアウトするという問題があります。Raspbian のフレッシュ ビルドを実行し、2 つの異なるドングル (AZIO V400 および IOGEAR GBU521) を試しました。また、チュートリアルに従って Bluez 5.8 と Bluez 5.11 を両方ともフレッシュな Raspbian ロードで試しました。

開始スクリプトを呼び出すと、次のように表示されます。

pi@piBlueTest ~ $ ./start
Launching virtual iBeacon...
LE set advertise enable on hci0 returned status 12
< HCI Command: ogf 0x08, ocf 0x0008, plen 44
  1E 02 01 1A 1A FF 4C 00 02 15 E2 C5 6D B5 DF FB 48 D2 B0 60 
  D0 F5 A7 10 96 E0 00 00 00 00 C9 00 00 00 00 00 00 00 00 00 
  00 00 00 00 
> HCI Event: 0x0e plen 4
  01 08 20 00 
Complete

これにより、「Locate iBeacon」アプリを使用して iPhone で「Entered」イベントがトリガーされ、距離がメートル単位で数秒間表示されます。その後、さらに数秒間範囲として「距離: 不明」が表示され、続いて「終了」イベントが発生します。「hcidump」を実行してシーケンスを実行すると、

HCI sniffer - Bluetooth packet analyzer ver 5.11
device: hci0 snap_len: 1500 filter: 0xffffffff
< HCI Command: LE Set Advertise Enable (0x08|0x000a) plen 1
> HCI Event: Command Complete (0x0e) plen 4
    LE Set Advertise Enable (0x08|0x000a) ncmd 1
    status 0x0c
    Error: Command Disallowed
< HCI Command: LE Set Advertising Data (0x08|0x0008) plen 44
> HCI Event: Command Complete (0x0e) plen 4
    LE Set Advertising Data (0x08|0x0008) ncmd 1
    status 0x00
< HCI Command: LE Set Advertising Parameters (0x08|0x0006) plen 15
    min 1280.000ms, max 1280.000ms
    type 0x00 (ADV_IND - Connectable undirected advertising) ownbdaddr 0x00 (Public)
    directbdaddr 0x00 (Public) 00:00:00:00:00:00
    channelmap 0x07 filterpolicy 0x00 (Allow scan from any, connection from any)
> HCI Event: Command Complete (0x0e) plen 4
    LE Set Advertising Parameters (0x08|0x0006) ncmd 1
    status 0x00
< HCI Command: LE Set Advertise Enable (0x08|0x000a) plen 1
> HCI Event: Command Complete (0x0e) plen 4
    LE Set Advertise Enable (0x08|0x000a) ncmd 1
    status 0x00
> HCI Event: LE Meta Event (0x3e) plen 19
    LE Connection Complete
      status 0x00 handle 64, role slave
      bdaddr B8:F6:B1:1C:15:C8 (Public)
> ACL data: handle 64 flags 0x02 dlen 11
    ATT: Read By Type req (0x08)
      start 0x0001, end 0xffff
      type-uuid 0x2a00
> HCI Event: Disconn Complete (0x05) plen 4
    status 0x00 handle 64 reason 0x13
    Reason: Remote User Terminated Connection

iPhone が pi への接続を開始しようとしているように見えますが、その接続のネゴシエーションに失敗し、広告が終了します。

チュートリアルから手紙までの手順を完了しましたが、切断の原因を特定できないようです。bluez のバージョンを変更したり、別のハードウェアを試したりしましたが、うまくいきませんでした。どのステップが欠落している可能性がありますか?手がかりを求めて思いつく限りのことを調べましたが、まだ答えは見つかりません。アドバイスをよろしくお願いします!

4

3 に答える 3

13

デバイスを「アドバタイズして接続可能」ではなく「アドバタイズして接続不可」(0 ではなく 3)に設定してみてください。

sudo hciconfig $BLUETOOTH_DEVICE leadv 3

ラップトップが接続しようとしたため、数秒後にビーコンが突然ダウンしました. デバイスを接続不可に設定すると、問題は解決しました。

于 2013-12-07T07:48:47.077 に答える
8

解決したようですが、私と同じ問題を抱えている可能性のある他の人のために投稿し、このスレッドを見つけます。

Chris のように、bluez 5.11 を使用することを除いて、チュートリアルの手順を完了しました。いくつかの実験の後、「開始」スクリプトのステップの順序を変更する必要がありました。理由はわかりませんが、これが正しく機能する唯一の順序のようです。多分私は何か間違ったことをしましたか?

#!/bin/sh
. ./ibeacon.conf
echo "Launching virtual iBeacon..."
sudo hciconfig $BLUETOOTH_DEVICE up
sudo hciconfig $BLUETOOTH_DEVICE noleadv
sudo hciconfig $BLUETOOTH_DEVICE leadv 0
sudo hcitool -i hci0 cmd 0x08 0x0008 1e 02 01 1a 1a ff 4c 00 02 15 $UUID $MAJOR $MINOR $POWER 00 00 00 00 00 00 00 00 00 00 00 00 00
echo "Complete"
于 2013-12-01T13:12:09.580 に答える
1

おそらく、接続しようとしているデバイスが接続を停止するようにすることで、これを防ぐことができます。これは iOS では正常ではありません。接続を試みるように指示しましたか?これを行っているのはiOSデバイスですか?おそらくそれはあなたのコンピュータですか?

または、自分で動作させることができない場合は、組み立て済みで販売するユニットに付けた正確なコードを含む無料の .iso ファイルを提供できます。これにより、ビルドの問題が解消される可能性があります。これを試してみたい場合は、営業担当者にメモを送信してください。

于 2013-11-28T13:10:48.400 に答える