J-M-L JI
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
int i=0;
int task=0;
uint8_t ctotal[]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; // Reply bytes all are 12 bytes
uint8_t collect[] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x03,0x01,0x00,0x05};//12
uint8_t char1[] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x04,0x02,0x01,0x00,0x08};//13
uint8_t char2[] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x04,0x02,0x02,0x00,0x09};//13
uint8_t gentmplt[] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x03,0x05,0x00,0x09};//12
uint8_t strtmplt[] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x06,0x06,0x01,0x00,0x00,0x00,0x0E};//15
//byte dlttmplt[] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x07,0x0C,0x00,0x01,0x00,0x01,0x00,0x16};
//byte srchtmplt[] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x08,0x04,0x01,0x00,0x00,0xFF,0xFF,0x02,0x0C};
void setup(){
Serial.begin(9600);
mySerial.begin(9600);
delay(500);
}
void loop(){
switch (task){
case 0: finger1();
break;
case 1: character1();
break;
case 2: finger2();
break;
case 3: character2();
break;
case 4: generate();
break;
case 5: store();
break;
case 6: Serial.println("Template Stored"); task =7;
}
}
int finger1(){
if(task==0){
mySerial.write(collect, sizeof(collect));
for (i=0; i<12; i++){
while(!mySerial.available());
uint8_t incomingByte = mySerial.read();
Serial.print(incomingByte,HEX);
ctotal[i]=incomingByte;
Serial.print(" ");
}
Serial.println();
if(ctotal[9]==0x00){
task=1;
i=0;
ctotal[9]=0xBB;
Serial.println();
Serial.println("Finger 1 Sucess");
}
return task;
}
}
int character1(){
mySerial.write(char1, sizeof(char1));
for (i=0; i<12; i++){
while(!mySerial.available());
uint8_t incomingByte = mySerial.read();
Serial.print(incomingByte,HEX);
ctotal[i]=incomingByte;
Serial.print(" ");
}
Serial.println();
if(ctotal[9]==0x00){
task=2;
i=0;
ctotal[9]=0xBB;
Serial.println();
Serial.println("Char 1 Sucess");
}
return task;
}
int finger2(){
mySerial.write(collect, sizeof(collect));
for (i=0; i<12; i++){
while(!mySerial.available());
uint8_t incomingByte = mySerial.read();
Serial.print(incomingByte,HEX);
ctotal[i]=incomingByte;
Serial.print(" ");
}
Serial.println();
if(ctotal[9]==0x00){
task=3;
i=0;
ctotal[9]=0xBB;
Serial.println();
Serial.println("Finger 2 Sucess");
}
return task;
}
int character2(){
mySerial.write(char2, sizeof(char2));
for (i=0; i<12; i++){
while(!mySerial.available());
uint8_t incomingByte = mySerial.read();
Serial.print(incomingByte,HEX);
ctotal[i]=incomingByte;
Serial.print(" ");
}
Serial.println();
if(ctotal[9]==0x00){
task=4;
i=0;
ctotal[9]=0xBB;
Serial.println();
Serial.println("Char 2 Sucess");
}
return task;
}
int generate(){
mySerial.write(gentmplt, sizeof(gentmplt));
for (i=0; i<12; i++){
while(!mySerial.available());
uint8_t incomingByte = mySerial.read();
Serial.print(incomingByte,HEX);
ctotal[i]=incomingByte;
Serial.print(" ");
}
Serial.println();
if(ctotal[9]==0x00){
task=5;
i=0;
ctotal[9]=0xBB;
Serial.println();
Serial.println("Template Sucess");
}
return task;
}
int store(){
mySerial.write(strtmplt, sizeof(strtmplt));
for (i=0; i<12; i++){
while(!mySerial.available());
uint8_t incomingByte = mySerial.read();
Serial.print(incomingByte,HEX);
ctotal[i]=incomingByte;
Serial.print(" ");
}
Serial.println();
if(ctotal[9]==0x00){
task=6;
i=0;
ctotal[9]=0xBB;
Serial.println();
Serial.println("Stored Sucess");
}
return task;
}
Finally I get clarified you replied people. thanks for the help.
This is my code now My code is send the data and receive it back from finger print module. But I expect 0x00 format.
I Said Thanks to all the helping mind programmers. I am also embedded engineer. I am using Microchip PIC devices. Some simple tasks only I am using Arduino and discontinued to use the Arduino So I forgot everything. That is the problem.
Now I am started to use this Arduino only. C++ . Also I would like to create Arduino Libraries. Finally I am also helping to other beginners like you peoples.
Thanks a lot you people.
J-M-L JI. Robin2 JI, PaulS JI, sterretje JI.