【问题标题】:Retrieve scanned information from QR code scanner Python从 QR 码扫描器 Python 中检索扫描的信息
【发布时间】:2017-01-21 14:15:35
【问题描述】:

请不要将其称为重复项,我对通过 Python 访问 USB 设备的想法完全陌生。

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

我有一个 USB 即插即用的二维码扫描仪。

无论出于何种原因,我都无法在命令行上找到它,这让我很困惑。

当扫描仪扫描二维码时,我希望将其数据发送到我的 python 脚本,这样我就可以将其设置为一个变量,以便与数据库进行比较。

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

我已经阅读了很多关于它的内容,但仍然一无所获。

有什么简单的方法可以做到这一点吗?

【问题讨论】:

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


    【解决方案1】:

    我没有使用特殊设备作为连接到计算机的 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

    【讨论】:

      【解决方案2】:

      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 报告 时,驱动程序会触发操作系统事件。这些事件由您必须实现的事件处理程序捕获:

      添加事件处理程序

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

      DataReceived 事件在设备扫描条形码时发生,并且 允许您的应用程序接收和处理扫描的数据。它的参数 参数包含BarcodeScannerReport,而BarcodeScannerReport又包含 扫描得到的数据。

      来源:https://msdn.microsoft.com/en-us/library/dn792060%28v=winembedded.81%29.aspx(翻译成python)

      要处理 HID windows 事件,您可以使用 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/)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-08
        • 2021-09-02
        • 1970-01-01
        • 2016-08-24
        • 2022-06-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多