Python 根据rssi值通过蓝牙发送文件

Python 根据rssi值通过蓝牙发送文件,python,python-2.7,bluetooth,pybluez,Python,Python 2.7,Bluetooth,Pybluez,我正在扫描附近的蓝牙设备。我有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 <

我正在扫描附近的蓝牙设备。我有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? 

扫描设备
当i<100//随机数时
对于键,dictionary.iteritems()中的val:
如果key==一个设备的mac地址且rssi>50:
发送文件()
其他:
再次扫描
//某种递归?
但是,如果我在同一范围内同时有两台设备,并且我想向两台设备发送文件,该怎么办呢。如何扫描它

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


我被绊倒了。

每次扫描设备都是一个很好的做法,因为您试图发送基于rssi信号的文件

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

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


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

首先,您应该正确理解脚本的语法。感谢您的支持。我会按你的建议去做。关于接收文件的能力,我使用其他方法进行检查。如果我可以或不能发送文件,我可以获取信息。但是谢谢你的关注。