[sane-devel] Re: sane-find-scanner detects smartcard reader as
scanner
Johannes Meixner
jsmeix at suse.de
Tue Aug 8 13:18:04 UTC 2006
Hello,
On Aug 8 18:34 Parag N(????) wrote (shortened):
> On 8/8/06, Johannes Meixner <jsmeix at suse.de> wrote:
> > On Aug 8 16:49 Parag N(????) wrote (shortened):
> > > What sane-find-scanner does
> > ...
> > > 3)check_usb_file will open each attached usb device and then collect
> > > USB ID's and it will show you that output.
...
> > Right now I didn't check check_usb_file and the functions
> > which it calls in detail but according to
> > https://bugzilla.novell.com/attachment.cgi?id=95324&action=view
> > it seems sane-find-scanner lists any USB device as scanner when
> > either bDeviceClass = 255 (Vendor Specific Class)
> > or bDeviceClass = 0 (Defined at Interface level)
> > and bInterfaceClass = 255 (Vendor Specific Class)
> > because those USB devices are "The Usual Suspects" ;-)
>
> yeah i just checked with other USB webcams and barcode scanners and
> what i found is that your observation is correct.
> for all webcams i got
> either bDeviceClass = 255 (Vendor Specific Class)
> or bDeviceClass = 0 (Defined at Interface level) with bInterfaceClass
> = 255 (Vendor Specific Class)
> but for USB barcode scanner i got
> bDeviceClass = 0 (Defined at Interface level) with bInterfaceClass = 3
> which is not detected by sane-find-scanner.
As far as I have found out up to now, it is not check_usb_file()
but nowadays check_libusb_device() (if libusb is used)
and here the section
/* Some heuristics, which device may be a scanner */
seems to be the crucial one:
-------------------------------------------------------------------
case USB_CLASS_VENDOR_SPEC:
++is_scanner;
break;
...
case USB_CLASS_VENDOR_SPEC:
case USB_CLASS_PER_INTERFACE:
case 16: /* data? */
++is_scanner;
break;
...
if (is_scanner > 0)
...
printf ("found USB scanner ...
-------------------------------------------------------------------
In particular it seems bInterfaceClass is not tested at all.
Kind Regards
Johannes Meixner
--
SUSE LINUX Products GmbH, Maxfeldstrasse 5 Mail: jsmeix at suse.de
90409 Nuernberg, Germany WWW: http://www.suse.de/
More information about the sane-devel
mailing list