Невозможно прочитать информацию с USB через PyUSB в Windows 10. (Подключается нормально) - PullRequest
0 голосов
/ 20 сентября 2018

Я использую Python 3 с Anaconda на компьютере с Windows 10.

Я пытаюсь подключиться к USB-сканеру штрих-кода, чтобы считывать штрих-коды и сохранять их в переменных в другой подпрограмме Python.Я нашел пример использования библиотеки PyUSB и попробовал его.После нескольких модификаций я смог запустить его без ошибок.Программа подключается к USB с помощью следующего кода:

import usb.core
import usb.util

def main():
    # Find usb device
    dev = usb.core.find(idVendor=0x05E0, idProduct=0x1200)

    # Raise error if device not found
    if dev is None:
        raise ValueError('Device not found')

    else:
        # Set configuration of device
        dev.set_configuration()

        endpoint = dev[0][(0,0)][0]

        data = None

        while True:
            try:
                dev.read(endpoint.bEndpointAddress, endpoint.wMaxPacketSize, timeout=1) 
                print(data)

            except usb.core.USBError as e:
                data = None
                if e.args == ('Operation timed out',):
                    print("ERROR")
                    continue

if __name__ == '__main__':
    main()

Как я уже сказал, программа работает правильно и находит USB.Тем не менее, данные (номер штрих-кода) никогда не печатаются, потому что программа, похоже, застряла в следующей строке :

dev.read(endpoint.bEndpointAddress, endpoint.wMaxPacketSize, timeout=1) 

Можете ли вы мне помочь?

Спасибо большоемного заранее!

1 Ответ

0 голосов
/ 21 сентября 2018

Использование PyUSB для чтения штрих-кодов слишком сложно.
Рекомендуется установить режим COM-порта следующим образом и установить связь с PySerial.

Загрузите драйвер устройства с этой страницы.
USB CDC-ДРАЙВЕР ДЛЯ WINDOWS

Установите сканер в режим COM-порта с помощью процедуры и установки штрих-кода, описанного на этомстр.
Эмуляция COM / SERIAL PORT OVER USB с помощью CDC DRIVER

Установите для аппаратных / программных настроек подтверждения связи, описанных на страницах 80–82 настоящего руководства, значение Нет .
LS1203 Справочное руководство по продукту - Zebra Technologies

Используйте PySerial, чтобы открыть и прочитать COM-порт, назначенный сканеру.

Если вы сканируете штрих-код со сканером, вы должны иметь возможность считывать данные штрих-кода из COM-порта.

Сканер считается готовым к считыванию штрих-кодов при включении питания.
Функция считывания «Включить / Отключить» не публикуется.


На основеВ комментарии к отчету о результатах рассматриваются следующие параметры.

  • Спросите службу поддержки Zebra о том, возможно ли это.
  • Откажитесь от управления в Python и используйте его в эмуляции ввода с клавиатурырежим.
  • Отключите соединение USB и используйте соединительный кабель RS232C.
...