Commit graph

1226 commits

Author SHA1 Message Date
Daniel Drake
0aac3706d7 upekts: release interface on error condition and normal exit 2007-10-25 15:36:13 +01:00
Daniel Drake
0ac74ef649 Pass driver_data from ID table to driver init function 2007-10-25 15:00:30 +01:00
Daniel Drake
2709c6dc8c Basic image driver foundations
The basic model is that image drivers declare a fp_img_driver structure
rather than a fp_driver struct. fp_img_driver will contain primitive imaging
operations such as 'scan finger and return image'. The imgdev layer will
generically implement the primitive fp_driver operations, and the imgdev
layer will fix up the enroll/verify/etc pointers at driver registration
time.

Removed const from all fp_driver declarations, as these are now modified
dynamically in the case of imaging drivers.
2007-10-23 23:27:21 +01:00
Daniel Drake
c97f4bb1a7 Fix verify debug messages
Teach it about the various error conditions.
2007-10-16 14:35:33 +01:00
Daniel Drake
801fcfc07c upekts: fix memory corruption
Found by valgrind
2007-10-16 14:34:47 +01:00
Daniel Drake
680142f268 storage: add save/load functionality
Prints can now be saved to disk (but you currently must classify which
finger they are) and you can load them later.

Added 2 simple example programs to demonstrate this.
2007-10-16 14:34:22 +01:00
Daniel Drake
3b8f8c195c upekts: support large messages
Add support for messages with a length greater than 255.
Also picked out a few more retry codes.
2007-10-16 13:41:23 +01:00
Daniel Drake
10bb96a0df Rename verify to verify_live
...to make way for an enroll example which stores on disk, and
a verify example that loads from disk.
2007-10-15 22:16:59 +01:00
Daniel Drake
bf9ce44f43 upekts: verify implementation
We can now verify live fingerprints using the verify example.
Error handling during verification needs to be improved.
2007-10-15 22:09:46 +01:00
Daniel Drake
f59112d57c Unhide fprint_data buffer from drivers
May as well keep things out in the open.
2007-10-15 22:07:22 +01:00
Daniel Drake
68bdfc7868 Verification infrastructure
Similar model to enrollment.
2007-10-15 22:06:56 +01:00
Daniel Drake
39271b4fe5 Enrollment: improved error reporting
Convert enrollment function to return a signed integer, which is negative
on error or corresponds into fp_enroll_result otherwise.
Now we can treat a 'FAIL' condition differently from an actual error: fail
means that enrollment didn't complete because the data was nonsense or
whatever (e.g. scanned a different finger for each stage?).

Updated upekts accordingly.
2007-10-14 00:51:20 +01:00
Daniel Drake
ab5b1ca8e9 upekts: communication handling and enrollment implementation
This completes an enrollment implementation for the upekts driver.
It's based on code from libthinkfinger, but as there seemed to be many
unknown details there, I spent some time analysing the bus messages in
more detail and have effectively rewritten almost all of the borrowed code.

Note that libthinkfinger is GPL licensed, so that reflects on this code too.
At release time I will ask them if they are OK for me to relicense it.
2007-10-13 17:13:25 +01:00
Daniel Drake
2995144310 Build system tweaks
Add configure-time controls for logging
Set some default compile-time warnings
2007-10-13 16:03:53 +01:00
Daniel Drake
50e2de0730 Enrollment tweaks
upekts will need to know when the first enrollment stage is attempted for
the first time, so add an __enroll_stage counter which actually indicates
the next stage to enroll. -1 is a special value and it means 0 is next *and*
it is the initial attemt.

Added more debug output to the enroll handler.
Added new fp_enroll_status codes for too short or uncentered scans.

Changed the print_data allocator to consider the device rather than the
driver, this feels more natural. Added missing return value.

Make fp_enroll_status codes start at 1. 0 can now be used as a
special/temporary value by the drivers. Also check that we aren't exceeding
the number of enroll stages.

Also add a missing exit() call to the verify example and update for the
above.
2007-10-13 15:51:33 +01:00
Daniel Drake
e6624fe508 Add 16 bit endianness functions 2007-10-12 15:28:46 +01:00
Daniel Drake
ec91736ac4 Add logging infrastructure
Also added some debug/error messages to existing code. For now debugging is
always on, this will be made optional later.
2007-10-12 15:14:29 +01:00
Daniel Drake
016ff33533 Enrolment infrastructure 2007-10-08 19:53:50 +01:00
Daniel Drake
b071f3cdb9 Initial fingerprint data representation ideas 2007-10-08 18:24:29 +01:00
Daniel Drake
59b73af909 Documentation update 2007-10-08 17:37:58 +01:00
Daniel Drake
f81aa47a19 Add 'verify' example skeleton
This will become an example program to enroll a fingerprint and then
verify a finger against it.
2007-10-08 17:37:33 +01:00
Daniel Drake
2c06a4ebfa Expose driver info to library users 2007-10-08 17:18:29 +01:00
Daniel Drake
711bb1151b open/close device functions 2007-10-08 17:16:56 +01:00
Daniel Drake
7d31cb4d45 Basic device discovery infrastructure 2007-10-08 17:16:54 +01:00
Daniel Drake
046bdc0bda Initial driver registration mechanism
Also added the basis of the upekts driver, which is the first I'll
implement.
2007-10-08 17:16:51 +01:00
Daniel Drake
7d3612d9f6 Create repo structure 2007-10-08 17:16:13 +01:00