0

我正在扫描附近的蓝牙设备。我有这样的 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 将文件发送到范围内的设备?

我被困住了。

4

1 回答 1

0

每次都扫描设备是一个好习惯,因为您正在尝试基于 rssi 信号发送文件。

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

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

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

于 2019-10-05T07:42:33.840 回答