我使用了树莓派来检测ibeacons并完成了Radius Networks here提供的教程。我做了一个小脚本,首先打开lescan并将输出重定向到/ dev / null。然后它将管道上的hcidump转到脚本的输出。
脚本显示的输出很慢。虽然广告包以毫秒的大小发送,但是终端上的结果却很慢。因此,即使关闭发射器,命令也会继续显示新输出。我的理解告诉我解析花费时间,而HCIDUMP数据在sed队列中等待。
为了根据接近度进行适当的触发操作,需要最少的解析时间,以便在接收到所有数据包时对其进行解析。
如果使用Radius Networks提供的蓝牙开发套件,我是否遗漏了某些内容或解析速度更快?如果是这样,是什么让它更快?
谢谢,
答案 0 :(得分:3)
你是对的,在检测到大量iBeacon广告时,脚本的输出确实滞后。为简单起见,解析脚本是用bash编写的,因此它的速度受到影响 - 管道到sed
以存储每个标识符的速度很慢且效率低下。该脚本在Ruby中为Beacon Development Kit (now called the PiBeacon)重写,速度更快,响应更快。 Ruby和其他高级编程语言更适合解析和转换原始iBeacon分组数据。可以使用此新脚本下载开发工具包的磁盘映像here。
您还可以尝试使用Python编写的另一个iBeacon Raspberry Pi扫描脚本here。我还没有尝试过这个,但它似乎是另一个很好的解决方案。