我在扫描附近的蓝牙设备。我有一个具有MAC地址和rssi值的字典,如下所示:
dictionary = {"18:FF:E3:3B:5D:31": "-49","11:11:11:3B:5D:31": "-60", }
在这种情况下,我想发送到18:FF:E3:3B:5D:31只有当rssi大于-50。做这件事的最好方法是什么?同时循环取决于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? 但是,如果我有两个设备同时在范围内,我想发送文件到两个设备。怎么扫描?
或如何扫描,例如扫描1分钟,取决于rssi和MAC将文件发送到范围内的设备?
我被塞住了。
发布于 2019-10-05 07:42:33
这将是一个很好的做法,每次扫描设备,因为你试图发送基于rssi信号的文件。
扫描超时是特定于蓝牙堆栈的。大多数蓝牙堆栈的默认超时时间为15至30秒(以节省电力),
在扫描过程中,您将得到附近的蓝牙设备地址列表以及查询结果/完整事件中的RSSI信息(从BT HCI信令设备找到的事件)。您可以迭代结果并将文件发送到RSSI大于-50或任何其他值的设备。
但是这里的问题是远程设备是否有接收文件的能力?我看不出你是在这里检查它。仅仅通过拥有蓝牙地址和RSSI并不能保证远程设备会接受您的文件。
https://stackoverflow.com/questions/58241922
复制相似问题