oki

Dependencies:   mbed

Fork of ProjetInfo2_Multi by julien bitoun

main.cpp

Committer:
thomasstrcic
Date:
2018-06-05
Revision:
3:98f5de1dd010
Parent:
2:ae058dfdebac

File content as of revision 3:98f5de1dd010:

#include "mbed.h"
#include "coffre.h"
#include "music.h"


#define O 0.0193
#define F 0.0179



// VARIABLE *****************


extern BusIn digicode;
DigitalOut led1(p20);
DigitalOut led2(p18);
Timer t1;
Timer t2;
extern int u;
extern Timer t3;
extern int code[4];
extern int etat =0;
extern int   N_precedent;
extern int N;
int juste;
int count;
 extern Serial pc;
 Serial bluetooth(p28,p27);
 char chara;
 int val;




// CODE ************


int main()
{
    
    while(1) 
    {
        N_precedent=N;
        t3.start();
        if(t3.read()>0.01)
        {
            if (bluetooth.readable())
            {
                chara=bluetooth.getc();
                N=chara-'0';
            }
            
            
            t3.reset();
            t3.stop();
        }
        pc.printf("%d \n\r",N_precedent);
        pc.printf("%d \n\r",N);
        switch(etat)
        {
            case 0:
                if (count>=3)
                {
                    
                    led2.write(1);
                    music();
                    wait(3);
                    count=0;
                }
                
                if ( N_precedent==0 and N == code[0] ) 
                {
                    etat=1;
                    pc.printf("ok1\n\r");
                }
                if(N_precedent == 0 and N!=code[0] and N!=0) 
                {
                    etat=5;
                    t1.reset();
                    t1.start();
                    
                }
                if (N_precedent==0 and N==10)
                {
                    changement_code(code);
                    u=0;
                }
                pc.printf("etat =0\n\r");
                break;
            case 1 : 
                
                pc.printf("etat =1\n\r");
                if ( N_precedent==code[0] and N == code[1])
                {
                    etat=2;
                    pc.printf("ok2\n\r");
                }
                
                if(N_precedent == code[0] and N!=code[1] and N!=-3)
                {
                    etat=5;
                    t1.reset();
                    t1.start();
                }
                break;
            case 2 :  
                pc.printf("etat =2\n\r");
                if( N_precedent==-3 and N == code[2])
                {
                    etat=3;
                    pc.printf("ok3\n\r");
                }
                if(N_precedent == -3 and N!=code[2] and N!=-3)
                {
                    etat=5;
                    t1.reset();
                    t1.start();
                }
                break;
            case 3 : 
                pc.printf("etat =3\n\r");
                if ( N_precedent==-3 and N == code[3])
                {
                    etat=4;
                    pc.printf("bravo c bon msieur\n\r");
                    juste=1;
                    
                    wait(0.5);
                    t2.reset();
                    t2.start();
                }
                if(N_precedent == -3 and N!=code[3] and N!=-3)
                {
                    etat=5;
                    t1.reset();
                    t1.start();
                }
                break;
                    
            case 4:
                
            
                pc.printf("etat =4\n\r");
                if(t2.read()>0.5)
                {
                    etat=0;
                }
                break;
            case 5:
                if (t1.read()>1)
                {
                    count++;
                    pc.printf(" count = %d \n\r",count);
                    pc.printf("c faux msieur\n\r");
                    etat=0;
                    
                }
                pc.printf("etat =5\n\r");
                
                break;
            
            }
        switch(etat)
        {
           case 0:
                //led1.write(1);
                led2.write(0);
                break;
                
            case 1:
                led1.write(0);
                led2.write(0);
                break;
                
            case 2:
                led1.write(0);
                led2.write(0);
                break;
            case 3:
                break;
            case 4:
                led1.write(0);
                //led2.write(1);
                servo();
                break;
            }
                
            
        }
    }