У меня проблема с сопряжением с моим термопринтером через USB. Это вывод, который я получаю, когда подключаю термопринтер.
Это вывод при вводе lsusb -v
Bus 001 Device 004: ID 0456:0808 Analog Devices, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0456 Analog Devices, Inc.
idProduct 0x0808
bcdDevice 2.00
iManufacturer 1 Thermal Printer
iProduct 2 H58 Printer USB
iSerial 3 Printer
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 5 (error)
bmAttributes 0xc0
Self Powered
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 7 Printer
bInterfaceSubClass 1 Printer
bInterfaceProtocol 2 Bidirectional
iInterface 4 (error)
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Device Status: 0x0001
Self Powered
Это мой скрипт python для подключения к принтеру. Я использую библиотеку escpos python.
#!/usr/bin/python
from escpos.printer import Usb
p = Usb(0x0456,0x0808, 0x03)
p.text("Mini")
и это ошибка, которую я получаю, когда пытаюсь запустить скрипт.
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/usb/core.py", line 223, in get_interface_and_endpoint
return self._ep_info[endpoint_address]
KeyError: 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "print.py", line 4, in <module>
p.text("Mini")
File "/usr/local/lib/python3.5/dist-packages/escpos/escpos.py", line 513, in text
self.magic.write(txt)
File "/usr/local/lib/python3.5/dist-packages/escpos/magicencode.py", line 272, in write
self.write_with_encoding(encoding, to_write)
File "/usr/local/lib/python3.5/dist-packages/escpos/magicencode.py", line 293, in write_with_encoding
six.int2byte(self.encoder.get_sequence(encoding)))
File "/usr/local/lib/python3.5/dist-packages/escpos/printer.py", line 85, in _raw
self.device.write(self.out_ep, msg, self.timeout)
File "/usr/local/lib/python3.5/dist-packages/usb/core.py", line 940, in write
intf, ep = self._ctx.setup_request(self, endpoint)
File "/usr/local/lib/python3.5/dist-packages/usb/core.py", line 102, in wrapper
return f(self, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/usb/core.py", line 215, in setup_request
intf, ep = self.get_interface_and_endpoint(device, endpoint_address)
File "/usr/local/lib/python3.5/dist-packages/usb/core.py", line 102, in wrapper
return f(self, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/usb/core.py", line 231, in get_interface_and_endpoint
raise ValueError('Invalid endpoint address ' + hex(endpoint_address))
ValueError: Invalid endpoint address 0x1
Я также пытаюсь использовать 0x81 в 3-м аргументе, но все равно получаю ошибку. Я видел много учебников, за которыми я уже следовал, но я все еще получаю ошибку. Я могу проверить печать с помощью графического интерфейса, но не могу печатать с использованием pythonсценарий.