У меня проблемы с быстрым определением имен устройств, находящихся рядом с Bluetooth (человеческие имена, а не BTADDR)
Я нашел здесь очень интересный проект на основе Python [http://code.google.com/p/python-bluetooth-scanner/], но проблема в основном в том, что, хотя поиск BTADDR и RSSI происходит быстро, обнаружение «человеческого» имени устройства занимает больше времени (даже если говорят, что оно должно работать в код)
Я знаю, что могу искать имена с:
- простая консольная команда "hcitool scan", которая работает медленно
- метод bluetooth.lookup_name (address) модуля PyBlueZ
- как написано в проекте, сообщается ниже
-
sock = bluetooth.bluez._gethcisock(device)
timeoutms = int(timeout * 1000)
try:
name = bluetooth._bluetooth.hci_read_remote_name( sock, address, timeoutms )
except bluetooth._bt.error, e:
print e
logger.debug("Lookup Failed")
name = None
sock.close()
return name
Краткая информация: система использует 2 ключа для обнаружения близлежащих устройств BT, если я заставляю их искать имена, они проводят больше времени, поэтому остаются заблокированными, когда обнаруживается новое устройство, устройства по-прежнему заблокированы в поиске предыдущее имя и вся программа зависает.
Я использую Ubuntu 10.10 в VirtualBox в среде WindowsXP и пару ключей BT 2.1.
Помимо создания списка «неназванных» устройств, которые нужно искать, как только мои ключи будут закончены с предыдущими. Вы знаете, как я мог бы сделать это быстрее?