[英]Sending files via bluetooth depending on rssi value
我正在掃描附近的藍牙設備。 我有這樣的 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 將文件發送到范圍內的設備?
我被困住了。
每次都掃描設備是一個好習慣,因為您正在嘗試基於 rssi 信號發送文件。
掃描超時特定於藍牙堆棧。 大多數藍牙堆棧的默認超時時間為 15 到 30 秒(以節省電量),
在掃描過程中,您將在查詢結果/完成事件(從BT HCI信令設備找到事件)中獲得附近藍牙設備地址列表以及RSSI信息。 您可以遍歷結果並將文件發送到 RSSI 大於 -50 或任何其他值的設備。
但這里的問題是遠程設備是否具有接收文件的能力? 我沒有看到你在這里檢查它。 僅僅擁有藍牙地址和 RSSI 並不能保證遠程設備會接受您的文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.