【问题标题】:Sending files via bluetooth depending on rssi value根据 rssi 值通过蓝牙发送文件
【发布时间】:2019-10-04 19:03:35
【问题描述】:

我正在扫描附近的蓝牙设备。我有这样的 MAC 地址和 rssi 值的字典:

dictionary = {"18:FF:E3:3B:5D:31": "-49","11:11:11:3B:5D:31": "-60", }

在这种情况下,我只想在 rssi 大于 -50 时将文件发送到 18:FF:E3:3B:5D:31。 最好的方法是什么? While循环取决于MAC地址? 受信任的 MAC 地址列表将是已知的。发送具有不同 rssi 的文件的设备可能更多。

这只是一个想法:

scan for devices
while i < 100 // random number  
    for key, val  in dictionary.iteritems():
        if key == mac_address_of_one_device and rssi > 50:
            send_file()
        else:
            scan again 
        // some kind of recursion? 

但是,如果我在范围内同时有 2 个设备,并且我想将文件发送到两个设备,该怎么办。如何扫描?

或者说如何扫描 1 分钟并取决于 rssi 和 MAC 将文件发送到范围内的设备?

我被卡住了。

【问题讨论】:

  • 首先您应该正确掌握脚本的语法。

标签: python python-2.7 bluetooth pybluez


【解决方案1】:

最好每次都扫描设备,因为您正在尝试根据 rssi 信号发送文件。

扫描超时特定于蓝牙堆栈。大多数蓝牙堆栈的默认超时时间为 15 到 30 秒(以节省电量),

在扫描过程中,您将在查询结果/完成事件(从BT HCI信号设备找到事件)中获得附近蓝牙设备地址列表以及RSSI信息。您可以遍历结果并将文件发送到 RSSI 大于 -50 或任何其他值的设备。

但这里的问题是远程设备是否具有接收文件的能力?我没有看到你在这里检查它。仅仅拥有蓝牙地址和 RSSI 并不能保证远程设备会接受您的文件。

【讨论】:

  • 感谢您的回答。我会尝试你建议的方式。关于接收文件的能力,我用其他方法进行了检查。如果可以或不能发送文件,我可以获取信息。不过感谢您的关注。
猜你喜欢
  • 1970-01-01
  • 2012-02-14
  • 2011-09-01
  • 2015-04-21
  • 2014-11-16
  • 2011-02-23
  • 2018-12-03
相关资源
最近更新 更多