asdasdasd

Dependencies:   mbed

Fork of FINAL_PROJECT_4180 by Gedeon Nyengele

Committer:
nyengele
Date:
Mon Apr 25 00:36:32 2016 +0000
Revision:
2:1b1c0502bb08
Parent:
1:0e5e9821d89d
Child:
3:83415d375d36
fingerprint scanner done!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyengele 0:f0e40bf44ffe 1 #include "mbed.h"
nyengele 0:f0e40bf44ffe 2 #include "lib.h"
nyengele 0:f0e40bf44ffe 3
nyengele 0:f0e40bf44ffe 4 int hashcode(const char *data, int size)
nyengele 0:f0e40bf44ffe 5 {
nyengele 0:f0e40bf44ffe 6 int hash = 17;
nyengele 0:f0e40bf44ffe 7 for (int i = 0; i < size; i++) {
nyengele 0:f0e40bf44ffe 8 hash += 31*hash + data[i];
nyengele 0:f0e40bf44ffe 9 }
nyengele 0:f0e40bf44ffe 10 return hash;
nyengele 0:f0e40bf44ffe 11 }
nyengele 0:f0e40bf44ffe 12 void read_mag_card(Serial *device, char *dest, int *size)
nyengele 0:f0e40bf44ffe 13 {
nyengele 0:f0e40bf44ffe 14 int pos = 0;
nyengele 0:f0e40bf44ffe 15 bool done = false;
nyengele 0:f0e40bf44ffe 16 int markercount = 0;
nyengele 0:f0e40bf44ffe 17 while (!done) {
nyengele 1:0e5e9821d89d 18 while (!device->readable());
nyengele 0:f0e40bf44ffe 19 dest[pos] = device->getc();
nyengele 0:f0e40bf44ffe 20 if (dest[pos] == '?') markercount++;
nyengele 0:f0e40bf44ffe 21 if (markercount >= 2) done = true;
nyengele 0:f0e40bf44ffe 22 pos++;
nyengele 0:f0e40bf44ffe 23 }
nyengele 0:f0e40bf44ffe 24 *size = pos - 1;
nyengele 2:1b1c0502bb08 25 }
nyengele 2:1b1c0502bb08 26
nyengele 2:1b1c0502bb08 27 bool fp_enroll(FPScanner *fp)
nyengele 2:1b1c0502bb08 28 {
nyengele 2:1b1c0502bb08 29 bool status = true;
nyengele 2:1b1c0502bb08 30 fp->SetLED(true);
nyengele 2:1b1c0502bb08 31 while(!fp->IsPressFinger()) wait(0.030);
nyengele 2:1b1c0502bb08 32 fp->CaptureFinger(true);
nyengele 2:1b1c0502bb08 33 if (fp->Identify1_N() == 200) {
nyengele 2:1b1c0502bb08 34 int id = fp->GetEnrollCount();
nyengele 2:1b1c0502bb08 35 if (fp->EnrollStart(id) == 0) {
nyengele 2:1b1c0502bb08 36 fp->CaptureFinger(true);
nyengele 2:1b1c0502bb08 37 fp->Enroll1();
nyengele 2:1b1c0502bb08 38 fp->CaptureFinger(true);
nyengele 2:1b1c0502bb08 39 fp->Enroll2();
nyengele 2:1b1c0502bb08 40 fp->CaptureFinger(true);
nyengele 2:1b1c0502bb08 41 fp->Enroll3();
nyengele 2:1b1c0502bb08 42 fp->SetLED(false);
nyengele 2:1b1c0502bb08 43 } else status = false;
nyengele 2:1b1c0502bb08 44 } else status = false;
nyengele 2:1b1c0502bb08 45
nyengele 2:1b1c0502bb08 46 return status;
nyengele 2:1b1c0502bb08 47 }
nyengele 2:1b1c0502bb08 48
nyengele 2:1b1c0502bb08 49 bool fp_auth(FPScanner *fp)
nyengele 2:1b1c0502bb08 50 {
nyengele 2:1b1c0502bb08 51 bool status = false;
nyengele 2:1b1c0502bb08 52 fp->SetLED(true);
nyengele 2:1b1c0502bb08 53 while(!fp->IsPressFinger()) wait(0.030);
nyengele 2:1b1c0502bb08 54 fp->CaptureFinger(true);
nyengele 2:1b1c0502bb08 55 if (fp->Identify1_N() != 200) status = true;
nyengele 2:1b1c0502bb08 56 fp->SetLED(false);
nyengele 2:1b1c0502bb08 57 return status;
nyengele 0:f0e40bf44ffe 58 }