thomas strcic
/
ProjetInfo2_Multi12
oki
Fork of ProjetInfo2_Multi by
Diff: coffre.cpp
- Revision:
- 4:23e955d622f9
- Parent:
- 2:ae058dfdebac
diff -r ae058dfdebac -r 23e955d622f9 coffre.cpp --- 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