我正在尝试使用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编写程序,它可以从扫描仪获取输入并保存为jpg。我不知道如何开始。请帮忙。
我想知道是否可以使用供应商 ID 和产品 ID 来控制 Python 中 USB 端口的电源。它应该控制电源,而不仅仅是启用和禁用端口。如果您能提供一些例子,我们将不胜感激。
我正在尝试使用 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正在导入但是当我尝试搜索设备时出现以下错误,请帮忙
>>> 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) 我正在尝试使用 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)
这会找到设备,但是当它尝试读取数据时,会出现超时错误。万用表的文档和支持非常糟糕,所以我无法去那里寻求帮助。如何成功读取设备?
我用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) 我想提取单芯片光学鼠标传感器(特别是 ADNS-2700)捕获的实际图像。与互联网上使用微控制器与成像芯片的 SPI 接口通信的各种其他教程(如下所示)不同,我尝试使用的芯片集成了 USB 接口。
我已经成功提取了以下示例中的按钮按下、速度和滚轮:
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) 我在 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) 我正在尝试在我的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)