AET60 BioCARDKey. Application Programming Interface. Subject to change without prior notice

Similar documents
AET60 API version 1.4 February Introduction...3 Features...3 Application Programming Interface...4

Precise BioMatch Standard Toolkit 1.1 Manual First Edition January 2003

AET63 BioTRUSTKey. Application Programming Interface. Subject to change without prior notice

UniFinger SFM series. Application Notes [ Fingerprint enrollment using SFR SDK ] Version by Suprema Inc.

UniFinger Engine SDK Reference Manual Version 3.0.0

IDKit - Fingerprint Identification SDK

UniFinger Engine SFR300 SDK Reference Manual

Bio-FactsFigures.docx Page 1

Airence C Library v1.2 for Windows

NITGEN Biometric Service Provider SDK. SDK version 4.30

ThinkVantage Fingerprint Software

1TouchXL & 1TouchXLS

GUI and API Application Note

AWARD TOP PERFORMER. Minex III FpVTE PFT II FRVT PRODUCT SHEET. Match on Card. Secure fingerprint verification directly on the card

SecuGen WebAPI Programmer s Manual

Zodiac iclass II OPERATOR GUIDE

An overview of how to write your function and fill out the FUNCTIONINFO structure. Allocating and freeing memory.

User Manual. SUSI IoT. Secured & Unified Smart Interface Software for Internet of Things APIs

PusleIR Multitouch Screen Software SDK Specification. Revision 4.0

int fnvgetconfig(handle h, UINT32 id, const void *cfg, size_t sz);... 4

GT-400 User Guide for Attendance Enterprise 2.1

STD_CU43USBSW_V1.0E. CUnet (MKY43) USB Unit. CU-43USB Software Manual

Biometric Security Roles & Resources

USER MANUAL. BioPro SA50 Fingerprint & Palm Terminal. Version: 1.0 Date: August Inch TFT Terminal User Manual 1

Park, Jun Woo KISA / IT Security Evaluation Center

OptimiData. JPEG2000 Software Development Kit for C/C++ Reference Manual. Version 1.6. from

Final assignment: Hash map

F-X20FO Fingerprint safe

Technical White Paper. Behaviometrics. Measuring FAR/FRR/EER in Continuous Authentication

IO-Warrior Dynamic Library V1.5 for Windows

QNX Software Development Platform 6.6. Input Events Library Reference

I3000 User s Guide Revision: V1.20 Date: st 22 st

ArduCAM USB Camera C/C++ SDK

Zodiac iclass OPERATOR GUIDE

RX Family APPLICATION NOTE. Simple I 2 C Module Using Firmware Integration Technology. Introduction. Target Device.

Overview of ANSI INCITS Fingerprint Standards on Data Interchange Format. Robert Yen DoD Biometrics Management Office 4 October, 2005

