xcode – Mac上的蓝牙RSSI 查询扫描 – 无需连接即可在iPhone上进行接近检测?

xcode – Mac上的蓝牙RSSI 查询扫描 – 无需连接即可在iPhone上进行接近检测?,第1张

概述我不得不频繁地离开电脑,我想触发一些命令,当我的iPhone离我的iMac足够远时(靠近它与2-3米远/墙的另一侧).几分钟的延迟很好. 部分解决方案:接近 我已经下载了reduxcomputing-proximity并且它可以工作,但这仅在设备进入/退出蓝牙范围时触发,但是我想要的范围要小得多. (邻近轮询[IOBluetoothDevice -remoteNameRequest]以查看设备是否 我不得不频繁地离开电脑,我想触发一些命令,当我的iPhone离我的iMac足够远时(靠近它与2-3米远/墙的另一侧).几分钟的延迟很好.

部分解决方案:接近

我已经下载了reduxcomputing-proximity并且它可以工作,但这仅在设备进入/退出蓝牙范围时触发,但是我想要的范围要小得多.

(邻近轮询[IOBluetoothDevice -remoteNameRequest]以查看设备是否处于蓝牙范围内.)

增强功能:rawRSSI

当我连接到iPhone时,我已经使用[IOBluetoothDevice -rawRSSI]来获取RSSI(当断开时它只返回127),但是为了节省我的iPhone的电池寿命,我宁愿避免建立完整的蓝牙连接.

我是否认为保持连接会比每隔几分钟轮询消耗更多的电池寿命?

我已经覆盖了isInRange的邻近方法,为我提供了一个可行的解决方案,与之前的remotenameRequest:方法相比,这可能是相对电池密集的:

- (BOol)isInRange {    BluetoothHCIRSSIValue RSSI = 127; /* ValID Range: -127 to +20 */    if (device) {        if (![device isConnected]) {            [device openConnection];        }        if ([device isConnected]) {            RSSI = [device rawRSSI];            [device closeConnection];        }    }    return (RSSI >= -60 && RSSI <= 20);}

(Proximity使用同步调用 – 如果我符合我的需要,我会将其编辑为异步,但现在这并不重要.)

在linux下:l2Ping – 查询扫描

This SO post参考在’查询扫描’期间获得RSSI听起来像我想要的,但它谈到使用linux Bluez库,而我在Mac上 – 我宁愿这样做而不必偏离太多,如果可能的话! (我考虑过使用带有USB pass-thru的虚拟机连接第二个蓝牙设备……但更简单的解决方案更可取!)

我看到有一个IOBluetoothDeviceInquiry类,但我不确定这对我有用.我不打算只为这个简单的问题学习蓝牙协议!

命令

对于兴趣,并没有特别相关的解决方案,这里是我目前触发的Apple脚本

在范围内:

tell application "Skype"    send command "SET USERSTATUS ONliNE" script name "X"    do shell script "afplay '/System/library/Sounds/Blow.aiff'"end tell

超出范围:

tell application "Skype"    send command "SET USERSTATUS AWAY" script name "X"    do shell script "afplay '/System/library/Sounds/Basso.aiff'"end tell

虽然这些可能会变得更长!

解决方法 就您的用例进行权衡而言,进行连续或定期查询将消耗与定期连接/读取RSSI和断开连接相同甚至更多的能量.根据使用情况,有时可能更有效地将连接保持在低功率模式(以2.56秒间隔嗅探)并且如果设备在范围内则保持连接.并使用RSSI来监控接近度(尽管由于物体干扰导致干扰不准确,即使设备可能在附近也会发生变化) 总结

以上是内存溢出为你收集整理的xcode – Mac上的蓝牙RSSI /查询扫描 – 无需连接即可在iPhone上进行接近检测?全部内容,希望文章能够帮你解决xcode – Mac上的蓝牙RSSI /查询扫描 – 无需连接即可在iPhone上进行接近检测?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1015374.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存