40 #include <sys/select.h> 41 #include <sys/types.h> 44 #include <mraa/uart.h> 46 #define ZFM20_DEFAULT_UART 0 49 #define ZFM20_START1 0xef 50 #define ZFM20_START2 0x01 52 #define ZFM20_MAX_PKT_LEN 256 54 #define ZFM20_TIMEOUT 5000 // in ms 56 #define ZFM20_DEFAULT_PASSWORD 0x00000000 57 #define ZFM20_DEFAULT_ADDRESS 0xffffffff 101 CMD_LOAD_TMPL = 0x07,
102 CMD_UPLOAD_TMPL = 0x08,
103 CMD_DOWNLOAD_TMPL = 0x09,
104 CMD_UPLOAD_IMAGE = 0x0a,
105 CMD_DOWNLOAD_IMAGE = 0x0b,
106 CMD_DELETE_TMPL = 0x0c,
108 CMD_SET_SYSPARAMS = 0x0e,
109 CMD_GET_SYSPARAMS = 0x0f,
110 CMD_SET_PASSWORD = 0x12,
111 CMD_VERIFY_PASSWORD = 0x13,
112 CMD_GET_RANDOM_NUMBER = 0x14,
113 CMD_SET_ADDRESS = 0x15,
114 CMD_GET_TMPL_COUNT = 0x1d,
115 CMD_GET_INDEX_TABLE = 0x1f
121 ERR_PACKET_RX_ERROR = 0x01,
122 ERR_NO_FINGER = 0x02,
123 ERR_FP_IMAGE_FAILED = 0x03,
124 ERR_FP_TOO_MESSY = 0x06,
125 ERR_FP_IMAGE_FEW_FEATURES = 0x07,
126 ERR_FP_NOMATCH = 0x08,
127 ERR_FP_NOTFOUND = 0x09,
128 ERR_FP_ENROLLMISMATCH = 0x0a,
129 ERR_BAD_LOCATION = 0x0b,
131 ERR_UPLOAD_FEAT_FAILED = 0x0d,
132 ERR_NO_MORE_PACKETS = 0x0e,
133 ERR_UPLOAD_IMG_FAILED = 0x0f,
134 ERR_RM_TMPL_FAILED = 0x10,
135 ERR_EMPTY_DB_FAILED = 0x11,
136 ERR_INVALID_PWD = 0x13,
137 ERR_INVALID_IMAGE = 0x15,
138 ERR_RW_FLASH_ERROR = 0x18,
139 ERR_INVALID_REG = 0x1a,
140 ERR_INVALID_ADDR = 0x20,
141 ERR_NEEDS_PWD = 0x21,
143 ERR_INTERNAL_ERR = 0xff
183 int readData(
char *buffer,
int len);
356 uint8_t
search(
int slot, uint16_t *
id, uint16_t *score);
365 uint8_t
match(uint16_t *score);
369 int ttyFd() {
return m_ttyFd; };
372 mraa_uart_context m_uart;
376 struct timeval m_startTime;
uint8_t search(int slot, uint16_t *id, uint16_t *score)
Definition: zfm20.cxx:543
uint8_t match(uint16_t *score)
Definition: zfm20.cxx:582
bool getResponse(uint8_t *pkt, int len)
Definition: zfm20.cxx:274
int writeData(char *buffer, int len)
Definition: zfm20.cxx:126
uint8_t storeModel(int slot, uint16_t id)
Definition: zfm20.cxx:481
bool setNewPassword(uint32_t pwd)
Definition: zfm20.cxx:365
API for the ZFM-20 Fingerprint Sensor Module.
Definition: zfm20.hpp:90
void setPassword(uint32_t pw)
Definition: zfm20.hpp:247
uint8_t deleteDB()
Definition: zfm20.cxx:527
uint8_t generateImage()
Definition: zfm20.cxx:425
bool verifyPassword()
Definition: zfm20.cxx:320
ZFM20(int uart)
Definition: zfm20.cxx:36
bool verifyPacket(uint8_t *pkt, int len)
Definition: zfm20.cxx:253
uint8_t createModel()
Definition: zfm20.cxx:465
void setAddress(uint32_t addr)
Definition: zfm20.hpp:240
~ZFM20()
Definition: zfm20.cxx:74
uint32_t getMillis()
Definition: zfm20.cxx:225
int readData(char *buffer, int len)
Definition: zfm20.cxx:105
bool setupTty(speed_t baud=B57600)
Definition: zfm20.cxx:156
int getNumTemplates()
Definition: zfm20.cxx:341
uint8_t image2Tz(int slot)
Definition: zfm20.cxx:441
uint8_t deleteModel(uint16_t id)
Definition: zfm20.cxx:507
int writeCmdPacket(uint8_t *pkt, int len)
Definition: zfm20.cxx:186
bool setNewAddress(uint32_t addr)
Definition: zfm20.cxx:395
void initClock()
Definition: zfm20.cxx:220
bool dataAvailable(unsigned int millis)
Definition: zfm20.cxx:82