BLE设备在不扫描时是否读取广告包? (自动连接)

时间:2016-09-21 09:46:06

标签: bluetooth-lowenergy

我在一些地方读到广告包被发送到距离范围内的每一个。但是,如果其他设备正在扫描接收它们,或者它会接收它吗?

问题: 假设我在5或6个BLE设备之间建立一个微微网。在某些时候,我在奴隶和一个主人之间有一些联系。然后,如果其中一个设备被移除/关闭了几天,我希望它在打开后立即重新连接回网络。

我读到了自动连接功能,但是当你设置为true时,设备会创建一个背景扫描,实际上比手动扫描更慢(频率)。这让我得出结论,为了使autoConnect正常工作,再次打开的设备需要再次做广告,对吧?因此,如果autoconnect在背景上真的运行慢扫描,那么在我看来你永远不会立即收到adv数据包,除非你以某种方式扫描。这有意义吗?

如果是这样,有什么办法吗?我的意思是,检测即将返回范围的设备?

1 个答案:

答案 0 :(得分:0)

什么都没有"瞬间"。您正在谈论具有延迟,超时,重新传输,干扰等的无线电协议。总是存在延迟。重要的是您认为可以接受的应用程序。

无线电收发器一次在一个给定通道上接收,休眠或发送。发送和接收意味着功耗。

当中央空闲时(根本不处理任何连接),它所要做的就是扫描。它可以全时完成(即使规范说这应该是值班循环)。您可以在第一次传输时实际从对等外设接收广告包。

当Central维持与多个外围设备的连接时,其收发器时间在所有连接之间共享以进行维护。后台扫描被认为是低优先级的,并且需要一些剩余的收发器时间。然后,广告外围设备可以在中央不收听时发送其ADV数据包。

这是统计魔术:

规范说两个广告事件之间的间隔必须用(伪)随机延迟来增强。这可以确保中央(扫描仪)和外围设备(广告商)能够在某个时间点相互看到对方。如果没有这种随机延迟,它们的时序分配可能会变得谐波,但是会出现异相,而且可能会发生它们从未见过的情况。

根据中央和外围设备(advInterval,advDelay,scanWindow,scanInterval)和无线电链路质量使用的参数,您可以计算在给定时间后能够到达节点的概率。这留给读者练习......:)

最后,您应该问自己的问题看起来像是否可以接受我的外围设备在95%的情况下在300毫秒后重新连接到我的中心" ?

相关问题