programme RFID anthony coudret-risso
Dependencies: mbed
main.cpp
- Committer:
- notBED
- Date:
- 2018-05-23
- Revision:
- 1:290a357d0da0
- Parent:
- 0:a8c7cc9e26fb
File content as of revision 1:290a357d0da0:
#include "stdio.h" #include "mbed.h" #include <Serial.h> DigitalIn CTS(p8); DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); DigitalOut ledmanu(p18); Serial pc(USBTX, USBRX); Serial rfid1(p9, NC); Serial rfid2(NC, p10); int egal1 = 0; int egal2 = 0; int egal3 = 0; int egal4 = 0; int egal5 = 0; int tag1[4]= {0xAE,0xFB,0x63,0x10}; int tag2[4]= {0x25,0x02,0x64,0x10}; int tag3[4]= {0x3F,0xFC,0x63,0x10}; int tag4[4]= {0xCE,0xEE,0x63,0x10}; int tag5[4]= {0xD6,0xD9,0x63,0x10}; int tag[4]= {0x00,0x00,0x00,0x00}; int reponse_rfid[5]; int reponse_rfid1[255]; int lireuid[8]= {0x52,0x00}; //int trame_rfid[8]={0x7A}; //int tag_rfid[8]={0x76,0x01}; //int uid[8]={0x55}; void HandShake(); void Antenna(); void field(); int main() { egal1=0; egal2=0; egal3=0; egal4=0; egal5=0; while(1) { if (CTS == 0) { // pc.printf("- [CTS = 0] -"); // pc.printf("\n\r"); //HandShake(); for (int i=0; i<2; i++) { rfid2.putc(lireuid[i]); } wait_ms(25); for (int e=0; e<1; e++) { reponse_rfid1[e]=(rfid1.getc()); led1=1; } if (reponse_rfid1[0] == 0xD6) { for (int i=0; i<2; i++) { rfid2.putc(lireuid[i]); led2=1; } wait_ms(50); for (int e=1; e<5; e++) { reponse_rfid[e]=(rfid1.getc()); led3=1; } /*for(int i=0;i<5;i++){ tag[i] = {0}; }*/ pc.printf("---------------------------------------"); pc.printf("\n\r"); pc.printf("Trame de reponse du PCB en hexa : "); for (int i=0; i<2; i++) pc.printf("%X ",lireuid[i]); pc.printf("\n\r"); pc.printf("Status = %X\n\r",reponse_rfid1[0]); pc.printf("UID = "); for (int i=1; i<5; i++) pc.printf("%X ",reponse_rfid[i]); pc.printf("\n\r"); pc.printf("---------------------------------------"); pc.printf("\n\r"); } else if (reponse_rfid1[0] == 0xC0) { field(); } if (reponse_rfid1[0] == 0xE0) { Antenna(); } //reponse_rfid[1]=0x00; for(int i=1; i<5; i++) { tag[i-1] = reponse_rfid[i]; } if(tag[0] != 0x00) { pc.printf("\n\r"); pc.printf("tableau de 0: %X", tag[0]); pc.printf("\n\r"); for(int i=0; i<4; i++) { if(tag[i] == tag1[i]) { egal1 = 1; pc.printf("Tag1 - OK "); pc.printf("\n\r"); ledmanu = 1; break; //pc.printf(tag[i]); } else if(tag[i] != tag1[i]) { pc.printf("Tag1 - NOK "); pc.printf("\n\r"); egal1 = 0; break; //pc.printf(tag[i]); } } for(int i=0; i<4; i++) { if(tag[i] == tag2[i]) { egal2 = 1; pc.printf("Tag2 - OK "); pc.printf("\n\r"); break; //pc.printf(tag[i]); } else if(tag[i] != tag2[i]) { pc.printf("Tag2 - NOK "); pc.printf("\n\r"); egal2 = 0; break; //pc.printf(tag[i]); } } for(int i=0; i<4; i++) { if(tag[i] == tag3[i]) { egal3 = 1; pc.printf("Tag3 - OK "); pc.printf("\n\r"); break; //pc.printf(tag[i]); } else if(tag[i] != tag3[i]) { pc.printf("Tag3 - NOK "); pc.printf("\n\r"); egal3 = 0; break; //pc.printf(tag[i]); } } for(int i=0; i<4; i++) { if(tag[i] == tag4[i]) { egal4 = 1; pc.printf("Tag4 - OK "); pc.printf("\n\r"); break; //pc.printf(tag[i]); } else if(tag[i] != tag4[i]) { pc.printf("Tag4 - NOK "); pc.printf("\n\r"); egal4 = 0; break; //pc.printf(tag[i]); } } for(int i=0; i<4; i++) { if(tag[i] == tag5[i]) { egal5 = 1; pc.printf("Tag5 - OK "); pc.printf("\n\r"); break; //pc.printf(tag[i]); } else if(tag[i] != tag5[i]) { pc.printf("Tag5 - NOK "); pc.printf("\n\r"); egal5 = 0; break; //pc.printf(tag[i]); } } reponse_rfid[1]=0x00; } led1=0; led2=0; led3=0; wait_ms(850); } ledmanu = 0; } } /*void HandShake(){ pc.printf("\n\r"); pc.printf("CTS IS TO 0"); pc.printf("\n\r"); }*/ void Antenna() { pc.printf("\n\r"); pc.printf("ANTENNA NOT DETECTED"); pc.printf("\n\r"); } void field() { pc.printf("\n\r"); pc.printf("NOT TAG IN FIELD"); pc.printf("\n\r"); }