【发布时间】:2013-12-13 16:36:42
【问题描述】:
我目前正在尝试 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 版本,并尝试了不同的硬件,但无济于事。任何想法我可能会错过哪一步?我已经搜索了所有我能想到的线索,但还没有找到答案。提前感谢您的任何建议!
【问题讨论】:
-
Chris,发生这种情况后,如果您在 Pi 上重新启动 LE 广告,iBeacon Locate 会再次开始跟踪它吗?
-
嗨,大卫,感谢您的回复。是的,我可以继续重启,它会保持相同的模式,一旦我重启,它会触发一个“Enter”事件,报告距离几秒钟,然后再未知几秒钟,然后在 hcidump 中我会看到断开连接,然后是“退出”事件。
-
嗯。我从未见过这种行为。我想知道这是否是您的 BLE 加密狗的问题,是您配置 bluez 的方式不同,还是两者兼而有之。
-
这当然很奇怪。可以肯定的是,昨晚我再次构建了 2013-09-25-wheezy-raspbian.zip,唯一的更改是更改区域设置、更改主机名,然后运行更新和升级。然后我按照教程使用 iogear 加密狗,得到了完全相同的结果。
标签: raspberry-pi bluetooth-lowenergy bluez ibeacon