df

Dependencies:   TFT-RFID_Finish mbed MFRC522 UniGraphic

main.cpp

Committer:
cakejohnn
Date:
2018-12-18
Revision:
11:e5a0b0cf3136
Parent:
10:2985dc4e40a5

File content as of revision 11:e5a0b0cf3136:

#include "stdio.h"
#include "mbed.h"
#include "string"
#include "Arial12x12.h"
#include "Arial24x23.h"
#include "Arial28x28.h"
#include "Arial43x48_numb.h"
#include "pict.h"
#include "pavement_48x34.h"
#include "TFT_MIPI.h"
#include "SDFileSystem.h"
#include "MFRC522.h"
#define MF_RESET PC_6
Serial pc(SERIAL_TX, SERIAL_RX);
Serial esp(PA_15,PB_7);
MFRC522    RfChip   (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET);
PinName buspins[] = { PA_9, PC_7, PA_10, PB_3, PB_5, PB_4, PB_10, PA_8 };
TFT_MIPI myLCD(BUS_8, buspins, A3, A4, A2, A1, A0, "myLCD");
DigitalIn Sw[] = {PB_13, PB_14, PB_15, PB_2, PB_12,PA_11 };
Timer t;

unsigned short backgroundcolor=Orange;
unsigned short foregroundcolor=Black;
char orient=1;
char b[] = " ";
int i=0;
int j=0;
int k=0;
int Pagejawjiw = 0;
int state = 0;
int select = 0;
int main(){
    pc.baud(9600);
    esp.baud(9600);
    char *StudentID;
    uint8_t UIDCard[4]={};
    pc.printf("starting...\n");
    RfChip.PCD_Init();
    myLCD.set_orientation(orient);
    int time;
    t.start();
    myLCD.background(White);    
    myLCD.foreground(foregroundcolor);    
    myLCD.cls();
    

    while(1){  
        if(Pagejawjiw == 0){
            myLCD.background(backgroundcolor);
            myLCD.foreground(foregroundcolor);
            myLCD.Bitmap(150,45,180,180,data);
            myLCD.fillrect(0,320,500,280,Orange);
            time=t.read_us();
            if(! RfChip.PICC_IsNewCardPresent()){
                  pc.printf("GOOOOOOOOO\n");
                  for(int i=200; i<=200;i++){
                    myLCD.locate(i,295);
                    myLCD.set_font((unsigned char*) Arial12x12);
                    myLCD.printf("Please scan your Student ID card to start.");}
                  for(int i=200; i>=2;i--){
                    myLCD.locate(i,295);
                    myLCD.set_font((unsigned char*) Arial12x12);
                    myLCD.printf("Please scan your Student ID card to start.");}
                  continue;}
            if ( ! RfChip.PICC_ReadCardSerial()){pc.printf("!!!!!!!!!!!!!!!");continue;}
            pc.printf("Studen's ID: ");
            for (uint8_t i = 0; i < RfChip.uid.size; i++){UIDCard[i] = RfChip.uid.uidByte[i];}
            if (UIDCard[0]==187 and UIDCard[1]==164 and UIDCard[2]==90 and UIDCard[3]==127){StudentID = "60340500033"; 
                pc.printf("%s\n",StudentID);Pagejawjiw = 1;myLCD.cls();
                char b[] = "X";
                esp.putc(b[0]);
                char id = esp.putc(b[0]);
                pc.printf("id %c\n",id);
            }
            else if (UIDCard[0]==60 and UIDCard[1]==135 and UIDCard[2]==56 and UIDCard[3]==59){StudentID = "60340500066"; 
            pc.printf("%s\n",StudentID);Pagejawjiw = 1;
                char b[] = "Y";
                esp.putc(b[0]);
                char id = esp.putc(b[0]);
                pc.printf("id %c\n",id);
            }
            else {StudentID="0"; pc.printf("%s\n",StudentID);}
            }
        else if (Pagejawjiw == 1) {
                if(i == 0 or Sw[2] == 0){
                    i++;

                    switch(i){
                        case 1:
                            select = 1;
                            pc.printf("A \n");
                            myLCD.fillrect(0,0,500,50,Orange);
                            myLCD.rect(155,70,320,120,Orange);
                            myLCD.rect(155,130,320,180,Orange);
                            myLCD.rect(155,190,320,240,Orange);
                            myLCD.rect(155,250,320,300,Orange);
                            myLCD.set_font((unsigned char*) Arial28x28);
                            myLCD.locate(160,15);
                            myLCD.background(Orange);
                            myLCD.foreground(Black);
                            myLCD.printf("Select Mode");
                            myLCD.set_font((unsigned char*) Arial24x23);
                            myLCD.locate(162,85);
                            myLCD.background(Yellow);
                            myLCD.foreground(Green);
                            myLCD.printf(" Document");
                            myLCD.locate(187,145);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("ID Card");
                            myLCD.locate(177,205);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("Financial");
                            myLCD.locate(202,265);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("Other");
                            wait(0.3);
                            break; 
                        case 2:
                            //myLCD.cls();
                            select = 2;
                            pc.printf("B \n");                                                        
                            myLCD.fillrect(0,0,500,50,Orange);
                            myLCD.rect(155,70,320,120,Orange);
                            myLCD.rect(155,130,320,180,Orange);
                            myLCD.rect(155,190,320,240,Orange);
                            myLCD.rect(155,250,320,300,Orange);
                            myLCD.set_font((unsigned char*) Arial28x28);
                            myLCD.locate(160,15);
                            myLCD.background(Orange);
                            myLCD.foreground(Black);
                            myLCD.printf("Select Mode");
                            myLCD.set_font((unsigned char*) Arial24x23);
                            myLCD.locate(162,85);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf(" Document");
                            myLCD.locate(187,145);
                            myLCD.background(Yellow);
                            myLCD.foreground(Green);
                            myLCD.printf("ID Card");
                            myLCD.locate(177,205);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("Financial");
                            myLCD.locate(202,265);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("Other");
                            wait(0.3);
                            break;  
                        case 3:                                            
                            select = 3;
                            pc.printf("C \n");                         
                            myLCD.fillrect(0,0,500,50,Orange);
                            myLCD.rect(155,70,320,120,Orange);
                            myLCD.rect(155,130,320,180,Orange);
                            myLCD.rect(155,190,320,240,Orange);
                            myLCD.rect(155,250,320,300,Orange);
                            myLCD.set_font((unsigned char*) Arial28x28);
                            myLCD.locate(160,15);
                            myLCD.background(Orange);
                            myLCD.foreground(Black);
                            myLCD.printf("Select Mode");
                            myLCD.set_font((unsigned char*) Arial24x23);
                            myLCD.locate(162,85);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf(" Document");
                            myLCD.locate(187,145);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("ID Card");
                            myLCD.locate(177,205);
                            myLCD.background(Yellow);
                            myLCD.foreground(Green);
                            myLCD.printf("Financial");
                            myLCD.locate(202,265);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("Other");
                            wait(0.3);
                            break; 
                        case 4:
                            select = 4;
                            pc.printf("D \n");                           
                            myLCD.fillrect(0,0,500,50,Orange);
                            myLCD.rect(155,70,320,120,Orange);
                            myLCD.rect(155,130,320,180,Orange);
                            myLCD.rect(155,190,320,240,Orange);
                            myLCD.rect(155,250,320,300,Orange);
                            myLCD.set_font((unsigned char*) Arial28x28);
                            myLCD.locate(160,15);
                            myLCD.background(Orange);
                            myLCD.foreground(Black);
                            myLCD.printf("Select Mode");
                            myLCD.set_font((unsigned char*) Arial24x23);
                            myLCD.locate(162,85);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf(" Document");
                            myLCD.locate(187,145);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("ID Card");
                            myLCD.locate(177,205);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("Financial");
                            myLCD.locate(202,265);
                            myLCD.background(Yellow);
                            myLCD.foreground(Green);
                            myLCD.printf("Other");
                            wait(0.3);
                            break;
                        case 5:
                            i=0;
//                            int typeA = 0;
//                            int typeB = 0;
//                            int typeC = 0;
//                            int typeD = 0;
                            break; 
                        }
                    }
                else if(Sw[0] == 0){
                    i--;
                    switch(i){
                        case 0:
                            i = 5;
                            break;
                        case 1:
                            //myLCD.cls();
                            myLCD.fillrect(0,0,500,50,Orange);
                            myLCD.rect(155,70,320,120,Orange);
                            myLCD.rect(155,130,320,180,Orange);
                            myLCD.rect(155,190,320,240,Orange);
                            myLCD.rect(155,250,320,300,Orange);
                            myLCD.set_font((unsigned char*) Arial28x28);
                            myLCD.locate(160,15);
                            myLCD.background(Orange);
                            myLCD.foreground(Black);
                            myLCD.printf("Select Mode");
                            myLCD.set_font((unsigned char*) Arial24x23);
                            myLCD.locate(162,85);
                            myLCD.background(Yellow);
                            myLCD.foreground(Green);
                            myLCD.printf(" Document");
                            myLCD.locate(187,145);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("ID Card");
                            myLCD.locate(177,205);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("Financial");
                            myLCD.locate(202,265);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("Other");
                            wait(0.3);
                            break; 
                        case 2:
                            myLCD.fillrect(0,0,500,50,Orange);
                            myLCD.rect(155,70,320,120,Orange);
                            myLCD.rect(155,130,320,180,Orange);
                            myLCD.rect(155,190,320,240,Orange);
                            myLCD.rect(155,250,320,300,Orange);
                            myLCD.set_font((unsigned char*) Arial28x28);
                            myLCD.locate(160,15);
                            myLCD.background(Orange);
                            myLCD.foreground(Black);
                            myLCD.printf("Select Mode");
                            myLCD.set_font((unsigned char*) Arial24x23);
                            myLCD.locate(162,85);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf(" Document");
                            myLCD.locate(187,145);
                            myLCD.background(Yellow);
                            myLCD.foreground(Green);
                            myLCD.printf("ID Card");
                            myLCD.locate(177,205);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("Financial");
                            myLCD.locate(202,265);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("Other");
                            wait(0.3);
                            break;  
                        case 3:
                            myLCD.fillrect(0,0,500,50,Orange);
                            myLCD.rect(155,70,320,120,Orange);
                            myLCD.rect(155,130,320,180,Orange);
                            myLCD.rect(155,190,320,240,Orange);
                            myLCD.rect(155,250,320,300,Orange);
                            myLCD.set_font((unsigned char*) Arial28x28);
                            myLCD.locate(160,15);
                            myLCD.background(Orange);
                            myLCD.foreground(Black);
                            myLCD.printf("Select Mode");
                            myLCD.set_font((unsigned char*) Arial24x23);
                            myLCD.locate(162,85);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf(" Document");
                            myLCD.locate(187,145);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("ID Card");
                            myLCD.locate(177,205);
                            myLCD.background(Yellow);
                            myLCD.foreground(Green);
                            myLCD.printf("Financial");
                            myLCD.locate(202,265);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("Other");
                            wait(0.3);
                            break; 
                        case 4:
                            myLCD.fillrect(0,0,500,50,Orange);
                            myLCD.rect(155,70,320,120,Orange);
                            myLCD.rect(155,130,320,180,Orange);
                            myLCD.rect(155,190,320,240,Orange);
                            myLCD.rect(155,250,320,300,Orange);
                            myLCD.set_font((unsigned char*) Arial28x28);
                            myLCD.locate(160,15);
                            myLCD.background(Orange);
                            myLCD.foreground(Black);
                            myLCD.printf("Select Mode");
                            myLCD.set_font((unsigned char*) Arial24x23);
                            myLCD.locate(162,85);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf(" Document");
                            myLCD.locate(187,145);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("ID Card");
                            myLCD.locate(177,205);
                            myLCD.background(White);
                            myLCD.foreground(Black);
                            myLCD.printf("Financial");
                            myLCD.locate(202,265);
                            myLCD.background(Yellow);
                            myLCD.foreground(Green);
                            myLCD.printf("Other");
                            wait(0.3);
                            break; 
                        }
                    }
                else if(Sw[4] == 0){
                    pc.printf("%d",select);
                    if(select == 1){
                            char a[] = "1";
                            esp.putc(a[0]);                            
                            char ty1 = esp.putc(a[0]);
                            pc.printf("type %c\n",ty1);
                         }
                    else if(select == 2){
                            char b[] = "2";
                            esp.putc(b[0]);                            
                            char ty2 = esp.putc(b[0]);
                            pc.printf("type %c\n",ty2);
                         }
                    else if(select == 3){
                            char c[] = "3";
                            esp.putc(c[0]);                            
                            char ty3 = esp.putc(c[0]);
                            pc.printf("type %c\n",ty3);
                         }
                    else if(select == 4){
                            char d[] = "4";
                            esp.putc(d[0]);                            
                            char ty4 = esp.putc(d[0]);
                            pc.printf("type %c\n",ty4);
                         }                                                  
 
                    Pagejawjiw++;
                    wait(0.3);                                                                   
                    }
                }
            else if(Pagejawjiw == 2){
                if(j == 0 or Sw[1] == 0){
                    switch(j){
                       case 0:
                            j++;
                            myLCD.cls();
                            myLCD.fillrect(0,0,500,50,Orange);
                            myLCD.locate(150,15);
                            myLCD.background(Orange);
                            myLCD.set_font((unsigned char*) Arial28x28);
                            myLCD.printf("Select JorJew");
                            myLCD.fillrect(40,130,215,230,DarkGrey);
                            myLCD.fillrect(265,130,440,230,DarkGrey);
                            myLCD.fillcircle(127,182,40,Yellow);
                            myLCD.fillcircle(347,182,40,White);
                            myLCD.set_font((unsigned char*) Arial43x48_numb, 46, 58, false);
                            myLCD.background(White);
                            myLCD.locate(106,160);
                            myLCD.printf(" 1");
                            myLCD.locate(326,160);
                            myLCD.printf(" 2");
                            wait(0.3);
                            break;
                        case 1:
                            myLCD.fillrect(0,0,500,50,Orange);
                            myLCD.locate(150,15);
                            myLCD.background(Orange);
                            myLCD.set_font((unsigned char*) Arial28x28);
                            myLCD.printf("Select JorJew");
                            myLCD.fillrect(40,130,215,230,DarkGrey);
                            myLCD.fillrect(265,130,440,230,DarkGrey);
                            myLCD.fillcircle(127,182,40,White);
                            myLCD.fillcircle(347,182,40,Yellow);
                            myLCD.set_font((unsigned char*) Arial43x48_numb, 46, 58, false);
                            myLCD.background(White);
                            myLCD.locate(106,160);
                            myLCD.printf(" 1");
                            myLCD.locate(326,160);
                            myLCD.printf(" 2");
                            wait(0.3);
                            break;
                        }
                    }
                else if(Sw[3] == 0){
                            myLCD.fillrect(0,0,500,50,Orange);
                            myLCD.locate(150,15);
                            myLCD.background(Orange);
                            myLCD.set_font((unsigned char*) Arial28x28);
                            myLCD.printf("Select JorJew");
                            myLCD.fillrect(40,130,215,230,DarkGrey);
                            myLCD.fillrect(265,130,440,230,DarkGrey);
                            myLCD.fillcircle(127,182,40,Yellow);
                            myLCD.fillcircle(347,182,40,White);
                            myLCD.set_font((unsigned char*) Arial43x48_numb, 46, 58, false);
                            myLCD.background(White);
                            myLCD.locate(106,160);
                            myLCD.printf(" 1");
                            myLCD.locate(326,160);
                            myLCD.printf(" 2");
                            wait(0.3);
                    }
                else if(Sw[5] == 0){
                    Pagejawjiw = 1;
                    wait(0.3);
                    i = 0;
                    myLCD.cls();
                    }
                else if(Sw[4] == 0){
                    Pagejawjiw++;
                    wait(0.3);
                    myLCD.cls();
                    k=0;
                    }
                }
            else if(Pagejawjiw == 3){
                if(k==0 or Sw[1] == 0){
                myLCD.fillrect(0,0,500,50,Orange);
                myLCD.locate(150,15);
                myLCD.background(Orange);
                myLCD.fillrect(125,90,355,230,Green); 
                myLCD.set_font((unsigned char*) Arial28x28);
                myLCD.locate(165,130);
                myLCD.background(Green);
                myLCD.foreground(Black);
                myLCD.printf(" Take out"); 
                myLCD.locate(155,170);
                myLCD.printf(" JorJew#1/2");
                myLCD.fillrect(100,250,215,300,Yellow);
                myLCD.fillrect(265,250,380,300,Yellow);
                myLCD.locate(110,260);
                myLCD.background(Green);
                myLCD.foreground(Black);
                myLCD.printf("(A)");
                myLCD.locate(265,260);
                myLCD.printf("(C)");
                k++;
                wait(0.3);
                }
                else if((Sw[0] == 0)){
                    myLCD.cls();
                    Pagejawjiw++;
                    wait(0.3);
                }
                else if((Sw[2] == 0)){
                    Pagejawjiw--;
                    wait(0.3);
                    j = 0;
                }
                }
            else if(Pagejawjiw == 4){
                myLCD.cls();
                myLCD.background(backgroundcolor);
                myLCD.foreground(foregroundcolor);
                myLCD.Bitmap(150,45,180,180,data);
                myLCD.fillrect(0,320,500,280,Orange);
                time=t.read_us();
                Pagejawjiw = 0;
                i = 0;
                for(int i=2; i<350;i++){
                        myLCD.locate(i,295);
                        myLCD.set_font((unsigned char*) Arial12x12);
                        myLCD.printf("Love , Thank you");
                }
                for(int i=350; i>=2;i--){
                        myLCD.locate(i,295);
                        myLCD.set_font((unsigned char*) Arial12x12);
                        myLCD.printf("Love , Thank you");
                }
                wait(5);
                myLCD.cls();
              }
      }
}