次のスニペットはpyusb tutuorialからのものです。接続されているすべてのプリンターを見つけるために使用されています。
import usb.core
import usb.util
import sys
class find_class(object):
def __init__(self, class_):
self._class = class_
def __call__(self, device):
# first, let's check the device
if device.bDeviceClass == self._class:
return True
# ok, transverse all devices to find an
# interface that matches our class
for cfg in device:
# find_descriptor: what's it?
intf = usb.util.find_descriptor(
cfg,
bInterfaceClass=self._class
)
if intf is not None:
return True
return False
printers = usb.core.find(find_all=1, custom_match=find_all(7))
このクラスには、ブール値を返すポイントが複数あるようです。返品は何回送られていますか?
また、このコードがシステムに接続されているすべてのプリンターを検索する方法も理解できませんでした。このコードで私を逃れるものは次のとおりです。
device
リスト/タプルですか?はいの場合、このコードは一度だけ実行してすべてのデバイスをどのようにチェックしますif device.bDeviceClass == self._class:
か?この行で何が起こっているか:
self._class = class_
クラス
find_class
がインスタンス化されないのはなぜですかprinters = usb.core.find(find_all=1, custom_match=find_all(7))
pyusb/任意の usb プログラムで作業したことがある場合は、その方法を教えてください。