我将从问题开始.
BTLE RSSI是指示两个设备是否彼此接近的好方法吗?它只适用于像遥控器等小型设备吗?
问题:
我目前正在制作一个将使用BTLE的应用程序,并允许基于邻近度的连接.在这方面,它很像苹果在高级核心蓝牙主题演示中展示的演示应用程序(当两个设备几乎触摸它们然后连接时).
据我了解,当中心发现外围设备时,接近度是根据RSSI值确定的.然而,当我尝试使用两个iPad时,信号看起来太强了,它也太不一致,因为它没有显示与设备接近度的非常大的相关性.
我尝试过Apple示例代码,类似的是,设备不必非常接近,以便信息从一个传递到另一个.
如果只有一种方法可以降低外围设备广告的信号强度....
在此先感谢您的帮助.
似乎AirPods和iPhone可以在非常敏感的层面上进行通信.物理靠近设备(1英尺远)的AirPods将触发iPhone做出反应.
iPhone能否真正检测到蓝牙信号?我现在正在使用蓝牙,但我似乎无法达到这种信号灵敏度.
我一直在尝试使用这个脚本https://github.com/karulis/pybluez/blob/master/examples/advanced/inquiry-with-rssi.py但它似乎sock = bluez.hci_open_dev(dev_id)返回了一个非工作套接字。每次将 sock 传递给函数时error(9, 'Bad file descriptor')都会抛出。
这个脚本已经很旧了,所以很有可能它不再起作用了。所以我有两个问题。有谁知道如何使用 pybluez 库(或更现代的等效库)来测量蓝牙设备与树莓派的接近程度?
我对这个导致我构建损坏套接字的脚本做错了什么?
谢谢。
是否可以计算设备和 iPhone 之间的距离,或者至少了解强度,以便我可以检查距离是否随着移动而变小或变大。我想建立某种系统,可以更容易地在近距离范围内找到“丢失”的东西。
这样的事情可能吗?如果是这样,最好的方法是什么。
我假设两个设备之间没有障碍。
我正在开发一个蓝牙设备的应用程序.
我使用iBeacon功能进行室内定位,但找不到室内位置,只返回区域.
我有一个当前的位置.但现在我想找到当前位置与iBeacon位置之间的距离.我搜索了很多.但没有得到任何适当的解决方案.
从我的搜索中我知道我可以找到RSSI的距离.
但我的问题是如何找到该物业的位置或距离.
我有显示几个警告的 BLE 源代码,我是 BLE 的新手。请看下面的代码。我曾尝试用 readRSSI 替换,但告诉我我无法将 Int 与 Void 进行比较。如何获得 readRSSI 的 Int 值?或者我应该如何更改代码?
- (void)peripheralDidUpdateRSSI:(CBPeripheral * _Nonnull)peripheral error:(NSError * _Nullable)error
{
if (!isConnected)
return;
if (rssi != peripheral.RSSI.intValue)
{
rssi = peripheral.RSSI.intValue;
[[self delegate] bleDidUpdateRSSI:activePeripheral.RSSI];
}
}
Run Code Online (Sandbox Code Playgroud)
*rssi 是一个静态整数。
*isConnected 是一个布尔值。
编辑:问题是自 iOS 8.0 起不推荐使用 RSSI。