Nextion TFT LCD Card Display

Dependencies:   MFRC522 NextionLCD

Fork of ProjectCardDisplay by Shivanand Gowda

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002  #include "NextionLCD.h"
00003  #include "Time.h"
00004  #define  PASSWORD 11111
00005  
00006 #include "MFRC522.h"
00007 #include "Card.h"
00008  
00009 RawSerial pc(USBTX,USBRX);
00010 NextionLCD lcd(D1, D0);     //Tx, Rx
00011 Thread Menu;
00012 Thread DispTime;
00013 Thread DispName;
00014 
00015 DigitalOut led1(LED1);
00016 DigitalOut led2(LED2);
00017 DigitalOut led3(LED3);
00018 DigitalOut relay(D8);
00019 
00020 
00021 volatile char c;
00022 uint8_t Present_State=0;
00023 uint8_t Previous_State=0;
00024 uint8_t Back=0;
00025 void Page1(void);
00026 void Page2(void);
00027 void Page3(void);
00028 void Page4(void);
00029 void Main_Menu(void);
00030 void flip(void);
00031 
00032  
00033  char prevPage='\0';
00034 //bool flag=true;
00035 char Cand_Name[25]={'\0'};
00036  char Time_Disp[30]={'\0'};
00037  
00038  void Display_Details(void);
00039  
00040 void pc_recv()
00041 {      
00042     while(pc.readable()) 
00043     {
00044       c=pc.getc();    
00045     }
00046 }
00047 
00048 
00049 void Menu_Selection()
00050 {  
00051    
00052     while(1)
00053     {
00054              pc_recv();  
00055         switch (c)
00056         {
00057        case '1':  
00058                     Main_Menu();
00059                     c='\0';
00060                     wait(1);
00061                break;
00062                
00063        case '2':
00064                 Page1();
00065                 c='\0';
00066                 wait(1);
00067               break;
00068                 
00069        case '3':
00070                 Page2();
00071                 c='\0';
00072                 wait(1);
00073              break;
00074        case '4':
00075                 Page3();
00076                 c='\0';
00077                 wait(1);
00078                break;
00079                
00080        case '5': 
00081                 Page4();
00082                 c='\0';
00083                 wait(1);
00084                break;  
00085        default: 
00086                     //lcd.DrawString(0,0,480,40,2,WHITE,BLACK,0,2, "Flash Master Card to Edit");      
00087 //                    Display_Details();
00088                     wait(1);
00089                 break;  
00090         }
00091     }   
00092 }
00093 
00094 void Display_Time(void)
00095 {
00096   while(true)
00097   {
00098     Get_Date_Time_Display(Time_Disp);
00099     lcd.DrawString(0,0,480,40,2,BLACK,WHITE,0,0,Time_Disp); 
00100     lcd.DrawString(0,295,480,25,1,BLACK,WHITE,0,0,"Powered by Exultsoft Technolies Pvt. Ltd.");
00101     wait(60);
00102     memset(Time_Disp,'\0',30);
00103   }
00104  
00105 }
00106  int main() 
00107  {    
00108       char CARDNO[30]={'\0'};
00109       lcd.ClrScr(BLACK);      
00110       lcd.DrawString(0,100,480,40,2,WHITE,BLACK,0,2,  "##############################"); 
00111       lcd.DrawString(0,150,480,40,2,YELLOW,BLACK,0,0, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
00112       lcd.DrawString(0,200,480,40,2,BLUE,BLACK,0,0,   "------------------------------");
00113       lcd.ClrScr(BLACK);
00114       wait(10); 
00115       iSetTerminalTime("27072018111213");
00116       Menu.start(callback(Menu_Selection));
00117       DispTime.start(callback(Display_Time));
00118       DispName.start(callback(Display_Details));  
00119      
00120       int success=-1;
00121       while(true)
00122       {
00123       MIFARE_Init();
00124       Read_Card_Details(CARDNO);
00125       
00126      success= strcmp(CARDNO,"17D6C66B");
00127          if(success==0)
00128          {
00129          flip();
00130          wait(1);
00131          }
00132       }
00133  }
00134 
00135 
00136 
00137 
00138 void Main_Menu(void)
00139 {   
00140       lcd.DrawString(0,40,480,40,2,WHITE,BLACK,0,0, "1. MAIN MENU "); 
00141       lcd.DrawString(0,80,480,40,2,YELLOW,RED,0,0,"2. OPTION ONE  ");
00142       lcd.DrawString(0,120,480,40,2,BLUE,GREEN,0,0, "3. OPTION TWO ");
00143       lcd.DrawString(0,160,480,40,2,BROWN,WHITE,0,0,"4. OPTION THREE ");
00144       lcd.DrawString(0,200,480,40,2,RED,YELLOW,0,0,  "5. OPTION FOUR ");
00145       lcd.DrawString(0,240,480,40,2,GREEN,BLUE,0,0,"6. OPTION FIVE");
00146       wait(1);
00147       Present_State=1; Previous_State=0;
00148 }
00149 
00150 void Page1(void)
00151 {   
00152       lcd.DrawString(0,40,480,40,2,WHITE,BLACK,0,2,   "1. MAIN MENU "); 
00153       lcd.DrawString(0,80,480,40,2,YELLOW,RED,0,0,  "2. PAGE 1  OPTION ONE  ");
00154       lcd.DrawString(0,120,480,40,2,BLUE,GREEN,0,0, "3. PAGE 1  OPTION TWO ");
00155       lcd.DrawString(0,160,480,40,2,WHITE,GRAY,0,0, "4. PAGE 1  OPTION THREE ");
00156       lcd.DrawString(0,200,480,40,2,RED,YELLOW,0,0, "5. PAGE 1  OPTION FOUR ");
00157       lcd.DrawString(0,240,480,40,2,GREEN,BLUE,0,0, "6. PAGE 1  OPTION FIVE");
00158       wait(1);
00159       Present_State=2; Previous_State=0;
00160 }
00161 
00162 void Page2(void)
00163 {   
00164       lcd.DrawString(0,40,480,40,2,WHITE,BLACK,0,2,   "1. MAIN MENU "); 
00165       lcd.DrawString(0,80,480,40,2,YELLOW,RED,0,0,  "2. PAGE 2  OPTION ONE  ");
00166       lcd.DrawString(0,120,480,40,2,BLUE,GREEN,0,0, "3. PAGE 2  OPTION TWO ");
00167       lcd.DrawString(0,160,480,40,2,WHITE,GRAY,0,0, "4. PAGE 2  OPTION THREE ");
00168       lcd.DrawString(0,200,480,40,2,RED,YELLOW,0,0, "5. PAGE 2  OPTION FOUR ");
00169       lcd.DrawString(0,240,480,40,2,GREEN,BLUE,0,0, "6. PAGE 2  OPTION FIVE");
00170       wait(1);
00171       Present_State=3; Previous_State=0;
00172 }
00173 
00174 void Page3(void)
00175 {   
00176       lcd.DrawString(0,40,480,40,2,WHITE,BLACK,0,2,   "1. MAIN MENU "); 
00177       lcd.DrawString(0,80,480,40,2,YELLOW,RED,0,0,  "2. PAGE 3  OPTION ONE  ");
00178       lcd.DrawString(0,120,480,40,2,BLUE,GREEN,0,0, "3. PAGE 3  OPTION TWO ");
00179       lcd.DrawString(0,160,480,40,2,WHITE,GRAY,0,0, "4. PAGE 3  OPTION THREE ");
00180       lcd.DrawString(0,200,480,40,2,RED,YELLOW,0,0, "5. PAGE 3  OPTION FOUR ");
00181       lcd.DrawString(0,240,480,40,2,GREEN,BLUE,0,0, "6. PAGE 3  OPTION FIVE");
00182       wait(1); 
00183   
00184 Present_State=4; Previous_State=0; 
00185 }
00186 
00187 void Page4(void)
00188 {   
00189        lcd.DrawString(0,40,480,40,2,WHITE,BLACK,0,2,   "1. MAIN MENU "); 
00190       lcd.DrawString(0,80,480,40,2,YELLOW,RED,0,0,  "2. PAGE 4  OPTION ONE  ");
00191       lcd.DrawString(0,120,480,40,2,BLUE,GREEN,0,0, "3. PAGE 4  OPTION TWO ");
00192       lcd.DrawString(0,160,480,40,2,WHITE,GRAY,0,0, "4. PAGE 4  OPTION THREE ");
00193       lcd.DrawString(0,200,480,40,2,RED,YELLOW,0,0, "5. PAGE 4  OPTION FOUR ");
00194       lcd.DrawString(0,240,480,40,2,GREEN,BLUE,0,0, "6. PAGE 4  OPTION FIVE");
00195       wait(1);
00196       Present_State=0; Previous_State=0;
00197 }
00198 
00199 void Display_Details(void)
00200 {    
00201    while(1)
00202    { 
00203      Thread::signal_wait(0x2);
00204      memcpy(Cand_Name,"        Good Morning",20);
00205      int hours=Get_Hours();
00206      if(hours>=0 && hours <12) 
00207      lcd.FillRectangle(0,40,480,255,BLUE);
00208      lcd.DrawString(0,40,480,40,2,WHITE,BLUE,0,2,Cand_Name); 
00209      lcd.DrawString(0,80,480,40,2,WHITE,BLUE,0,2,"Name of CARD Holder");  
00210      lcd.DrawString(0,120,480,40,2,WHITE,BLUE,0,2,"     Have a Great Day ");  
00211      memset(Cand_Name,'\0',25);
00212      relay=0;  
00213      wait(1);
00214      relay=1;
00215      wait(2);
00216      lcd.FillRectangle(0,40,480,255,BLUE);
00217      
00218      }
00219 }
00220 
00221 void flip(void)
00222 {
00223    led1=!led1;
00224    led2=!led2;
00225    led3=!led3;
00226    DispName.signal_set(0x02); 
00227   
00228 }
00229