内蔵でない他のパソコンでBT-MicroEDR2XをUSBに差し込んで、自動でインストールされるマイクロソフトスタックで使うと、時々IOErrorの例外が発生していた。
当初はアダプタとの接続の問題かと思っていたが、Bluetoothデバイスが全く検出出来なかった時に例外が発生するようだ。
例外発生した時はnearby_devicesを空にして継続実行します。
# -*- coding: utf-8 -*- # btscan2.py 2011.3.2 import bluetooth # PyBluez import time import datetime old_devices = set() while True: try: nearby_devices = bluetooth.discover_devices(lookup_names = True) except IOError, err: print err nearby_devices = [] else: dt = datetime.datetime.now() dt_str = dt.strftime("%Y/%m/%d %H:%M:%S") new_devices = set(nearby_devices) for addr,name in new_devices-old_devices: print u"+ %s %s %s" % (dt_str, addr, name.decode('utf-8')) for addr,name in old_devices-new_devices: print u"- %s %s %s" % (dt_str, addr, name.decode('utf-8')) old_devices = new_devices.copy() time.sleep(30)
---
0 件のコメント:
コメントを投稿