工作と競馬2

電子工作、プログラミング、木工といった工作の記録記事、競馬に関する考察記事を掲載するブログ

bluepyでiBeaconを探す

bluepyのサンプルコードを参考に、

scanner = Scanner()
devices = scanner.scan(10.0)

for dev in devices:
    for (adtype, desc, value) in dev.getScanData():
        print "  %s = %s" % (desc, value)

とすると、

  • desc = "Manufacturer"
  • value[0:8] = "4c000215"

となるものが出てくる。これを判断基準として、

scanner = Scanner()
devices = scanner.scan(10.0)

for dev in devices:
    for (adtype, desc, value) in dev.getScanData():
        if desc == "Manufacturer":
            if value[0:8] == "4c000215":
                v = value[8:]
                uuid = "-".join([v[:8], v[8:8+4], v[12:16], v[16:20], v[20:32]])
                major = int(v[32:36], 16)
                minor = int(v[36:40], 16)

という感じで取り出せる。

参考