У меня есть устройство с поддержкой Bluetooth и удобным для пользователя именем «Sensor1». Это устройство использует профиль SPP. Чтобы попросить устройство начать передачу данных через Bluetooth, я должен написать '10111011' на COM-порту, соответствующем этому устройству, следующим образом:
ser = serial.Serial('COM5')
ser.write('10111011')
Проблема в том, что я не знаю, какой из COM-портов соответствует «Sensor1». Итак, я читаю реестр Windows, чтобы получить имя устройства:
import _winreg as reg
from itertools import count
key = reg.OpenKey(reg.HKEY_LOCAL_MACHINE, 'HARDWARE\\DEVICEMAP\\SERIALCOMM')
for i in count():
device, port = reg.EnumValue(key, i)[:2]
print "Device name \"%s\" found at %s" % (device, port)
Все, что я получаю, это:
Device name \Device\Serial0 found at COM3
Device name \Device\BthModem16 found at COM4
Device name \Device\BthModem17 found at COM5
Как я могу получить имя устройства, как в:
service = bluetooth.find_service()
print service["name"]