oki

Dependencies:   mbed

Fork of ProjetInfo2_Multi by julien bitoun

Revision:
4:23e955d622f9
Parent:
2:ae058dfdebac
--- a/coffre.cpp	Fri Jun 01 11:36:44 2018 +0000
+++ b/coffre.cpp	Tue Jun 12 14:45:54 2018 +0000
@@ -1,12 +1,23 @@
 #include"mbed.h"
+#include "TextLCD.h"
 
-
-BusIn digicode(p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16);
+//BusIn digicode(p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16);
 DigitalOut s(p17);
 Timer t;
 Timer t11;
+int u;
+int   N_precedent;
+int N,i;
+int a,b,c,d;
+int code[4]={2,1,0,3};
+Timer t3;
+int etat2=1;
+Serial pc (USBTX,USBRX);
+Serial bluetooth(p28,p27);
+char chara;
+TextLCD LCD (p10,p11,p12,p13,p14,p15);
 
-int lireval(){
+/*int lireval(){
     int val;
     if(digicode.read()==0){
         val=-3;
@@ -46,7 +57,7 @@
         }
         return val;
 }
-
+*/
 void servo()
 {
     int c=0;
@@ -90,4 +101,175 @@
                 
         }
     }
+}
+
+
+void changement_code(int *code)
+{
+    u=0;
+    while(u<1) 
+    {
+        N_precedent=N;
+        t3.start();
+        if (bluetooth.readable())
+        {
+            chara=bluetooth.getc();
+            N=chara-'0';
+        }
+        else
+        {
+            N=-3;
+        }
+        
+        switch(etat2)
+        {
+            case 0:
+             
+                if ( N_precedent==-3 and N == -2 )
+                {
+                    pc.printf("changement de mdp : \r\n");
+                    
+                    etat2=1;
+                }
+                pc.printf("etat 0 \n\r");
+                break;
+            case 1:
+                LCD.cls();
+                    LCD.printf("ancien");
+                    LCD.locate(0,1);
+                    LCD.printf("code :");
+            
+                if(N_precedent == -3 and N== *code)
+                {
+                    LCD.cls();
+                LCD.locate(0,0);
+                LCD.printf("*");
+                    etat2=2;
+                    
+                }
+                if(N_precedent == -3 and N!=*code and N!=-3) 
+                {
+                    etat2=10;    
+                }
+                pc.printf("etat 1 \n\r");
+                break;
+            case 2:
+                
+                if(N_precedent == -3 and N==*(code+1))
+                {
+                    LCD.locate(1,0);
+                    LCD.printf("*");
+                    etat2=3;
+                }
+                if(N_precedent == -3 and N!=*(code+1) and N!=-3) 
+                {
+                    etat2=10;    
+                }
+                pc.printf("etat 2 \n\r");
+                break;
+            case 3:
+                if(N_precedent == -3 and N==*(code+2))
+                {
+                    LCD.locate(2,0);
+                    LCD.printf("*");
+                    etat2=4;
+                }
+                if(N_precedent == -3 and N!=*(code+2) and N!=-3) 
+                {
+                    etat2=10;    
+                }
+                pc.printf("etat 3 \n\r");
+                break;
+            case 4:
+                if(N_precedent == -3 and N==*(code+3))
+                {
+                    LCD.locate(3,0);
+                    LCD.printf("*");
+                    etat2=5;
+                }
+                if(N_precedent == -3 and N!=*(code+3) and N!=-3) 
+                {
+                    etat2=10;    
+                }
+                pc.printf("etat 4 \n\r");
+                break;
+            case 5:
+                pc.printf("taper le nouveau code \n\r");
+                LCD.cls();
+                LCD.printf("NEW");
+                LCD.locate(0,1);
+                LCD.printf("CODE");
+                if (N_precedent ==-3 and N!=-3)
+                {
+                    a=N;
+                    *code=a;
+                    LCD.cls();
+                    LCD.printf("%d",a);
+                    etat2=6;
+                }
+                pc.printf("etat 5 \n\r");
+                break;
+            case 6:
+                if (N_precedent ==-3 and N!=-3)
+                {
+                    b=N;
+                    *(code+1)=b;
+                    LCD.locate(1,0);
+                    LCD.printf("%d",b);
+                    etat2=7;
+                }
+                pc.printf("etat 6 \n\r");
+                break;
+            case 7:
+                if (N_precedent ==-3 and N!=-3)
+                {
+                    c=N;
+                    *(code+2)=c;
+                    LCD.locate(2,0);
+                    LCD.printf("%d",c);
+                    etat2=8;
+                }
+                pc.printf("etat 7 \n\r");
+                break;
+            case 8:
+                if (N_precedent ==-3 and N!=-3)
+                {
+                    d=N;
+                    *(code+3)=d;
+                    LCD.locate(3,0);
+                    LCD.printf("%d",d);
+                    etat2=9;
+                }
+                pc.printf("etat 8 \n\r");
+                break;
+            case 9:
+            
+                pc.printf("%d \n\r",a);
+                pc.printf("%d \n\r",b);
+                pc.printf("%d \n\r",c);
+                pc.printf("%d \n\r",d);
+                LCD.cls();
+                LCD.printf("code");
+                LCD.locate(0,1);
+                LCD.printf("change");
+                wait(1);
+                u++;
+                etat2=1;
+                break;
+            case 10:
+                pc.printf( "code errone \n\r");
+                LCD.cls();
+                LCD.printf("code");
+                LCD.locate(0,1);
+                LCD.printf("faux");
+                wait(00.5);
+                etat2=1;
+                break;
+            
+        }
+    }
+    for (i=0;i<4;i++)
+    {
+        pc.printf("%d \n\r",code[i]);
+    }
 }
\ No newline at end of file