0

コマンドをDYMO labelmanager PnP USBデバイスに送信するPythonでプログラムを作成しようとしています。私はpyUSBをインストールしようとし、pyUSBチュートリアルで提供されているコードを試して、USB通信がどのように機能するかを少し理解しましたが、機能しません。pyUSB チュートリアルのコード:

(idVendor と idProduct を自分のデバイスに対応するように変更しました。デバイスは検出されますが、書き込みに失敗します)

import usb.core
import usb.util

# find our device
dev = usb.core.find(idVendor=0x0922, idProduct=0x1001)

# was it found?
if dev is None:
    raise ValueError('Device not found')

# set the active configuration. With no arguments, the first
# configuration will be the active one
dev.set_configuration()

# get an endpoint instance
cfg = dev.get_active_configuration()
interface_number = cfg[(0,0)].bInterfaceNumber
alternate_setting = usb.control.get_interface(interface_number)
intf = usb.util.find_descriptor(
    cfg, bInterfaceNumber = interface_number,
    bAlternateSetting = alternate_setting
)

ep = usb.util.find_descriptor(
    intf,
    # match the first OUT endpoint
    custom_match = \
    lambda e: \
        usb.util.endpoint_direction(e.bEndpointAddress) == \
        usb.util.ENDPOINT_OUT
)

assert ep is not None

# write the data
ep.write('test')

エラーが発生します:

Traceback (most recent call last):
  File "C:\Python27\proc\labelprinttest.py", line 18, in <module>
    alternate_setting = usb.control.get_interface(interface_number)
TypeError: get_interface() takes exactly 2 arguments (1 given)

問題はどこだ?

(もちろん、関数が2つの引数を取り、1つだけが与えられていることを読んでいますが、調査しようとしましたが、他の必要な引数が何であるかわかりません)

4

1 に答える 1