Fingerprint Scanner API using GT511C3 fingerprint scanner.

Dependencies:   4DGL-uLCD-SE GT511C3 SDFileSystem mbed

Fork of GT511C3test by Toshihisa T

The fingerprint scanner is designed to take attendance over a group of students. It requires a the group owner to store a preloaded list of student id numbers in a .txt file to the memory (SD card) in return of a 5 digits keypass to gain access to the database when taking attendance.

While there may exist multiple group owner and a group owner with multiple databases, each group will be uniquely identified by the 5 digits keypass. The program limits each scanner to open ONE session at a time where only one group will be able to take attendance during its session. Once a session is closed, a report of the attendance taken during the open session is generated and sent via ethernet to owner and there is no way to reopen the session again.

For the initial setup, each fingerprint database needs to be populated by the students. This set up can be done continuously during a session while taking attendance that session.

Committer:
yoshua0207
Date:
Tue Dec 01 19:10:10 2015 +0000
Revision:
8:a1ba925cf903
Current fingerprint scanner code.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yoshua0207 8:a1ba925cf903 1 /*
yoshua0207 8:a1ba925cf903 2 MPR121.h
yoshua0207 8:a1ba925cf903 3 April 8, 2010
yoshua0207 8:a1ba925cf903 4 by: Jim Lindblom
yoshua0207 8:a1ba925cf903 5 */
yoshua0207 8:a1ba925cf903 6
yoshua0207 8:a1ba925cf903 7 // MPR121 Register Defines
yoshua0207 8:a1ba925cf903 8 #define MHD_R 0x2B
yoshua0207 8:a1ba925cf903 9 #define NHD_R 0x2C
yoshua0207 8:a1ba925cf903 10 #define NCL_R 0x2D
yoshua0207 8:a1ba925cf903 11 #define FDL_R 0x2E
yoshua0207 8:a1ba925cf903 12 #define MHD_F 0x2F
yoshua0207 8:a1ba925cf903 13 #define NHD_F 0x30
yoshua0207 8:a1ba925cf903 14 #define NCL_F 0x31
yoshua0207 8:a1ba925cf903 15 #define FDL_F 0x32
yoshua0207 8:a1ba925cf903 16 #define ELE0_T 0x41
yoshua0207 8:a1ba925cf903 17 #define ELE0_R 0x42
yoshua0207 8:a1ba925cf903 18 #define ELE1_T 0x43
yoshua0207 8:a1ba925cf903 19 #define ELE1_R 0x44
yoshua0207 8:a1ba925cf903 20 #define ELE2_T 0x45
yoshua0207 8:a1ba925cf903 21 #define ELE2_R 0x46
yoshua0207 8:a1ba925cf903 22 #define ELE3_T 0x47
yoshua0207 8:a1ba925cf903 23 #define ELE3_R 0x48
yoshua0207 8:a1ba925cf903 24 #define ELE4_T 0x49
yoshua0207 8:a1ba925cf903 25 #define ELE4_R 0x4A
yoshua0207 8:a1ba925cf903 26 #define ELE5_T 0x4B
yoshua0207 8:a1ba925cf903 27 #define ELE5_R 0x4C
yoshua0207 8:a1ba925cf903 28 #define ELE6_T 0x4D
yoshua0207 8:a1ba925cf903 29 #define ELE6_R 0x4E
yoshua0207 8:a1ba925cf903 30 #define ELE7_T 0x4F
yoshua0207 8:a1ba925cf903 31 #define ELE7_R 0x50
yoshua0207 8:a1ba925cf903 32 #define ELE8_T 0x51
yoshua0207 8:a1ba925cf903 33 #define ELE8_R 0x52
yoshua0207 8:a1ba925cf903 34 #define ELE9_T 0x53
yoshua0207 8:a1ba925cf903 35 #define ELE9_R 0x54
yoshua0207 8:a1ba925cf903 36 #define ELE10_T 0x55
yoshua0207 8:a1ba925cf903 37 #define ELE10_R 0x56
yoshua0207 8:a1ba925cf903 38 #define ELE11_T 0x57
yoshua0207 8:a1ba925cf903 39 #define ELE11_R 0x58
yoshua0207 8:a1ba925cf903 40 #define FIL_CFG 0x5D
yoshua0207 8:a1ba925cf903 41 #define ELE_CFG 0x5E
yoshua0207 8:a1ba925cf903 42 #define GPIO_CTRL0 0x73
yoshua0207 8:a1ba925cf903 43 #define GPIO_CTRL1 0x74
yoshua0207 8:a1ba925cf903 44 #define GPIO_DATA 0x75
yoshua0207 8:a1ba925cf903 45 #define GPIO_DIR 0x76
yoshua0207 8:a1ba925cf903 46 #define GPIO_EN 0x77
yoshua0207 8:a1ba925cf903 47 #define GPIO_SET 0x78
yoshua0207 8:a1ba925cf903 48 #define GPIO_CLEAR 0x79
yoshua0207 8:a1ba925cf903 49 #define GPIO_TOGGLE 0x7A
yoshua0207 8:a1ba925cf903 50 #define ATO_CFG0 0x7B
yoshua0207 8:a1ba925cf903 51 #define ATO_CFGU 0x7D
yoshua0207 8:a1ba925cf903 52 #define ATO_CFGL 0x7E
yoshua0207 8:a1ba925cf903 53 #define ATO_CFGT 0x7F
yoshua0207 8:a1ba925cf903 54
yoshua0207 8:a1ba925cf903 55
yoshua0207 8:a1ba925cf903 56 // Global Constants
yoshua0207 8:a1ba925cf903 57 #define TOU_THRESH 0x0F
yoshua0207 8:a1ba925cf903 58 #define REL_THRESH 0x0A