Trung Nguyen
/
FINAL_PROJECT_4180
asdasdasd
Fork of FINAL_PROJECT_4180 by
lib.cpp
- Committer:
- nyengele
- Date:
- 2016-04-25
- Revision:
- 5:562b8d04dfd4
- Parent:
- 4:9fbefd153e3e
- Child:
- 6:d0582711a5d1
File content as of revision 5:562b8d04dfd4:
#include "mbed.h" #include "lib.h" #define CMD_ENROLL 0x01 #define CMD_AUTH 0x02 #define FACE_FID 0x01 #define SPEECH_FID 0x02 #define SUCCESS 0x55 #define FAILURE 0x8A int hashcode(const char *data, int size) { int hash = 17; for (int i = 0; i < size; i++) { hash += 31*hash + data[i]; } return hash; } void read_mag_card(Serial *device, char *dest, int *size) { int pos = 0; bool done = false; int markercount = 0; while (!done) { while (!device->readable()); dest[pos] = device->getc(); if (dest[pos] == '?') markercount++; if (markercount >= 2) done = true; pos++; } *size = pos - 1; } bool fp_enroll(FPScanner *fp) { bool status = true; fp->SetLED(true); while(!fp->IsPressFinger()) wait(0.030); fp->CaptureFinger(true); if (fp->Identify1_N() == 200) { int id = fp->GetEnrollCount(); if (fp->EnrollStart(id) == 0) { fp->CaptureFinger(true); fp->Enroll1(); fp->CaptureFinger(true); fp->Enroll2(); fp->CaptureFinger(true); fp->Enroll3(); fp->SetLED(false); } else status = false; } else status = false; return status; } bool fp_auth(FPScanner *fp) { bool status = false; fp->SetLED(true); while(!fp->IsPressFinger()) wait(0.030); fp->CaptureFinger(true); if (fp->Identify1_N() != 200) status = true; fp->SetLED(false); return status; } bool face_enroll(char *user_id, Serial *android) { char CMD[] = { CMD_ENROLL, 0x02, 0x04, 0x01, user_id[0], user_id[1], user_id[2], user_id[3], FACE_FID, '\0' }; for (int i = 0; i < sizeof(CMD)/ sizeof(char); i++) { android->putc(CMD[i]); } while (!android->readable()); char temp = android->getc(); if (temp == SUCCESS) return true; else return false; } bool face_detect(char *user_id, Serial *android) { char CMD[] = { CMD_AUTH, 0x02, 0x04, 0x01, user_id[0], user_id[1], user_id[2], user_id[3], FACE_FID, '\0' }; for (int i = 0; i < sizeof(CMD)/ sizeof(char); i++) { android->putc(CMD[i]); } while (!android->readable()); char temp = android->getc(); if (temp == SUCCESS) return true; else return false; } bool speech_enroll(char *user_id, Serial *android) { char CMD[] = { CMD_ENROLL, 0x02, 0x04, 0x01, user_id[0], user_id[1], user_id[2], user_id[3], SPEECH_FID, '\0' }; for (int i = 0; i < sizeof(CMD)/ sizeof(char); i++) { android->putc(CMD[i]); } while (!android->readable()); char temp = android->getc(); if (temp == SUCCESS) return true; else return false; }