我目前正在尝试 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 版本,并尝试了不同的硬件,但无济于事。任何想法我可能会错过哪一步?我已经搜索了所有我能想到的线索,但还没有找到答案。提前感谢您的任何建议!