Trung Nguyen
/
FINAL_PROJECT_4180
asdasdasd
Fork of FINAL_PROJECT_4180 by
lib.cpp@2:1b1c0502bb08, 2016-04-25 (annotated)
- 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?
User | Revision | Line number | New 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 | } |