标签: pyusb

PyUsb USB条码扫描器

我正在尝试使用Ubuntu中的Honeywell USB 3310g扫描仪从条形码或qrcode输出字符串.我有libusb和一个名为metro-usb(http://gitorious.org/other/metro-usb)的库,它使我的扫描仪能够工作.如果我打开gedit并扫描,我成功地获得了qrcode数据!我需要能够以实用的方式构建它并将数据发送到Web服务.

我已经下载并且实际上是pyusb,这似乎是我研究中最好的解决方案.我有一个脚本基于我在网上找到的等待扫描的东西,并成功地给我一个扫描结果.但是,我不确定如何阅读数据.我得到了一组没有任何意义的数据.我也不熟悉USB编程或Python.任何人都可以指导我从USB条形码扫描中获取数据串的最佳方法吗?我最有可能找出其余部分.此外,我收到一个错误,我总是要注释,以便在我尝试set_configuration时运行该程序.我总是得到一个错误,说资源很繁忙...不确定这是否与它有任何关系..我已经从网上获得了这个脚本,以及我的lsusb命令中的产品ID和供应商ID.当我通过注释掉的set_configuration运行它时,我得到:

Waiting to read...
Run Code Online (Sandbox Code Playgroud)

扫描时:

0x0 0x0 0xb 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x17 0x0 0x0 0x0 0x0 0x0
Traceback (most recent call last):
  File "reader.py", line 81, in <module>
  print lecture_code_barre()
File "reader.py", line 76, in lecture_code_barre
lecture+=NO_SCAN_CODE[data[n+2]]
KeyError: 11
Run Code Online (Sandbox Code Playgroud)

这是py脚本:

import sys
import usb.core
import usb.util

def lecture_code_barre():
VENDOR_ID = 0x0c2e
PRODUCT_ID = 0x0b61
#VENDOR_ID = 0x04b4
#PRODUCT_ID = 0x0100
DATA_SIZE = 16 # 224
NO_SCAN_CODE = {0x1E:'1', 0x1F:'2', 0x20:'3', 0x21:'4', …
Run Code Online (Sandbox Code Playgroud)

python ubuntu pyusb

6
推荐指数
1
解决办法
3万
查看次数

我想将我的程序连接到图像扫描仪

我想用python编写程序,它可以从扫描仪获取输入并保存为jpg。我不知道如何开始。请帮忙。

python-2.7 pyusb image-scanner

6
推荐指数
2
解决办法
1万
查看次数

在Python中控制USB端口的电源

我想知道是否可以使用供应商 ID 和产品 ID 来控制 Python 中 USB 端口的电源。它应该控制电源,而不仅仅是启用和禁用端口。如果您能提供一些例子,我们将不胜感激。

python usb port libusb pyusb

6
推荐指数
1
解决办法
1万
查看次数

M1 MBP 上的 Python 尝试连接到 USB 设备 - NoBackendError:没有可用的后端

我正在尝试使用 Python 连接到我的 USB 设备。

最终结果应该是连接到我的血压计,但我已经无法连接到任何设备。

我在这里找到的简单代码如下。我从 Apple 菜单 > 关于本机 > 系统信息中获得的产品和供应商 ID

import usb.core
import usb.util

# find our device
dev = usb.core.find(idVendor=0x0781, idProduct=0x55a4)

# was it found?
if dev is None:
    raise ValueError('Device not found')

# set the active configuration. With no arguments, the first
# configuration will be the active one
dev.set_configuration()

# get an endpoint instance
cfg = dev.get_active_configuration()
intf = cfg[(0,0)]

ep = usb.util.find_descriptor(
    intf,
    # match the first OUT endpoint
    custom_match = \ …
Run Code Online (Sandbox Code Playgroud)

usb backend libusb pyusb apple-m1

6
推荐指数
1
解决办法
3502
查看次数

PyUSB后端无法访问

嘿,我正在尝试运行教程中提供的简单脚本; usb正在导入但是当我尝试搜索设备时出现以下错误,请帮忙

>>> dev=usb.core.find()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\usb\core.py", line 819, in find
    raise ValueError('No backend available')
ValueError: No backend available
Run Code Online (Sandbox Code Playgroud)

python pyusb

5
推荐指数
1
解决办法
1万
查看次数

使用 PyUSB 从 Tenma 72-7732 万用表读取数据

我正在尝试使用 PyUSB 和 libusb 从带有 HID USB 连接的 Tenma 72-7732 万用表读取电压。到目前为止,这是我的代码:

def main():
    import usb.core
    import usb.util
    import usb.backend
    import sys

    #find device

    dev = usb.core.find(idVendor=0x1a86, idProduct=0xe008)

    # did you find it?
    if dev is None:
        raise ValueError('Device not found')
    else:
        print "Device found"


    dev.set_configuration()


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

    data = dev.read(endpoint.bEndpointAddress, endpoint.wMaxPacketSize, 0, 100000)

    print data

main()
Run Code Online (Sandbox Code Playgroud)

这会找到设备,但是当它尝试读取数据时,会出现超时错误。万用表的文档和支持非常糟糕,所以我无法去那里寻求帮助。如何成功读取设备?

python usb device libusb pyusb

5
推荐指数
1
解决办法
1620
查看次数

使用 PyUSB 重放 Wireshark 捕获的数据包

我用wireshark捕获了一个URB数据包:

219774  438.775555000   host    31.0    USBVIDEO    66  SET CUR Request  [Brightness]
Run Code Online (Sandbox Code Playgroud)

和 Wireshark 显示以下偏移十六进制文本:

0000   c0 f6 0b a3 00 88 ff ff 53 02 00 1f 01 00 00 00  ........S.......
0010   2c a1 51 53 00 00 00 00 57 5e 0b 00 8d ff ff ff  ,.QS....W^......
0020   02 00 00 00 02 00 00 00 21 01 00 02 00 02 02 00  ........!.......
0030   00 00 00 00 00 00 00 00 00 00 00 …
Run Code Online (Sandbox Code Playgroud)

python usb wireshark packet-sniffers pyusb

5
推荐指数
1
解决办法
1605
查看次数

通过 pyusb 从 USB 鼠标(单芯片,ADNS-2700)获取图像

我想提取单芯片光学鼠标传感器(特别是 ADNS-2700)捕获的实际图像。与互联网上使用微控制器与成像芯片的 SPI 接口通信的各种其他教程(如下所示)不同,我尝试使用的芯片集成了 USB 接口。

ADNS-2700 数据表

系统:Windows 7、Python2.7、PyUSB 1.0

我已经成功提取了以下示例中的按钮按下、速度和滚轮:

import usb.core
import usb.util

VENDOR_ID = 6447
PRODUCT_ID = 2326

# find the USB device
device = usb.core.find(idVendor=VENDOR_ID,
                       idProduct=PRODUCT_ID)

# use the first/default configuration
device.set_configuration()

# first endpoint
endpoint = device[0][(0,0)][0]

# read a data packet
attempts = 10
data = None
while attempts > 0:
    try:
        data = device.read(endpoint.bEndpointAddress,
                           endpoint.wMaxPacketSize)
        print data

    except usb.core.USBError as e:
        data = None
        if e.args == ('Operation timed …
Run Code Online (Sandbox Code Playgroud)

python usb libusb pyusb

5
推荐指数
1
解决办法
3407
查看次数

PyUSB ValueError:没有可用的后端

我在 Win 7 操作系统上运行 Python 2.7.8。我正在尝试通过 PyUSB 通信 USB 设备(Numato 32 通道 GPIO 设备)。

我从 URL 下载了 walac-pyusb-7071ad3:http ://walac.github.io/pyusb

我停止接收“ValueError:没有可用的后端”。有没有 Python 专家能告诉我哪里错了?

这是代码:

import sys
import usb
import usb.core
import usb.util
import usb.backend.libusb1

backend = usb.backend.libusb1.get_backend(find_library=lambda C:'\Python27')
numato = usb.core.find(idVendor=00000006,idProduct = 00000000, backend=backend)
Run Code Online (Sandbox Code Playgroud)

这是 Python 错误消息:

Traceback (most recent call last):
  File "C:\Python_Yang\PyUSBNumato.py", line 19, in <module>
    numato = usb.core.find(idVendor=00000006,idProduct = 00000000, backend=backend)
  File "C:\Python_Yang\usb\core.py", line 1199, in find
    raise ValueError('No backend available')
ValueError: No backend available
Run Code Online (Sandbox Code Playgroud)

python usb windows-7 python-2.7 pyusb

5
推荐指数
1
解决办法
3万
查看次数

我的电脑时,PyUsb无法识别我的USB设备

我正在尝试在我的PC和PIC18F4550之间进行通信,但是程序没有检测到它,而计算机正在设备管理器中显示它.

import usb.core

dev = usb.core.find(idVendor = 0x04D8, idProduct = 0xFEAA)
Run Code Online (Sandbox Code Playgroud)

检查USB设备的功能:

def find(find_all = False, backend = None, custom_match = None, **args):
    def device_iter(k, v):
        for dev in backend.enumerate_devices():
            d = Device(dev, backend)
            if  _interop._reduce(lambda a, b: a and b,map(operator.eq,v,map(lambda i:getattr(d,i),k)),True)and (custom_match is None or custom_match(d)):
                yield d
        if backend is None:
            import usb.backend.libusb1 as libusb1
            import usb.backend.libusb0 as libusb0
            import usb.backend.openusb as openusb

            for m in (libusb1, openusb, libusb0):
                backend = m.get_backend()
                if backend is not …
Run Code Online (Sandbox Code Playgroud)

python python-module libusb python-2.7 pyusb

5
推荐指数
1
解决办法
1639
查看次数