2014-07-07 54 views
0

我需要能够与USB扫描仪(特别是Epson Perfection V550)连接。我曾尝试ImageScanner,它似乎并没有找到我的设备(我也尝试安装twain,但有说访问USB扫描仪

Could not find any downloads that satisfy the requirement twain.) 

所以不是我转身PyUSB,可以看到,设备出现的问题,是有这个问题我现在是,我不知道我需要发送的设备为它扫描和送我回的图片

下面是代码,我已经运行:

import usb.core 
import usb.util 
import sys 

venderID = 0x04B8 
productID = 0x013B 

dev = usb.core.find(idVendor=venderID, idProduct=productID) 
for cfg in dev: 
    print cfg 

和输出到那是:

CONFIGURATION 1: 2 mA ==================================== 
    bLength    : 0x9 (9 bytes) 
    bDescriptorType  : 0x2 Configuration 
    wTotalLength   : 0x20 (32 bytes) 
    bNumInterfaces  : 0x1 
    bConfigurationValue : 0x1 
    iConfiguration  : 0x0 
    bmAttributes   : 0xc0 Self Powered 
    bMaxPower   : 0x1 (2 mA) 
    INTERFACE 0: Vendor Specific =========================== 
    bLength   : 0x9 (9 bytes) 
    bDescriptorType : 0x4 Interface 
    bInterfaceNumber : 0x0 
    bAlternateSetting : 0x0 
    bNumEndpoints  : 0x2 
    bInterfaceClass : 0xff Vendor Specific 
    bInterfaceSubClass : 0xff 
    bInterfaceProtocol : 0xff 
    iInterface   : 0x0 
     ENDPOINT 0x81: Bulk IN =============================== 
     bLength   : 0x7 (7 bytes) 
     bDescriptorType : 0x5 Endpoint 
     bEndpointAddress : 0x81 IN 
     bmAttributes  : 0x2 Bulk 
     wMaxPacketSize : 0x200 (512 bytes) 
     bInterval  : 0xff 
     ENDPOINT 0x2: Bulk OUT =============================== 
     bLength   : 0x7 (7 bytes) 
     bDescriptorType : 0x5 Endpoint 
     bEndpointAddress : 0x2 OUT 
     bmAttributes  : 0x2 Bulk 
     wMaxPacketSize : 0x200 (512 bytes) 
     bInterval  : 0xff 
+0

你是明确地试图在代码中做到这一点,或者你会满意与工作的应用程序?我一直很高兴与我的富士通ScanSnap S1500 vuescan。适用于USB扫描仪的Linux和Windows,但可能不是您的。 – hughdbrown

+0

明确地试图用Python做到这一点。我可以通过它附带的默认软件访问扫描器,但这不是此项目的目标。 – NightHallow

+1

PyUSB只允许您访问原始USB描述符/端点。为了让你的扫描仪运行,你必须在Python中实现你自己的驱动程序,这是很多工作。你会更适合试图让TWAIN工作。 – jbaiter

回答

0

如果您可以使您的扫描仪在Windows上工作,您可以做的是在Linux主机上设置Windows虚拟机。我推荐gnome-boxes/KVM。你需要一台带有CPU虚拟化扩展的主机(大多数现代CPU都有)。

然后在主机上安装Wireshark。使用wireshark,您可以监视Windows扫描仪驱动程序和设备之间的USB通信。基于此,您可以希望对USB协议进行逆向工程。一旦理解了协议,使用PyUSB实现它就相对容易。

+0

好的。我不需要该程序在Linux中工作,只能在Windows中工作,而扫描程序将在Windows上工作。我已经有了Wireshark,所以我会以这种方式研究逆向工程。谢谢。将通知我的进展。 – NightHallow