ユーザーフレンドリな名前「Sensor1」の Bluetooth 対応デバイスがあります。このデバイスは SPP プロファイルを使用します。Bluetooth 経由でデータ ストリーミングを開始するようデバイスに要求するには、次のように、このデバイスに対応する COM ポートに「10111011」を書き込む必要があります。
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"]