Hi,

On 18-01-18 16:03, Sebastien Bechet wrote:
Thank you Igor. Hans, you can try again with last version.

Not tested, but looking at the code, it will loop in
the calibration, my 2 devices both need a:

if (result == 0x03) break;

Directly after the:

printf("Calibration Status: 0x%x\n", result);

Line, currently the code only checks for result == 0x03 for
the result of the get_cmd_status command, while it should
check (for my devices) the result of the get_cmd_calibration
command.

Regards,

Hans




I also tried to remove reset+fuseload then calibration not working
anymore for 0x0903. It seems it is a part for calibration (same pdf
file for reset _and_ calibration or .... reset _then_ calibration?).

https://github.com/sbechet/elanfp

Konata and timo, can you give us width, height, firmware version and
calibration status using elanfp.c please?





Le jeudi 18 janvier 2018 à 14:02 +0000, Igor Filatov a écrit :
square and seems to contain the image 3 times
Could be because convert is hardcoded at 96x96.

On Thu, 18 Jan 2018, 12:04 Hans de Goede, <hdego...@redhat.com>
wrote:
Hi,

On 18-01-18 10:48, Sébastien Béchet wrote:
On 17-01-18 19:21, Igor Filatov wrote:
We didn't have the spec before so I had no idea how different
devices worked. Especially given that some commands which worked
fine for me produced errors one other devices. Now that we have the
docs I'll work on adapting the driver. Naturally, any info you have
is welcome and so is any help with testing.

I have done the [synthesis](https://github.com/sbechet/elanfp/blo
b/master/README.md) about all informations we have a prepare
questions for KT.

My 0x0c16 id reader has firmware version 1.56, resolution 96x96

I also have bought a stand-alone USB reader for when I would
find time to work on this, this has an usb-id of: 0x0c26.

After aking these changes:

--- elanfp.c~   2018-01-18 10:58:59.919912347 +0100
+++ elanfp.c    2018-01-18 11:01:50.346280668 +0100
@@ -71,7 +71,8 @@
                   (desc.idVendor == 0x04f3) && (desc.idProduct ==
0x0903) ||
                   (desc.idVendor == 0x04f3) && (desc.idProduct ==
0x0907) ||
                   (desc.idVendor == 0x04f3) && (desc.idProduct ==
0x0c03) ||
-                (desc.idVendor == 0x04f3) && (desc.idProduct ==
0x0c16) ) {
+                (desc.idVendor == 0x04f3) && (desc.idProduct ==
0x0c16) ||
+                (desc.idVendor == 0x04f3) && (desc.idProduct ==
0x0c26) ) {
                   r0 = 0;
                   printf("Device with vid %x pid %x found.\n",
desc.idVendor, desc.idProduct);
                   break;
@@ -156,7 +157,7 @@
           printf("CMD Get Image Size sent\n");
       }
       r0 = libusb_bulk_transfer(handle, BULK_EP3_IN, img_buf, 4,
&transferred, 0);
-    printf("Width x height = %dx%d\n", img_buf[0], img_buf[2]);
+    printf("Width x height = %dx%d\n", (unsigned char)img_buf[0],
(unsigned char)img_buf[2]);

       /* calibration */

@@ -180,6 +181,7 @@
           }
           r0 = libusb_bulk_transfer(handle, BULK_EP3_IN, &result,
1, &transferred, 0);
           printf("Calibration Status: 0x%x\n", result);
+        if (result == 0x03) break;

           r0 = libusb_bulk_transfer(handle, BULK_EP1_OUT,
get_cmd_status, 2, &transferred, 0);
           if((r0 == 0) && (transferred == 2)) {

This one works with the POC too, although for some reason the
generated out.png
is square and seems to contain the image 3 times?

This one has firmware version 1.64, resolution 64x144 and as shown
in the necessary changes this
one does report a calibration status of 0x03 when it is done with
the calibration, I think
we should add an extra column for this to the hardware report
table.

Regards,

Hans
_______________________________________________
fprint mailing list
fprint@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/fprint

Reply via email to