programme RFID anthony coudret-risso

Dependencies:   mbed

Revision:
0:a8c7cc9e26fb
Child:
1:290a357d0da0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed May 23 12:25:11 2018 +0000
@@ -0,0 +1,203 @@
+#include "stdio.h"
+#include "mbed.h"
+#include <Serial.h>
+
+DigitalIn CTS(p8);
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalOut led4(LED4);
+
+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[]= {0xAE,0xFB,0x63,0x10};
+int tag2[]= {0x25,0x02,0x64,0x10};
+int tag3[]= {0x3F,0xFC,0x63,0x10};
+int tag4[]= {0xCE,0xEE,0x63,0x10};
+int tag5[]= {0xD6,0xD9,0x63,0x10};
+int tag[]= {0};
+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 Tag();
+
+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) {
+                Tag();
+            }
+            if (reponse_rfid1[0] == 0xE0) {
+                Antenna();
+            }
+            for(int i=1; i<5; i++) {
+                tag[i-1] = reponse_rfid[i];
+            }
+
+            for(int i=0; i<4; i++) {
+                if(tag[i] == tag1[i]) {
+                    egal1 = 1;
+                    pc.printf("Tag1 - OK ");
+                    pc.printf("\n\r");
+                    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]);
+                }
+            }
+
+            led1=0;
+            led2=0;
+            led3=0;
+
+            wait_ms(850);
+        }
+        egal1=0;
+        egal2=0;
+        egal3=0;
+        egal4=0;
+        egal5=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 Tag()
+{
+    pc.printf("\n\r");
+    pc.printf("NOT TAG IN FIELD");
+    pc.printf("\n\r");
+}