Не могу достучаться до принтера Godex G300 из под python

Нужно работать с принтером этикеток с помощью отдельной самописной программы на том же python. Принтер подключен через USB. Принтер опознаётся и прекрасно работает из под винды(Windows 10) вместе со стандартным драйвером(винда сама подтянула usbprint.inf(USB принтер), а сам принтер отображается во вкладке 'Принтеры' ). Мне нужно отправлять на принтер ezpl, который я ранее получаю в программе для печати этикеток golabel. Подключил библиотеку pyusb и написал небольшой код при помощи нейросети. Для работы pyusb прокидывал в System32 DLL драйвера libusb-1.0.27. В моей программе pyusb его определяет, но при выполнении кода выдаёт ошибку NotImplementedError.

Вычитал, что такое может быть из за отсутствия совместимого драйвера с pyusb. С помощью Zadig поочереди устанавливал все драйверы для G300(высветился в списке устройств USB Zadig). Это дало отсутствие ошибки, но принтер не получает сигнал. Так же, перестаёт видеть принтер и программа go label

EZPL, который хочу отправить:

^Q20,3
^W58
^H8
^P1
^S3
^AT
^C1
^R16
~Q+16
^O0
^D0
^E12
~R255
^XSET,ROTATION,0
^L
Dy2-me-dd
Th:m:s
BA3,117,43,2,6,80,0,1,1234
E

Код программы для печати:

import usb.core
import usb.backend.libusb1
 
import usb.util
 
import time
 
# Найдем ваш принтер
 
VENDOR_ID = 0x195f  # Замените на ваш ID производителя
 
PRODUCT_ID = 0x0001  # Замените на ваш ID продукта
 
# Найдите устройство
 
device = usb.core.find(idVendor=VENDOR_ID, idProduct=PRODUCT_ID)  # idVendor=VENDOR_ID, idProduct=PRODUCT_ID
# print("device ", usb.core.show_devices())
# print("efefe " + str(device))                                                                        
# print(list(device))
 
print("device ", usb.core.show_devices())
print(device)
 
if device is None:
    raise ValueError("Принтер не найден")
 
 
# Установим конфигурацию
 
device.set_configuration()
cfg = device.get_active_configuration()
 
interface_number = cfg[(0,0)].bInterfaceNumber
usb.util.claim_interface(device, interface_number)
 
# Определить правильный эндпоинт
endpoint = usb.util.find_descriptor(
    device[0][(0, 0)].endpoints(),
    custom_match=lambda e: usb.util.endpoint_direction(e.bEndpointAddress) == usb.util.ENDPOINT_OUT)
 
def send_data_to_printer(data):
    data_bytes = bytearray(data.encode('utf-8'))
    try:
        device.write(endpoint.bEndpointAddress, data_bytes)
    except usb.core.USBTimeoutError as e:
        print("Ошибка таймаута: ", str(e))
    except Exception as e:
        print("Ошибка при отправке данных: ", str(e))
 
def print_label(file_path):
    with open(file_path, 'r') as file:
        ezpl_data = file.read()
        print(ezpl_data)
        send_data_to_printer(ezpl_data)
 
print_label('lol.txt')
usb.util.release_interface(device, interface_number)
 
device.set_configuration()
 
print("Этикетка отправлена на печать.")

Ошибка:

Traceback (most recent call last):
  File "C:\Users\Nikolay\PycharmProjects\ThermalPrinter\fromusb.py", line 38, in <module>
    device.set_configuration()
  File "C:\Users\Nikolay\PycharmProjects\ThermalPrinter\venv\Lib\site-packages\usb\core.py", line 915, in set_configuration
    self._ctx.managed_set_configuration(self, configuration)
  File "C:\Users\Nikolay\PycharmProjects\ThermalPrinter\venv\Lib\site-packages\usb\core.py", line 113, in wrapper
    return f(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Nikolay\PycharmProjects\ThermalPrinter\venv\Lib\site-packages\usb\core.py", line 158, in managed_set_configuration
    self.managed_open()
  File "C:\Users\Nikolay\PycharmProjects\ThermalPrinter\venv\Lib\site-packages\usb\core.py", line 113, in wrapper
    return f(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Nikolay\PycharmProjects\ThermalPrinter\venv\Lib\site-packages\usb\core.py", line 131, in managed_open
    self.handle = self.backend.open_device(self.dev)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Nikolay\PycharmProjects\ThermalPrinter\venv\Lib\site-packages\usb\backend\libusb1.py", line 804, in open_device
    return _DeviceHandle(dev)
           ^^^^^^^^^^^^^^^^^^
  File "C:\Users\Nikolay\PycharmProjects\ThermalPrinter\venv\Lib\site-packages\usb\backend\libusb1.py", line 652, in __init__
    _check(_lib.libusb_open(self.devid, byref(self.handle)))
  File "C:\Users\Nikolay\PycharmProjects\ThermalPrinter\venv\Lib\site-packages\usb\backend\libusb1.py", line 600, in _check
    raise NotImplementedError(_strerror(ret))
NotImplementedError: Operation not supported or unimplemented on this platform

Подскажите, куда копать. Два дня сижу и не могу понять как решить.


Ответы (0 шт):