mirror of
https://gitlab.freedesktop.org/libfprint/libfprint.git
synced 2026-06-22 13:28:26 +02:00
73 lines
1.6 KiB
Python
73 lines
1.6 KiB
Python
#!/usr/bin/python3
|
|
|
|
import traceback
|
|
import sys
|
|
import gi
|
|
|
|
gi.require_version('FPrint', '2.0')
|
|
from gi.repository import FPrint, GLib
|
|
|
|
sys.excepthook = lambda *args: (traceback.print_exception(*args), sys.exit(1))
|
|
|
|
ctx = GLib.main_context_default()
|
|
|
|
c = FPrint.Context()
|
|
c.enumerate()
|
|
devices = c.get_devices()
|
|
|
|
d = next((dev for dev in devices if dev.get_driver() == "focaltech_moc"), None)
|
|
|
|
if d is None:
|
|
print("Error: Focaltech driver not loaded for any discovered device.")
|
|
sys.exit(1)
|
|
|
|
del devices
|
|
|
|
d.open_sync()
|
|
assert d.get_driver() == "focaltech_moc"
|
|
assert d.has_feature(FPrint.DeviceFeature.STORAGE_LIST)
|
|
assert not d.has_feature(FPrint.DeviceFeature.STORAGE_DELETE)
|
|
assert d.has_feature(FPrint.DeviceFeature.STORAGE_CLEAR)
|
|
|
|
|
|
print("Clearing storage (0xAC)...")
|
|
d.clear_storage_sync()
|
|
|
|
template = FPrint.Print.new(d)
|
|
|
|
def enroll_progress(*args):
|
|
print('Enroll progress: ' + str(args))
|
|
|
|
print("Enrolling (Perform 12 taps now)...")
|
|
p = d.enroll_sync(template, None, enroll_progress, None)
|
|
print("Enroll done.")
|
|
|
|
print("Listing prints...")
|
|
stored = d.list_prints_sync()
|
|
assert len(stored) == 1
|
|
assert stored[0].equal(p)
|
|
print("List verified.")
|
|
|
|
print("Verifying...")
|
|
verify_res, verify_print = d.verify_sync(p)
|
|
assert verify_res == True
|
|
print("Verify done.")
|
|
|
|
print("Delete is a no-op here")
|
|
d.delete_print_sync(p)
|
|
|
|
print('Identifying...')
|
|
match, identify_print = d.identify_sync(stored, None, None, None)
|
|
|
|
print('Identification SUCCESS')
|
|
assert match.equal(identify_print)
|
|
assert match.equal(p)
|
|
|
|
print("Clearing storage...")
|
|
d.clear_storage_sync()
|
|
|
|
final_list = d.list_prints_sync()
|
|
assert len(final_list) == 0
|
|
print("Cleanup verified.")
|
|
|
|
d.close_sync()
|