3

ユーザーフレンドリな名前「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"]
4

3 に答える 3