2014-07-07 84 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