从QR代码扫描程序Python中检索扫描的信息

时间:2017-01-21 14:15:35

标签: python windows command-line usb qr-code

请不要将其称为副本,我对通过Python访问USB设备的想法完全不了解。

其他问题和答案往往太高,我无法理解。

我有一个USB即插即用的qr代码扫描程序。

无论出于何种原因我无法在命令行中找到它并且让我感到难过。

当扫描程序扫描QR代码时,我希望将其数据发送到我的python脚本,以便将其设置为变量以与数据库进行比较。

我不了解如何访问USB设备并使用Python检索信息。

我已经阅读了很多相关内容但仍然没有。

有什么简单的方法吗?

2 个答案:

答案 0 :(得分:0)

我没有使用特殊设备作为连接到计算机的QR阅读器,但我所做的是使用网络摄像头提供图像数据,随后由名为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()来调用命令行工具,并根据需要进一步处理数据。

HTH

答案 1 :(得分:0)

QR扫描仪是USB HID(人机接口设备 - http://www.usb.org/developers/hidpage)设备或更少实现虚拟COM端口(USB CDC ACM设备类)

对于相关的HID QR扫描仪是http://www.usb.org/developers/hidpage/pos1_02.pdf

USB HID POS设备在 HID报告中发送数据(即扫描的QR码)这些报告的结构由USB标准在 HID报告描述符中给出,对于QR和条形码扫描仪,请参阅http://www.usb.org/developers/hidpage/pos1_02.pdf第37,38页:Scanned Data ReportRaw Scanned Data Report 当设备发送包含数据的 HID报告时,驱动程序会触发OS 事件。这些事件由您必须实现的事件处理程序捕获:

  

添加事件处理程序

     

条码扫描器应用程序使用两个重要的事件处理程序,   DataReceivedReleaseDeviceRequested

     

当设备扫描条形码时发生DataReceived事件   允许您的应用接收和处理扫描数据。它的args   参数包含BarcodeScannerReport,而pywinusb又包含   从扫描中获得的数据。

来源: https://msdn.microsoft.com/en-us/library/dn792060%28v=winembedded.81%29.aspx (将此转换为python)

处理您可以使用的{HID窗口事件{/ 1}}

  

使用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 reporthttps://pypi.python.org/pypi/pywinusb/