El Tue, 18 Dec 2007 11:54:13 +0000
Daniel Drake <[EMAIL PROTECTED]> escribió:

> Gustavo Chain wrote:
> > Hi Folks.
> > 
> > I'm developing the Secugen-FDU2000 driver for fprint.
> > Currently it show the finger image and make the match.
> > 
> > I need testers for feedback (please)
> 
> Cool! How did you write the driver? (are specs available, did you 
> reverse engineer it, or what?)
A mix of both.
Secugen offer a API builded on top of libusb, so I add some code to
libusb, and I started to see what their API was doing.

After a week a work partner, send an spec with sample code.

> 
> Can you post the "lsusb -v" output for this device?
>

Sure:
$ lspci -v

[...]
Bus 004 Device 004: ID 1162:0300 Secugen Corp. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass       255 Vendor Specific Subclass
  bDeviceProtocol       255 Vendor Specific Protocol
  bMaxPacketSize0        64
  idVendor           0x1162 Secugen Corp.
  idProduct          0x0300 
  bcdDevice           20.30
  iManufacturer           1 
  iProduct                2 
  iSerial                 3 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           55
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           4
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
[...]

> How well is imaging working? i.e. can you verify and identify 
> accurately? 
I think not enough, the verification/identification works but you have
to put the finger in the /exactly/ same position to make the match.
>Roughly how many minutiae are detected per image? What's
LEFT_THUMB      = 20 .. 30 minutiae
LEFT_INDEX      = 20 .. 30 minutiae
LEFT_MIDDLE     = 30 .. 40 minutiae
LEFT_RING       = 30 .. 40 minutiae
LEFT_LITTLE     = 35 .. 45 minutiae

> the usual kind of bozorth3 match score for scanning the same finger
> twice?

How can I get that score ¿? ;-)

> 
> I have not heard of this sensor before and don't think it's been 
> mentioned on the list, so I wouldn't be surprised if nobody has one.
> I might be wrong though :)
http://www.secugen.com/

> 
> > TODO:
> > 1º Code cleanup.
> > 2º Resample Image 398x300 -> 260x300
> 
> Why? Is this some kind of anti-distortion?
The spec talks about a bilinear-resampling and an OPP correction.

> 
> A few comments on the code:
> 
> > #include <errno.h>
> > #include <string.h>
> > #include <unistd.h>
> > 
> > #include <usb.h>
> > 
> > #include <fp_internal.h>
> > 
> > #define FP_COMPONENT        "fdu2000"
> 
> FP_COMPONENT needs to come before other includes in order to take
> effect.
You're right. done!
> 
> >     bytes = usb_bulk_write(dev, USB_ENDPOINT_TYPE_ISOCHRONOUS,
> > cmd, sizeof(cmd), BULK_TIMEOUT);
> 
> Your use of the endpoint field is wrong. I really doubt this is an 
> isochronous endpoint, because you're using a function for a bulk 
> endpoint, and libusb doesn't support isochronous endpoints :)
> 
> Instead you should be using something like: 1 | USB_ENDPOINT_IN
> 
that endpoint was taken from the /instrumentation/ of libusb, I've
tried with 1 | USB_ENDPOINT_IN and is not working.


> >     if (bytes < 0) {
> >             fp_err("%d: %s", __LINE__, usb_strerror());
> >     }
> 
> I'd prefer a meaningful error message rather than a line number, as 
> these will change between releases etc.
ok, no problem, but at this moment, it is a very experimental driver,
those mesages will be changed (after code cleanups)
> 
> I'll leave further comments for when you've had a chance to do your 
> planned code cleanups. Thanks a lot for doing this, I look forward to 
> including it in libfprint :)
That would be nice. :)
> 
> Daniel
> 

Bytes!

-- 
Gustavo Chaín Dumit
http://0xff.cl
_______________________________________________
fprint mailing list
[email protected]
http://lists.reactivated.net/mailman/listinfo/fprint

Reply via email to