Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Wiz750SR_fingerR306_WITH_MQTT
Fork of GT511C3 by
FPC_R306.cpp
00001 00002 00003 00004 //......Created by the CDI KENGERI TEAM(Christ(Deemed to be University)) Bangalore, Karnataka, India.......// 00005 00006 #include "mbed.h" 00007 #include "FPC_R306.hpp" 00008 Serial FPC(PA_13,PA_14); 00009 Serial lib(USBTX,USBRX); 00010 #define SET_AND_SUMADD(idx,val) sendbuf[idx]=((unsigned char)(val));//sum += sendbuf[idx] 00011 00012 /*int FPC_R306::Init(void) 00013 { 00014 baud(57600); 00015 ClearLine(); 00016 return 0; 00017 }*/ 00018 00019 int FPC_R306::CMD_GETIMG() 00020 { 00021 FPC.baud(57600); 00022 FPC.putc(0xEF); //start_code 00023 FPC.putc(0x01); //start_code 00024 FPC.putc(0xFF); //address 00025 FPC.putc(0xFF); //address 00026 FPC.putc(0xFF); //address 00027 FPC.putc(0xFF); //address 00028 FPC.putc(0x01); //type 00029 FPC.putc(0x00); //length 00030 FPC.putc(0x03); //length 00031 FPC.putc(0x01); //command 00032 FPC.putc(0x00); //Checksum 00033 FPC.putc(0x05); //Checksum 00034 uint8_t resp = RecvResponse(); 00035 return resp; 00036 } 00037 00038 00039 int FPC_R306::CMD_IMG2Tz1() 00040 { 00041 FPC.baud(57600); 00042 FPC.putc(0xEF); //start_code 00043 FPC.putc(0x01); //start_code 00044 FPC.putc(0xFF); //address 00045 FPC.putc(0xFF); //address 00046 FPC.putc(0xFF); //address 00047 FPC.putc(0xFF); //address 00048 FPC.putc(0x01); //type (package identifier) 00049 FPC.putc(0x00); //datalength 00050 FPC.putc(0x04); //datalength 00051 FPC.putc(0x02); //command 00052 FPC.putc(0x01); //slot number 00053 FPC.putc(0x00); //Checksum 00054 FPC.putc(0x08); //Checksum 00055 uint8_t resp = RecvResponse(); 00056 return resp; 00057 } 00058 00059 int FPC_R306::CMD_IMG2Tz2() 00060 { 00061 FPC.baud(57600); 00062 FPC.putc(0xEF); //start_code 00063 FPC.putc(0x01); //start_code 00064 FPC.putc(0xFF); //address 00065 FPC.putc(0xFF); //address 00066 FPC.putc(0xFF); //address 00067 FPC.putc(0xFF); //address 00068 FPC.putc(0x01); //type (package identifier) 00069 FPC.putc(0x00); //datalength 00070 FPC.putc(0x04); //datalength 00071 FPC.putc(0x02); //command 00072 FPC.putc(0x02); //slot number 00073 FPC.putc(0x00); //Checksum 00074 FPC.putc(0x09); //Checksum 00075 uint8_t resp = RecvResponse(); 00076 return resp; 00077 } 00078 00079 00080 int FPC_R306::createModel() 00081 { 00082 FPC.baud(57600); 00083 FPC.putc(0xEF); //start_code 00084 FPC.putc(0x01); //start_code 00085 FPC.putc(0xFF); //address 00086 FPC.putc(0xFF); //address 00087 FPC.putc(0xFF); //address 00088 FPC.putc(0xFF); //address 00089 FPC.putc(0x01); //type (package identifier) 00090 FPC.putc(0x00); //datalength 00091 FPC.putc(0x03); //datalength 00092 FPC.putc(0x05); //command 00093 FPC.putc(0x00); //Checksum 00094 FPC.putc(0x09); //Checksum 00095 uint8_t resp = RecvResponse(); 00096 return resp; 00097 } 00098 00099 00100 int FPC_R306:: STORE_MODEL(uint16_t id) 00101 { 00102 FPC.baud(57600); 00103 FPC.putc(0xEF); //start_code 00104 FPC.putc(0x01); //start_code 00105 FPC.putc(0xFF); //address 00106 FPC.putc(0xFF); //address 00107 FPC.putc(0xFF); //address 00108 FPC.putc(0xFF); //address 00109 FPC.putc(0x01); //type (package identifier) 00110 FPC.putc(0x00); //datalength 00111 FPC.putc(0x06); //datalength 00112 FPC.putc(0x06); //command 00113 FPC.putc(0x01); //bufferID 00114 uint8_t sum = 0x0E; //type + datalength + command + BufferID 00115 FPC.putc((uint8_t)(id >> 8)); 00116 FPC.putc((uint8_t)(id & 0xFF)); 00117 uint16_t checksum = ((uint8_t)(sum & 0xFF) + (uint8_t)(id >> 8) + (uint8_t)(id & 0xFF)); //checkssum = type + datalength + command + BufferID + ID 00118 FPC.putc((uint8_t)(checksum >> 8)); //Checksum 00119 FPC.putc((uint8_t) (checksum & 0xFF)); //Checksum 00120 uint8_t resp = RecvResponse(); 00121 return resp; 00122 } 00123 00124 uint8_t FPC_R306::RecvResponse() 00125 { 00126 FPC.baud(57600); 00127 //lib.printf("Waiting for response\n"); 00128 uint8_t byte[12]; 00129 int i=0; 00130 for(i=0;i<12;i++) 00131 { 00132 byte[i] = FPC.getc(); 00133 } 00134 return byte[9]; 00135 00136 } 00137 00138 uint8_t FPC_R306 :: FAST_SEARCH() 00139 { 00140 FPC.baud(57600); 00141 FPC.putc(0xEF); //start_code 00142 FPC.putc(0x01); //start_code 00143 FPC.putc(0xFF); //address 00144 FPC.putc(0xFF); //address 00145 FPC.putc(0xFF); //address 00146 FPC.putc(0xFF); //address 00147 FPC.putc(0x01); //type (package identifier) 00148 FPC.putc(0x00); //datalength 00149 FPC.putc(0x08); //datalength 00150 FPC.putc(0x1B); //command 00151 FPC.putc(0x01); //CharBuffer 00152 FPC.putc(0x00); //Start Page 00153 FPC.putc(0x00); //Start Page 00154 FPC.putc(0x00); //Page Num 00155 FPC.putc(0xA3); //Page Num 00156 FPC.putc(0x00); //Checksum 00157 FPC.putc(0xC8); //Checksum 00158 uint8_t resp = Recv_FAST_SEARCH(); 00159 return resp; 00160 } 00161 00162 uint8_t FPC_R306 :: TMPL_COUNT() 00163 { 00164 FPC.baud(57600); 00165 FPC.putc(0xEF); //start_code 00166 FPC.putc(0x01); //start_code 00167 FPC.putc(0xFF); //address 00168 FPC.putc(0xFF); //address 00169 FPC.putc(0xFF); //address 00170 FPC.putc(0xFF); //address 00171 FPC.putc(0x01); //type (package identifier) 00172 FPC.putc(0x00); //datalength 00173 FPC.putc(0x03); //datalength 00174 FPC.putc(0x1D); //command 00175 FPC.putc(0x00); //Checksum 00176 FPC.putc(0x21); //Checksum 00177 uint8_t resp = Recv_TMPL_COUNT(); 00178 return resp; 00179 } 00180 00181 00182 uint8_t FPC_R306 :: DELETE_ID(uint16_t id) 00183 { 00184 FPC.baud(57600); 00185 FPC.putc(0xEF); //start_code 00186 FPC.putc(0x01); //start_code 00187 FPC.putc(0xFF); //address 00188 FPC.putc(0xFF); //address 00189 FPC.putc(0xFF); //address 00190 FPC.putc(0xFF); //address 00191 FPC.putc(0x01); //type (package identifier) 00192 FPC.putc(0x00); //datalength 00193 FPC.putc(0x07); //datalength 00194 FPC.putc(0x0C); //command 00195 FPC.putc((uint8_t) id >>8 ); //ID num (Page Num) 00196 FPC.putc((uint8_t) id & 0xFF); //ID num (Page Num) 00197 FPC.putc(0x00); //Number of templates 00198 FPC.putc(0x01); //Number of templates 00199 uint8_t sum = 0x15; // sum = type + datalength + command + no. of templates 00200 uint16_t checksum = ((uint8_t)(sum & 0xFF) + (uint8_t)(id >> 8) + (uint8_t)(id & 0xFF)); 00201 FPC.putc((uint8_t)(checksum >> 8)); //Checksum 00202 FPC.putc((uint8_t)(checksum & 0xFF)); //Checksum 00203 uint8_t resp = RecvResponse(); 00204 return resp; 00205 } 00206 00207 00208 uint8_t FPC_R306 :: EMPTY_LIB() 00209 { 00210 FPC.baud(57600); 00211 FPC.putc(0xEF); //start_code 00212 FPC.putc(0x01); //start_code 00213 FPC.putc(0xFF); //address 00214 FPC.putc(0xFF); //address 00215 FPC.putc(0xFF); //address 00216 FPC.putc(0xFF); //address 00217 FPC.putc(0x01); //type (package identifier) 00218 FPC.putc(0x00); //datalength 00219 FPC.putc(0x03); //datalength 00220 FPC.putc(0x0D); //command 00221 FPC.putc(0x00); //Checksum 00222 FPC.putc(0x11); //Checksum 00223 uint8_t resp = RecvResponse(); 00224 return resp; 00225 } 00226 00227 00228 uint8_t FPC_R306 :: Recv_TMPL_COUNT() 00229 { 00230 FPC.baud(57600); 00231 uint8_t byte[14]; 00232 int i=0; 00233 for(i=0;i<14;i++) 00234 { 00235 byte[i] = FPC.getc(); 00236 } 00237 templatecount = byte[10]; 00238 templatecount <<=8; 00239 templatecount |= byte[11]; 00240 00241 return byte[9]; 00242 } 00243 00244 00245 uint8_t FPC_R306:: Recv_FAST_SEARCH() 00246 { 00247 FPC.baud(57600); 00248 uint8_t byte[16]; 00249 int i=0; 00250 for(i=0;i<16;i++) 00251 { 00252 byte[i] = FPC.getc(); 00253 } 00254 fingerID = byte[10]; 00255 fingerID <<=8; 00256 fingerID |= byte[11]; 00257 00258 MatchScore = byte[12]; 00259 MatchScore <<=8; 00260 MatchScore |= byte[13]; 00261 00262 return byte[9]; 00263 } 00264
Generated on Sat Jul 16 2022 21:22:29 by
1.7.2
