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
100 CMD_UPLOAD_TMPL = 0x08,
101 CMD_DOWNLOAD_TMPL = 0x09,
102 CMD_UPLOAD_IMAGE = 0x0a,
103 CMD_DOWNLOAD_IMAGE = 0x0b,
104 CMD_DELETE_TMPL = 0x0c,
106 CMD_SET_SYSPARAMS = 0x0e,
107 CMD_GET_SYSPARAMS = 0x0f,
108 CMD_SET_PASSWORD = 0x12,
109 CMD_VERIFY_PASSWORD = 0x13,
110 CMD_GET_RANDOM_NUMBER = 0x14,
111 CMD_SET_ADDRESS = 0x15,
112 CMD_GET_TMPL_COUNT = 0x1d,
113 CMD_GET_INDEX_TABLE = 0x1f
119 ERR_PACKET_RX_ERROR = 0x01,
120 ERR_NO_FINGER = 0x02,
121 ERR_FP_IMAGE_FAILED = 0x03,
122 ERR_FP_TOO_MESSY = 0x06,
123 ERR_FP_IMAGE_FEW_FEATURES = 0x07,
124 ERR_FP_NOMATCH = 0x08,
125 ERR_FP_NOTFOUND = 0x09,
126 ERR_FP_ENROLLMISMATCH = 0x0a,
127 ERR_BAD_LOCATION = 0x0b,
129 ERR_UPLOAD_FEAT_FAILED = 0x0d,
130 ERR_NO_MORE_PACKETS = 0x0e,
131 ERR_UPLOAD_IMG_FAILED = 0x0f,
132 ERR_RM_TMPL_FAILED = 0x10,
133 ERR_EMPTY_DB_FAILED = 0x11,
134 ERR_INVALID_PWD = 0x13,
135 ERR_INVALID_IMAGE = 0x15,
136 ERR_RW_FLASH_ERROR = 0x18,
137 ERR_INVALID_REG = 0x1a,
138 ERR_INVALID_ADDR = 0x20,
139 ERR_NEEDS_PWD = 0x21,
141 ERR_INTERNAL_ERR = 0xff
181 int readData(
char *buffer,
size_t len);
353 uint8_t
search(
int slot, uint16_t *
id, uint16_t *score);
362 uint8_t
match(uint16_t *score);
366 int ttyFd() {
return m_ttyFd; };
367 int setTtyFd(
int fd) { m_ttyFd = fd; };
370 mraa_uart_context m_uart;
374 struct timeval m_startTime;
int writeCmdPacket(unsigned char *pkt, int len)
Definition: zfm20.cxx:165
int writeData(char *buffer, size_t len)
Definition: zfm20.cxx:116
uint8_t search(int slot, uint16_t *id, uint16_t *score)
Definition: zfm20.cxx:597
uint8_t match(uint16_t *score)
Definition: zfm20.cxx:643
bool getResponse(unsigned char *pkt, int len)
Definition: zfm20.cxx:252
uint8_t storeModel(int slot, uint16_t id)
Definition: zfm20.cxx:512
bool setNewPassword(uint32_t pwd)
Definition: zfm20.cxx:357
C++ API for the ZFM-20 fingerprint sensor module.
Definition: zfm20.h:88
void setPassword(uint32_t pw)
Definition: zfm20.h:244
uint8_t deleteDB()
Definition: zfm20.cxx:573
uint8_t generateImage()
Definition: zfm20.cxx:433
bool verifyPassword()
Definition: zfm20.cxx:297
ZFM20(int uart)
Definition: zfm20.cxx:34
uint8_t createModel()
Definition: zfm20.cxx:488
void setAddress(uint32_t addr)
Definition: zfm20.h:237
~ZFM20()
Definition: zfm20.cxx:68
bool verifyPacket(unsigned char *pkt)
Definition: zfm20.cxx:232
uint32_t getMillis()
Definition: zfm20.cxx:204
bool setupTty(speed_t baud=B57600)
Definition: zfm20.cxx:137
int getNumTemplates()
Definition: zfm20.cxx:325
uint8_t image2Tz(int slot)
Definition: zfm20.cxx:457
uint8_t deleteModel(uint16_t id)
Definition: zfm20.cxx:545
bool setNewAddress(uint32_t addr)
Definition: zfm20.cxx:395
void initClock()
Definition: zfm20.cxx:199
int readData(char *buffer, size_t len)
Definition: zfm20.cxx:100
bool dataAvailable(unsigned int millis)
Definition: zfm20.cxx:76