WebNet HandPunch User Guide for Attendance on Demand. (Download at

Call DLL from Limnor Applications

User Manual. SUSI Library

CANopen Win API. Version TK Engineering Oy

TriMedia Motion JPEG Decoder (VdecMjpeg) API 1

Zodiac Max OPERATOR GUIDE

BioSIMKey - ADT60 Reference Manual rev 1.1, Aug, 2002

---Functions Manual---

ArduCAM USB Camera SDK

Generalised User Interface for Embedded Applications using an LCD screen and keypad.

DEKART Logon for Lotus Notes. Users Guide. Pages 41

ACR122L Serial NFC Reader with LCD

SDK-S User Manual K-21-A ( ) 1 Copyright 2013 B&W Tek, Inc.

Biometric Data Acquisition using MATLAB GUIs

Effective Programming in C and UNIX Lab 6 Image Manipulation with BMP Images Due Date: Sunday April 3rd, 2011 by 11:59pm

SpinWarrior Dynamic Library V1.5 for Windows and Linux

Allied Time AT-5000 Fingerprint & RFID Calculating Time Recorder With Built-in Thermal Printer & Battery Backup User Manual

USER MANUAL. 4.3-inch Touch Screen & Palm Attendance Terminal. Version: 1.0 Date: August, 2017

Artemis SDK. Copyright Artemis CCD Limited October 2011 Version

Key Switch Control Software Windows driver software for Touch Panel Classembly Devices

Program Block Editor and Compiler (PBEC)

MPLAB Harmony Help - Test Harness Library

MPLAB Harmony Test Libraries Help

Discussion 3 Richard Guo Advanced C 01/28/09

Pegasus Development Kit Programmer's Reference. Version Pegasus Development Kit is out of a support.

C Review. MaxMSP Developers Workshop Summer 2009 CNMAT

BioBridge. Maxxess efusion. Quick Start Guide

BioLite Net. Firmware Revision Notes EN BLN V1.43. Biometrics & Security. Version 1.43

NITGEN. Developer Guide. Version RS-232C serial protocol for Stand-Alone Fingerprint Recognition Device. Serial Protocol

2.When back to factory default, press SET button until hear Di-Di-Di beep and release the button,means initialization operation successful.

Biometric Sensor SDK. Integration Guide 4.17

TPMC821-SW-42. VxWorks Device Driver. User Manual. The Embedded I/O Company. INTERBUS Master G4 PMC. Version 1.4. Issue 1.

400 Fingerprint Door Lock User Manual

Perle Dial-Out User s Guide

ALLDAY TIME SYSTEMS LTD. Allday PT1400 Biometric User Guide

Linux SDK for UPnP Devices v1.4

IBM Content Manager for iseries. Messages and Codes. Version 5.1 SC

SpiNNaker Application Programming Interface (API)

Facial & Fingerprint Recognition Product

3.2 No records found though staff have clocked in/out The machine cannot connect with PC Clock s time works fine, but FP scanner

ACR122S. Serial NFC Reader. Application Programming Interface V2.03. Subject to change without prior notice.

X200 BIOELECTRONIX. Operating Instructions. X200 Main Interface. Clear or Backspace. Menu Key. On Duty IN & Shift UP

NOTE: Debug and DebugSingle are the only MPI library configurations that will produce trace output.

Object Explorer. Atacama Large Millimeter Array

AUTO FOCUS MODULE CUSTOM CAMERAS FOR MASS PRODUCTION APPLICATIONS USER GUIDE

USAFE API ReadMe. Who Should Read This Document? Building the USAFE Sample. Using the.mak File. Using the.dsw File

python-unrar Documentation

FINGERPRINT TERMINAL HARDWARE USER'S MANUAL

.NET Wrapper SDK Descriptor

Developer Documentation

VueMetrix Firmware Uploader

PDF Document structure, that need for managing of PDF file. It uses in all functions from EMF2PDF SDK.

BioBridge. Brivo ACS. Quick Start Guide

RC1000-PP. Function Reference Manual

Biometric Fingerprint Reader Unit OZD-ABC-OA99 Technical Specification Data Sheet

TIP120-SW-42. VxWorks Device Driver. Motion Controller with Incremental Encoder Interface. Version 2.1.x. User Manual. Issue 2.1.

ACR122L NFC Reader with LCD

KC Web API Programmer Reference

Reference Manual. ACT350 Fieldbus Communication - SAI

82V391x / 8V893xx WAN PLL Device Families Device Driver User s Guide

Open Mobile API Specification

T-7 FINGERPRINT TERMINAL. HARDWARE USER'S MANUAL Rev 1.1

PSK Propagation Reporter DLL Documentation 2013-Mar-10 Philip Gladstone

Lumidigm Frequently Asked Questions

Transcription:

AET60 BioCARDKey Application Programming Interface Subject to change without prior notice

Table of Contents 1.0. Introduction... 3 2.0. Application Programming Interface... 4 2.1. Overview...4 2.2. Data Types...4 2.3. Data Structures...4 2.3.1. AET60_DATA...4 2.3.2. AET60_BITMAP...4 2.4. Functions...5 2.4.1. AET60_Open...5 2.4.2. AET60_Close...5 2.4.3. AET60_GetNumDevices...5 2.4.4. AET60_GetDeviceName...6 2.4.5. AET60_LockReader...6 2.4.6. AET60_UnlockReader...7 2.4.7. AET60_Capture...7 2.4.8. AET60_Enroll...8 2.4.9. AET60_Verify...9 2.4.10. AET60_Match...9 2.4.11. AET60_GetLastStatus...11 2.4.12. AET60_GetStatus...11 2.4.13. AET60_GetMessage...11 2.4.14. AET60_SetCallback...12 2.5. FAR and FRR...13 2.6. Callback Routine...13 Appendix A. Status Codes... 15 Appendix B. Callback Message Codes... 16 Page 2 of 16

1.0. Introduction The AET60 complies with the specifications defined by the BioAPI consortium (version 1.1, March 2001). ACS provides a Windows DLL layer that will make it easier for programmers to develop AET60 applications, while still conforming to the BioAPI standards. Using this layer, programmers need not use the complicated data structures and APIs defined in the BioAPI specifications. The AET60 is a composite device, consisting of a fingerprint scanner and a smart card reader. This document will only cover APIs related to the fingerprint scanner. The smart card reader module will follow the PC/SC API standards. Page 3 of 16

2.0. Application Programming Interface 2.1. Overview The AET60 layer is in the form of a Windows Dynamic Link Library (DLL) AET60.DLL. Any programming language that can call a DLL can access this layer, such as Visual C++, Visual Basic or Delphi. 2.2. Data Types The AET60 layer uses the following elementary data types: BYTE - 8-bit unsigned value; WORD8-8-bit unsigned value; WORD16-16-bit unsigned value; INT16-16-bit signed value; INT32-32-bit signed value; WORD32-32-bit unsigned value; 2.3. Data Structures The AET60 layer hides from the programmer almost all data structures defined by the BIOAPI specifications. It only uses 2 data structures for callback purposes. 2.3.1. AET60_DATA This structure holds a general-purpose variable-length data. typedef struct { WORD32 Length; // specifies the size, in bytes, of the next // element BYTE *Data; // points to the data, a byte array } AET60_DATA; 2.3.2. AET60_BITMAP This structure holds a fingerprint bitmap image. If you want to develop your own callback routine, this structure will be passed as a parameter to display the fingerprint image captured by the AET60 scanner. typedef struct { WORD32 Width; // specifies the Width of the image in pixels WORD32 Height; // specifies the Height of the image in pixels AET60_DATA *Bitmap; // points to the bitmap image } AET60_BITMAP; The Data field of the Bitmap member points to a 256-color bitmap image. Each byte in the Data field represents a pixel. Page 4 of 16

2.4. Functions 2.4.1. AET60_Open This function initializes the AET60 library. Application must call this function first before the other AET60 APIs. WORD32 AET60_Open (); None 0x00000000 0xFFFFFFE 0xFFFFFFF Success AET60_Open already called. Unable to Initialize Library. Call AET60_GetLastStatus for more details. 2.4.2. AET60_Close This function closes the AET60 library, and frees up resources allocated by AET60_Open. Call this function when you no longer need the AET60. WORD32 AET60_Close (); None 0x00000000 0xFFFFFFF Success AET60_Open was not called previously. 2.4.3. AET60_GetNumDevices This function returns the number of biometric devices installed in the system. INT32 AET60_GetNumDevices (); None >= 0 Success. This indicates the number of BioAPI-compliant devices installed in your system. 0xFFFFFFF AET60_Open not called. Page 5 of 16

2.4.4. AET60_GetDeviceName This function returns the name of the indexed biometric device installed in the system. WORD32 AET60_GetDeviceName (INT32 index, char *Name, int *NameLength); [IN] index [OUT] Name [IN/OUT] NameLength The index number of the target biometric device. Valid values for this parameter range from 0 to N-1, where N is the return value of AET60_GetNumDevices. On success, the function will fill up a NULL-terminated string into this parameter On entry, this parameter indicates the length (in bytes) of the Name parameter. On exit, the function stores the length of the Name string. If NameLength on entry is < NameLength on exit, the Name parameter will not be modified. 0x00000000 Success. 0xFFFFFFF AET60_Open not called. 2.4.5. AET60_LockReader This function prepares the indexed biometric device for exclusive use for the application. You must call this function first before using the fingerprint scanner. WORD32 AET60_LockReader (INT32 index); [IN] index The index number of the target biometric device. Valid values for this parameter ranges from 0 to N-1, where N is the return value of AET60_GetNumDevices. 0x00000000 Success. AET60 device is ready. 0xFFFFFFF AET60_Open not called. Page 6 of 16

2.4.6. AET60_UnlockReader This function frees the biometric device previously locked by AET60_LockReader. WORD32 AET60_UnlockReader (); None. 0x00000000 Success. 0xFFFFFFF AET60_Open not called. 2.4.7. AET60_Capture This function scans for a live finger in the AET60 scanner. It then returns the corresponding fingerprint template of the captured finger. You can call this function only after a successful call to AET60_LockReader. WORD32 AET60_Capture (BYTE *Template, DWORD *TemplateLength, DWORD TimeOut); [OUT] Template [IN/OUT] TemplateLength [IN] TimeOut Points to a buffer that will store the captured fingerprint template. On entry, this parameter indicates the length of the buffer pointed by Template. On exit, this parameter will hold the captured fingerprint template size in bytes. If TemplateLength on exit is > TemplateLength on entry, the Template parameter will not hold the captured fingerprint Template. You will have to allocate a bigger template and call the function again. Specifies how long in milliseconds - the AET60 will wait for a fingerprint capture. 0x00000000 Success. 0xFFFFFFF AET60_Open not called. Page 7 of 16

2.4.8. AET60_Enroll This function will prompt user to present finger onto the scanner and consolidates the template for enrollment purpose. It then returns the corresponding fingerprint template of the captured finger. You can call this function only after a successful call to AET60_LockReader. WORD32 AET60_Enroll (BYTE *Template, DWORD *TemplateLength, DWORD TimeOut); [OUT] Template [IN/OUT] TemplateLength [IN] TimeOut Points to a buffer that will store the captured-andconsolidated fingerprint template. On entry, this parameter indicates the length of the buffer pointed by Template. On exit, this parameter will hold the captured fingerprint template size in bytes. If TemplateLength on exit is > TemplateLength on entry, the Template parameter will not hold the captured fingerprint Template. You will have to allocate a bigger Template and call this function again. Specifies how long in milliseconds - the AET60 will wait for a fingerprint capture. 0x00000000 Success. 0xFFFFFFF AET60_Open not called. Page 8 of 16

2.4.9. AET60_Verify This function will prompt the user to present finger onto the scanner and compares it to the given fingerprint template. It will match the live finger with the given template and report the result. You can call this function only after a successful call to AET60_LockReader. WORD32 AET60_Verify (BYTE *Template, DWORD TemplateLength, DWORD TimeOut, BOOL *Result, DWORD *Far, DWORD *Frr, DWORD *AchievedFar, DWORD *AchievedFrr); [IN] Template [IN] TemplateLength [IN] TimeOut [OUT] Result [IN/OUT] Far [IN/OUT] Frr [OUT] AchievedFar [OUT] AchievedFrr Points to a fingerprint template that will be matched against the scanned finger in AET60. This parameter indicates the length of the buffer pointed by Template. Specifies how long in milliseconds - the AET60 will wait for a fingerprint capture. This parameter will hold the result of the matching test done by the AET60 DLL. If it is non-zero, then the finger matches the template. On entry, specifies the desired FAR scanning level. On exit, indicates the FAR scanning level used. On entry, specifies the desired FRR scanning level. On exit, indicates the FRR scanning level used. Indicates the FAR scanning level achieved. Indicates the FRR scanning level achieved. 0x00000000 Success. 0xFFFFFFF AET60_Open not called. 0xFFFFFFC Template size is too small; or Template is invalid. 0xFFFFFFD Internal memory error. 2.4.10. AET60_Match This function will match 2 given fingerprint templates and report the result to the application. You can call this function only after a successful call to AET60_LockReader. WORD32 AET60_Match (BYTE *Template1, DWORD Template1Length, BYTE *Template2, DWORD Template2Length, BOOL *Result, DWORD *Far, DWORD *Frr, DWORD *AchievedFar, DWORD *AchievedFrr); [IN] Template1 [IN] Template1Length Points to the 1 st fingerprint template that will be matched. This parameter indicates the length of the buffer pointed by Template1. Page 9 of 16

[IN] Template2 [IN] Template2Length [OUT] Result [IN/OUT] Far [IN/OUT] Frr [OUT] AchievedFar [OUT] AchievedFrr Points to the 2 nd fingerprint template that will be matched. This parameter indicates the length of the buffer pointed by Template2. This parameter will hold the result of the matching test done by the AET60 DLL. If it is non-zero, then the finger matches the template. On entry, specifies the desired FAR scanning level. On exit, indicates the FAR scanning level used. On entry, specifies the desired FRR scanning level. On exit, indicates the FRR scanning level used. Indicates the FAR scanning level achieved. Indicates the FRR scanning level achieved. 0x00000000 Success. 0xFFFFFFF AET60_Open not called. 0xFFFFFFC Template(s) size is too small; Template(s) is invalid. 0xFFFFFFD Internal memory error. Page 10 of 16

2.4.11. AET60_GetLastStatus This function will return the BIOAPI status code of the last AET60 API called. This function is used for compatibility with BioAPI specifications. WORD32 AET60_GetLastStatus (); None. Please refer to Appendix A for the meaning of the status code. 2.4.12. AET60_GetStatus This function will return a null-terminated string corresponding to the BioAPI status code passed. WORD32 AET60_GetStatus (DWORD Status, char *string); [IN] Status [OUT] string Always returns 0x00. Status code returned by BioAPI driver. This parameter will hold the null terminated string corresponding to Status. 2.4.13. AET60_GetMessage This function will return a null-terminated string corresponding to the BioAPI callback message code passed. WORD32 AET60_GetMessage (DWORD Message, char *string); [IN] Message [OUT] string Always returns 0x00. Message code returned by BioAPI driver. This parameter will hold the null terminated string corresponding to Message. Page 11 of 16

2.4.14. AET60_SetCallback This function will set your callback routine to handle events during finger scanning. It allows your program to control the GUI while finger scanning is in progress. You can call this function only after a successful call to AET60_LockReader. int AET60_SetCallback (AET60_CALLBACK_TYPE Callback) [IN] Callback Points to a callback function that will handle events during finger scanning. Please refer to section 3.5 for more details. 0x00000000 Success. Page 12 of 16

2.5. FAR and FRR FAR (False Acceptance Rate) is the probability that two different fingerprint data are falsely matched. FRR (False Rejection Rate) is the probability that two fingerprint data representing the same sample base do not match. Compliant to the BioAPI specifications, the user is given the option to provide the desired FAR and FRR values consistent to his program requirements. FAR and FRR parameters are 32-bit integer values that are translated into their respective FAR and FRR values by the formula: FAR/FRR = N/(2 31-1) where N = FAR/FRR parameter value The AET60 implements five (5) security levels based on the desired FAR/FRR values defined by the user, summarized as follows: Security FAR FRR Level Parameter Value Parameter Value 0 (Highest) 2148 0.000001 654983 0.001902 1 310419 0.000145 500364 0.000233 2 500364 0.000233 464931 0.000217 3 2515777 0.001172 358630 0.000167 4 4083440 0.001902 346819 0.000162 2.6. Callback Routine During finger scanning (AET60_Enroll, AET60_Verify, AET60_Capture), your application will lose control as the AET60 driver takes over. The AET60 driver however allows your application to intercept events during scanning via the callback routine. You can define a customized callback routine that knows what events are happening during finger scanning. The AET60 driver will call your callback routine based on the events happening during finger scanning. The callback prototype is: typedef DWORD (*AET60_CALLBACK_TYPE) (void *Param, WORD32 GuiState, BYTE Response, WORD32 Message, BYTE Progress, AET60_BITMAP *SampleBuffer); [IN] Param [IN] GUIState [IN] Response [IN] Message [IN] Progress [IN] SampleBuffer Not used. Bit-mapped value indicating which parameter(s) is valid. Not used. Message Code that prompts user what action to take. Not used. Points to a bitmap image of the finger currently on the scanner. Page 13 of 16

Typical Callback Code: Below is a typical application callback routine that handles the events sent by the AET60 driver to your application. DWORD MyCallback (void *GuiStateCallbackCtx, { } WORD32 GuiState, BYTE Response, WORD32 Message, BYTE Progress, AET60_BITMAP *SampleBuffer) // check GuiState s bit if Message parameter is valid. if (GuiState & BioAPI_MESSAGE_PROVIDED) { char string [128]; // call AET60_GetMessage to convert Message code to English text AET60_GetMessage (Message, string); // then display it in the GUI DisplayString (string); } // check GuiState s bit if SampleBuffer parameter is valid. if (GuiState & BioAPI_SAMPLE_AVAILABLE) { // display the fingerprint image to GUI // display as 256-color DIB image DisplayDIB (SampleBuffer->Bitmap->Data, SampleBuffer->Width, SampleBuffer->Height); } return 0; Page 14 of 16

Appendix A. Status Codes If the AET60 layer returns an error code, you can check what specific BIOAPI error it has encountered by calling the following APIs: AET60_GetStatus (AET60_GetLastStatus (), String); Your String variable will then hold the error status last encountered. The following are a list of Status Codes returned by the BIOAPI driver. These are defined in the BioAPI header file: bioapi_err.h. BioAPI_OK BioAPI_UNSUPPORTED_BIR_HANDLE BioAPIERR_BSP_ACTION_CANCELLED_BY_USER BioAPIERR_BSP_AUDIT_DATA_ENCRYPTION_ERROR BioAPIERR_BSP_INVALID_BIR BioAPIERR_BSP_PM_CONSOLIDATION_FAIL BioAPIERR_BSP_PM_INIT_FPFLTR_FAIL BioAPIERR_BSP_PM_INIT_MATCHER_FAIL BioAPIERR_BSP_PM_INIT_QUALITY_FAIL BioAPIERR_BSP_PM_MATCH_FAIL BioAPIERR_BSP_PM_SET_SECURITY_LEVEL_FAIL BioAPIERR_BSP_PP_BAD_DEVICE BioAPIERR_BSP_PP_BAD_STATE BioAPIERR_BSP_PP_BADPARAMETER BioAPIERR_BSP_PP_BUFFER_TOO_SMALL BioAPIERR_BSP_PP_DEVICEINUSE BioAPIERR_BSP_PP_ERROR BioAPIERR_BSP_PP_INVALID_LICENSE BioAPIERR_BSP_PP_NODEVICE BioAPIERR_BSP_PP_NOT_SUPPORTED BioAPIERR_BSP_PP_NOTAUTHORIZED BioAPIERR_BSP_PP_SENSOR_COMMUNICATION BioAPIERR_BSP_PURPOSE_NOT_SUPPORTED BioAPIERR_BSP_TIMEOUT_EXPIRED OK Unsupported BIR handle Action cancelled by user Audit data encryption failure Invalid BIR Consolidation failure fpfltrinit failure InitMatcher failure InitQuality failure Match failure SetSecurityLevel failure Bad device PP bad state Bad parameter Buffer too small Device in use PP Error Invalid license No device Not supported Not authorized Sensor communication failure Purpose not supported Timeout expired Page 15 of 16

Appendix B. Callback Message Codes List of BIOAPI Callback message codes. These are defined in BIOAPI header file bioapi_touchchip_bsp_gui_message.h. TOUCHCHIP_GUI_MESSAGE_BAD_QUALITY TOUCHCHIP_GUI_MESSAGE_CLEAN_SENSOR TOUCHCHIP_GUI_MESSAGE_CONSOLIDATION_FAIL TOUCHCHIP_GUI_MESSAGE_CONSOLIDATION_SUCCEED TOUCHCHIP_GUI_MESSAGE_ENROLL_START TOUCHCHIP_GUI_MESSAGE_FINGER_DETECT_START TOUCHCHIP_GUI_MESSAGE_GOOD_IMAGE TOUCHCHIP_GUI_MESSAGE_GUI_FINISH TOUCHCHIP_GUI_MESSAGE_GUI_FINISH_FAIL TOUCHCHIP_GUI_MESSAGE_GUI_FINISH_SUCCEED TOUCHCHIP_GUI_MESSAGE_KEEP_FINGER TOUCHCHIP_GUI_MESSAGE_NO_FINGER TOUCHCHIP_GUI_MESSAGE_PUT_FINGER TOUCHCHIP_GUI_MESSAGE_PUT_FINGER2 TOUCHCHIP_GUI_MESSAGE_PUT_FINGER3 TOUCHCHIP_GUI_MESSAGE_REMOVE_FINGER TOUCHCHIP_GUI_MESSAGE_START TOUCHCHIP_GUI_MESSAGE_TOO_DARK TOUCHCHIP_GUI_MESSAGE_TOO_DRY TOUCHCHIP_GUI_MESSAGE_TOO_HIGH TOUCHCHIP_GUI_MESSAGE_TOO_LEFT TOUCHCHIP_GUI_MESSAGE_TOO_LIGHT TOUCHCHIP_GUI_MESSAGE_TOO_LOW TOUCHCHIP_GUI_MESSAGE_TOO_RIGHT TOUCHCHIP_GUI_MESSAGE_TOO_SMALL TOUCHCHIP_GUI_MESSAGE_TOO_STRANGE TOUCHCHIP_GUI_MESSAGE_VERIFY_START Bad quality Clean the sensor Consolidation fails Consolidation succeeds Enrollment GUI start Finger detect GUI start Good image Non-specific GUI end Operation Failed GUI end Operation succeeded GUI end Keep the finger No finger present Put your finger Put finger for the 2nd time Put finger for the 3rd time Remove finger Non-specific GUI start Use less pressure Moisten finger Move down Move right Press harder Move up Move left Press whole finger Is fingerprint? Verification GUI start Page 16 of 16