Отправка файлов через Bluetooth в зависимости от значения rssi - PullRequest
0 голосов
/ 04 октября 2019

Я сканирую близлежащие устройства Bluetooth. И у меня есть словарь с 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? 

Но что, если у меня есть 2 устройства одновременно, и я хочуотправить файл на два устройства. Как его отсканировать?

Или как отсканировать, скажем, в течение 1 минуты и в зависимости от того, как rssi и MAC отправляют файл на устройства, находящиеся в диапазоне?

Я застрял.

1 Ответ

0 голосов
/ 05 октября 2019

Рекомендуется сканировать устройство каждый раз, поскольку вы пытаетесь отправить файл на основе сигнала rssi.

Тайм-аут сканирования зависит от стека Bluetooth. для большинства стеков Bluetooth по умолчанию установлен тайм-аут от 15 до 30 секунд (для экономии энергии),

В процессе сканирования вы получите список адресов ближайших устройств Bluetooth, а также информацию RSSI в результате запроса /событие завершено (обнаружено событие от сигнального устройства BT HCI). Вы можете перебирать результаты и отправлять файл на устройства с RSSI больше -50 или любым другим значением.

Но вопрос здесь в том, может ли удаленное устройство принимать файл? Я не вижу, чтобы вы проверяли это здесь. Наличие адреса Bluetooth и RSSI не гарантирует, что удаленное устройство примет ваш файл.

...