main.cpp is a direct example, waits for an input and then process it. test.cpp is modified, only process when there's a pressure
Fork of GT511C3test by
test.cpp@8:ef4e75a5c00a, 2015-12-06 (annotated)
- Committer:
- inezraharjo
- Date:
- Sun Dec 06 22:32:12 2015 +0000
- Revision:
- 8:ef4e75a5c00a
main.cpp is a direct example, after registering fingerprint it waits for the platform to be pressed. test.cpp is my modified version, instead of being stuck in a while loop of 'waiting to be pressed' it will trigger only if there's pressure
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
inezraharjo | 8:ef4e75a5c00a | 1 | #include "mbed.h" |
inezraharjo | 8:ef4e75a5c00a | 2 | #include "GT511C3.hpp" |
inezraharjo | 8:ef4e75a5c00a | 3 | |
inezraharjo | 8:ef4e75a5c00a | 4 | Serial debug(USBTX,USBRX); |
inezraharjo | 8:ef4e75a5c00a | 5 | |
inezraharjo | 8:ef4e75a5c00a | 6 | DigitalOut myled(LED1); |
inezraharjo | 8:ef4e75a5c00a | 7 | GT511C3 finger(p28,p27); |
inezraharjo | 8:ef4e75a5c00a | 8 | |
inezraharjo | 8:ef4e75a5c00a | 9 | int progress(int status,char *msg) |
inezraharjo | 8:ef4e75a5c00a | 10 | { |
inezraharjo | 8:ef4e75a5c00a | 11 | debug.printf("%s",msg); |
inezraharjo | 8:ef4e75a5c00a | 12 | return 0; |
inezraharjo | 8:ef4e75a5c00a | 13 | } |
inezraharjo | 8:ef4e75a5c00a | 14 | |
inezraharjo | 8:ef4e75a5c00a | 15 | int main() { |
inezraharjo | 8:ef4e75a5c00a | 16 | int sts = 0; |
inezraharjo | 8:ef4e75a5c00a | 17 | int ID = 0; |
inezraharjo | 8:ef4e75a5c00a | 18 | |
inezraharjo | 8:ef4e75a5c00a | 19 | debug.format(8,Serial::None,1); |
inezraharjo | 8:ef4e75a5c00a | 20 | debug.baud(115200); |
inezraharjo | 8:ef4e75a5c00a | 21 | |
inezraharjo | 8:ef4e75a5c00a | 22 | debug.printf("Fingerprint reader module \"GT-511C3 / GT-511C31\" test program.\n"); |
inezraharjo | 8:ef4e75a5c00a | 23 | debug.printf("Build: %s %s\n",__DATE__,__TIME__); |
inezraharjo | 8:ef4e75a5c00a | 24 | |
inezraharjo | 8:ef4e75a5c00a | 25 | debug.printf("Open\n"); |
inezraharjo | 8:ef4e75a5c00a | 26 | sts = finger.Open(); |
inezraharjo | 8:ef4e75a5c00a | 27 | debug.printf("sts = %d\n",sts); |
inezraharjo | 8:ef4e75a5c00a | 28 | if(sts == 0){ |
inezraharjo | 8:ef4e75a5c00a | 29 | int i; |
inezraharjo | 8:ef4e75a5c00a | 30 | debug.printf("FirmwareVersion = %lx\n",finger.FirmwareVersion); |
inezraharjo | 8:ef4e75a5c00a | 31 | debug.printf("IsoAreaMaxSize = %ld\n",finger.IsoAreaMaxSize); |
inezraharjo | 8:ef4e75a5c00a | 32 | debug.printf("DeviceSerialNumber = "); |
inezraharjo | 8:ef4e75a5c00a | 33 | for(i = 0; i < sizeof(finger.DeviceSerialNumber);i++){ |
inezraharjo | 8:ef4e75a5c00a | 34 | debug.printf("%02X",finger.DeviceSerialNumber[i]); |
inezraharjo | 8:ef4e75a5c00a | 35 | } |
inezraharjo | 8:ef4e75a5c00a | 36 | debug.printf("\n"); |
inezraharjo | 8:ef4e75a5c00a | 37 | } |
inezraharjo | 8:ef4e75a5c00a | 38 | |
inezraharjo | 8:ef4e75a5c00a | 39 | /* |
inezraharjo | 8:ef4e75a5c00a | 40 | STEPS: |
inezraharjo | 8:ef4e75a5c00a | 41 | First configuration: enter a code to get ready to register fingerprint |
inezraharjo | 8:ef4e75a5c00a | 42 | LED flashing/alarm buzzing to indicate start/finish of fingerprint |
inezraharjo | 8:ef4e75a5c00a | 43 | When a finger is detected, matched with what is recorded, act similar to code |
inezraharjo | 8:ef4e75a5c00a | 44 | */ |
inezraharjo | 8:ef4e75a5c00a | 45 | |
inezraharjo | 8:ef4e75a5c00a | 46 | if(1){ |
inezraharjo | 8:ef4e75a5c00a | 47 | int EnrollID = 11; |
inezraharjo | 8:ef4e75a5c00a | 48 | if(finger.CheckEnrolled(EnrollID) == 0){ |
inezraharjo | 8:ef4e75a5c00a | 49 | debug.printf("EnrollID(%d) is already enrolled.Delete!\n",EnrollID); |
inezraharjo | 8:ef4e75a5c00a | 50 | if(finger.DeleteID(EnrollID) == 0){ |
inezraharjo | 8:ef4e75a5c00a | 51 | debug.printf("Delete OK!\n"); |
inezraharjo | 8:ef4e75a5c00a | 52 | } |
inezraharjo | 8:ef4e75a5c00a | 53 | } |
inezraharjo | 8:ef4e75a5c00a | 54 | finger.Enroll(EnrollID,progress); |
inezraharjo | 8:ef4e75a5c00a | 55 | } |
inezraharjo | 8:ef4e75a5c00a | 56 | |
inezraharjo | 8:ef4e75a5c00a | 57 | finger.CmosLed(1); |
inezraharjo | 8:ef4e75a5c00a | 58 | |
inezraharjo | 8:ef4e75a5c00a | 59 | debug.printf("Press finger to identify\r\n"); |
inezraharjo | 8:ef4e75a5c00a | 60 | while(1) { |
inezraharjo | 8:ef4e75a5c00a | 61 | if (finger.IsPress()){ |
inezraharjo | 8:ef4e75a5c00a | 62 | ID = finger.Identify(); |
inezraharjo | 8:ef4e75a5c00a | 63 | debug.printf("ID = %d\n",ID); |
inezraharjo | 8:ef4e75a5c00a | 64 | debug.printf("Remove finger\n"); |
inezraharjo | 8:ef4e75a5c00a | 65 | } |
inezraharjo | 8:ef4e75a5c00a | 66 | finger.WaitPress(0); |
inezraharjo | 8:ef4e75a5c00a | 67 | |
inezraharjo | 8:ef4e75a5c00a | 68 | } |
inezraharjo | 8:ef4e75a5c00a | 69 | } |