2017-01-21 3 views
0

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

Другие вопросы и ответы часто были слишком высокого уровня для меня, чтобы понять.

У меня есть сканер кода qr, который подключается к сети USB.

Я не могу найти его в командной строке по какой-либо причине, и это меня озадачило.

Когда сканер сканирует QR-код, я хочу, чтобы его данные отправлялись на мой скрипт python, поэтому я могу установить его для переменной для сравнения с базой данных.

Я не понимаю, как получить доступ к USB-устройству и получить информацию с помощью Python.

Я прочитал немного об этом и до сих пор ничего.

Есть ли какой-то простой способ сделать это?

ответ

0

Я не сделал это со специальным устройством в качестве QR-Reader, подключенным к компьютеру, но я сделал это, чтобы использовать веб-камеру для предоставления данных изображения, которые затем обрабатываются инструментом zbar для сканирования штрих-кода (в моем случае isbn количество книг), а затем вызвать браузер, чтобы найти информацию о книге.

Так что, на мой взгляд, вы можете сделать то же самое.

Мой код выглядит следующим образом:

import os 

p=os.popen('/usr/bin/zbarcam /dev/video1', 'r') 
while True: 
    code = p.readline() 
    print 'Got barcode:', code 
    isbn = code.split(':')[1] 
    os.system('google-chrome http://www.goodreads.com/search/search?q=%s'%isbn) 

Таким образом, обобщенный подход найти инструмент для вашей системы, которая предоставляет вам необходимую поддержку, чтобы использовать устройство (возможно http://zbar.sourceforge.net/ является хорошей отправной точка). Если вы можете вызвать его в командной строке, вы можете использовать os.popen() или лучше subprocess.popen() для вызова инструмента командной строки и дальнейшей обработки данных по своему усмотрению.

НТН

0

QR-сканер либо USB HID (интерфейс Human Device - http://www.usb.org/developers/hidpage) устройства или более редко реализуют виртуальные COM-порты (USB CDC ACM класса устройств)

для более HID QR сканеры соответствующего является http://www.usb.org/developers/hidpage/pos1_02.pdf

USB-HID POS-устройство передает данные (т.е. сканировали QR-коды) в HID сообщает структура этих отчетов задается стандартом USB, в HID отчетов дескрипторов, для Q R и сканеры штрих-кодов см http://www.usb.org/developers/hidpage/pos1_02.pdf страницу 37,38: Scanned Data Report, Raw Scanned Data Report , когда устройство посылает HID отчет, содержащий данные драйвер запускает OS событие с. эти события фиксируются с помощью обработчика событий, которые вы должны реализовать: обработчики событий

Добавить

приложения сканер штрих-кода используют два важных обработчиков событий, DataReceived и ReleaseDeviceRequested.

Событие DataReceived происходит, когда устройство сканирует штрих-код и позволяет вашему приложению получать и обрабатывать отсканированные данные. Его параметр args содержит BarcodeScannerReport, который, в свою очередь, содержит данные, полученные при сканировании.

Источник: https://msdn.microsoft.com/en-us/library/dn792060%28v=winembedded.81%29.aspx (перевести это питон)

для обработки HID окна события вы можете использовать pywinusb

Использование pywinusb.hid

Посмотреть на ./examples для некоторых (нормально, немного сейчас) скриптов. Они показывают, например, как использовать pywinusb.hid для обработки событий. из устройств класса HID использует события.

Источник: https://pypi.python.org/pypi/pywinusb/

может быть также полезные ссылки:

http://www.beyondlogic.org/usbnutshell/usb1.shtml

http://eleccelerator.com/tutorial-about-usb-hid-report-descriptors/

http://ww1.microchip.com/downloads/en/AppNotes/01144a.pdf

PyUSB send HID report (https://pypi.python.org/pypi/pywinusb/)

Смежные вопросы