Capteur d'empreinte digitale, pin UART PC6, PC7 Alimentation 3.3V Utilisation : Initialisation du capteur en fond Choix de l'utilisateur pour vérifier l'empreinte Retour à la page de menu avec le bouton annuler

Dependencies:   TS_DISCO_F746NG mbed LCD_DISCO_F746NG BSP_DISCO_F746NG

main.cpp

Committer:
arthurborg
Date:
2019-06-04
Revision:
3:9b58c1b47789
Parent:
0:9933f7db9a9b

File content as of revision 3:9b58c1b47789:

#include "mbed.h"
#include "TS_DISCO_F746NG.h"
#include "LCD_DISCO_F746NG.h"

Serial empreinte(PC_6,PC_7,9600);
//Serial pc(USBTX,USBRX,115200);

LCD_DISCO_F746NG lcd;
TS_DISCO_F746NG ts;


int main()
{
    TS_StateTypeDef TS_State;
    uint16_t x, y;
    char text[30];
    uint8_t idx=0;
    int save = 0;
    int etat = 0;
    char a = 0x55;
    char b = 0xAA;
    char O = 0x00;
    char para = 0x00;
    char cmd = 0x01;

    short int sum = a+b+O+para+cmd;
    empreinte.putc(0x55); wait(0.1);
    empreinte.putc(0xAA); wait(0.1);
    empreinte.putc(0x01); wait(0.1);
    empreinte.putc(0); wait(0.1);
    empreinte.putc(0); wait(0.1);
    empreinte.putc(0); wait(0.1);
    empreinte.putc(0); wait(0.1);
    empreinte.putc(0); wait(0.1);
    empreinte.putc(0x01); wait(0.1);
    empreinte.putc(0); wait(0.1);
    empreinte.putc(0x01); wait(0.1);
    empreinte.putc(0x01); wait(0.1);

    wait(0.005);
    while (empreinte.readable()) {
        empreinte.getc();
        wait(0.002);    
    }
    wait(1);

    empreinte.putc(0x55); wait(0.1);
    empreinte.putc(0xAA); wait(0.1);
    empreinte.putc(0x01); wait(0.1);
    empreinte.putc(0); wait(0.1);
    empreinte.putc(0x01); wait(0.1);
    empreinte.putc(0); wait(0.1);
    empreinte.putc(0); wait(0.1);
    empreinte.putc(0); wait(0.1);
    empreinte.putc(0x12); wait(0.1);
    empreinte.putc(0); wait(0.1);
    empreinte.putc(0x13); wait(0.1);
    empreinte.putc(0x01); wait(0.1);
  

    

/*
    empreinte.putc(a);
    empreinte.putc(b);
    empreinte.putc(O);
    empreinte.putc(para);
    empreinte.putc(cmd);
    empreinte.putc(sum & 0xFF);
    empreinte.putc((sum & 0xFF00)>>8);
*/
    lcd.DisplayStringAt(0, LINE(8), (uint8_t *)"Bienvenue dans le programme", CENTER_MODE);
    wait(3);
    lcd.Clear(LCD_COLOR_WHITE);
    lcd.SetFont(&Font20);
    lcd.SetBackColor(LCD_COLOR_WHITE);
    lcd.SetTextColor(LCD_COLOR_BLACK);                                          // initialisation de l'écran tactil
    while(1) {
        
        ts.GetState(&TS_State);
        if (TS_State.touchDetected) {                                           // récupération de la position de l'appui
            x = TS_State.touchX[idx];               
            y = TS_State.touchY[idx];
        }
         
         switch(etat){
            case 0:                                                             // écran d'acceuil
                lcd.SetFont(&Font20);
                lcd.SetBackColor(LCD_COLOR_WHITE);
                lcd.SetTextColor(LCD_COLOR_BLACK);
                lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Annuler", LEFT_MODE); // 97p par 24p
                lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"Mme Fiona LEBEL", LEFT_MODE); //206p par 24p
                lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"M Matthieu BICHET", RIGHT_MODE);//206p par 24p
                lcd.DisplayStringAt(0, LINE(9), (uint8_t *)"M Ludovic CHERIAUX", LEFT_MODE); // 239p par 24p
                lcd.DisplayStringAt(0, LINE(9), (uint8_t *)"M Renaud GOMES", RIGHT_MODE); // 191p par 24p
                lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"M BAST22", CENTER_MODE); // 120p par 24p
                etat = 1;
                break;
                
            case 1:
                if(((x >= 0) && (x <= 206)) && ((y >= 63) && (y <= 87))){ // case fiona
                    save = 2;
                    etat = 12;
                    }
                if(((x >= 254) && (x <= 460)) && ((y >= 63) && (y <= 87))){ // case matthieu
                    save = 3;
                    etat = 12;
                    }
                if(((x >= 0) && (x <= 239)) && ((y >= 163) && (y <= 187))){ // case Ludo
                    save = 4;
                    etat = 12;
                    }
                if(((x >= 269) && (x <= 460)) && ((y >= 163) && (y <= 187))){ // case Renaud
                    save = 5;
                    etat = 12;
                    }
                if(((x >= 169) && (x <= 289)) && ((y >= 111) && (y <= 135))){ // case Bast22
                    save = 6;
                    etat = 12;
                    }
                break;
                
            case 2:                                                             // Gestion de l'état correspondant à Fiona
                lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Annuler", LEFT_MODE); // 97p par 24p
                lcd.DisplayStringAt(0,LINE(3),(uint8_t*)"Entrez votre empreinte Mme LEBEL",CENTER_MODE);
                O = 0x50;
                para = 0x00;
                sum = a+b+O+para+cmd;;
                empreinte.printf("%c%c%c%c%c%c%d",a,b,O,para,O,cmd,sum);  
                if(((x >= 0) && (x <= 97)) && ((y >= 0) && (y <= 24))){ // Retour au menu
                    save = 0;
                    etat = 12;
                    }
                break;
                
            case 3:                                                             // Gestion de l'état correspondant à Matthieu
                lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Annuler", LEFT_MODE); // 97p par 24p
                lcd.DisplayStringAt(0,LINE(3),(uint8_t*)"Entrez votre empreinte M BICHET",CENTER_MODE);
                O = 0x50;
                para = 0x01;
                sum = a+b+O+para+cmd;
                empreinte.printf("%c%c%c%c%c%c%d",a,b,O,para,O,cmd,sum);  
                if(((x >= 0) && (x <= 97)) && ((y >= 0) && (y <= 24))){ // Retour au menu
                    save = 0;
                    etat = 12;
                    }
                break;
            
            case 4:                                                             // Gestion de l'état correspondant à Ludovic
                lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Annuler", LEFT_MODE); // 97p par 24p
                lcd.DisplayStringAt(0,LINE(3),(uint8_t*)"Entrez votre empreinte M CHERIAUX",CENTER_MODE);
                O = 0x50;
                para = 0x02;
                sum = a+b+O+para+cmd;
                empreinte.printf("%c%c%c%c%c%c%d",a,b,O,para,O,cmd,sum);  
                if(((x >= 0) && (x <= 97)) && ((y >= 0) && (y <= 24))){ // Retour au menu
                    save = 0;
                    etat = 12;
                    }
                break;
            
            case 5:                                                             // Gestion de l'état correspondant à Renaud
                lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Annuler", LEFT_MODE); // 97p par 24p
                lcd.DisplayStringAt(0,LINE(3),(uint8_t*)"Entrez votre empreinte M GOMES",CENTER_MODE);
                O = 0x50;
                para = 0x03;
                sum = a+b+O+para+cmd;
                empreinte.printf("%c%c%c%c%c%c%d",a,b,O,para,O,cmd,sum);  
                if(((x >= 0) && (x <= 97)) && ((y >= 0) && (y <= 24))){ // Retour au menu
                    save = 0;
                    etat = 12;
                    }
                break;
                
            case 6:                                                             //
                lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Annuler", LEFT_MODE); // 97p par 24p
                lcd.DisplayStringAt(0,LINE(3),(uint8_t*)"Entrez votre empreinte BAST22",CENTER_MODE);
                O = 0x50;
                para = 0x04;
                sum = a+b+O+para+cmd;
                empreinte.printf("%c%c%c%c%c%c%d",a,b,O,para,O,cmd,sum);  
                if(((x >= 0) && (x <= 97)) && ((y >= 0) && (y <= 24))){ // Retour au menu
                    save = 0;
                    etat = 12;
                    }
                break;
            
            case 12:
                lcd.Clear(LCD_COLOR_WHITE);
                etat = save;
                break;            
            }
    }
}