Jawjiw / Mbed 2 deprecated TFT-RFID_Finish2

Dependencies:   mbed MFRC522 UniGraphic

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "stdio.h"
00002 #include "mbed.h"
00003 #include "string"
00004 #include "Arial12x12.h"
00005 #include "Arial24x23.h"
00006 #include "Arial28x28.h"
00007 #include "Arial43x48_numb.h"
00008 #include "pict.h"
00009 #include "pavement_48x34.h"
00010 #include "TFT_MIPI.h"
00011 #include "SDFileSystem.h"
00012 #include "MFRC522.h"
00013 #define MF_RESET PC_6
00014 Serial pc(SERIAL_TX, SERIAL_RX);
00015 Serial esp(PA_15,PB_7);
00016 MFRC522    RfChip   (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET);
00017 PinName buspins[] = { PA_9, PC_7, PA_10, PB_3, PB_5, PB_4, PB_10, PA_8 };
00018 TFT_MIPI myLCD(BUS_8, buspins, A3, A4, A2, A1, A0, "myLCD");
00019 DigitalIn Sw[] = {PB_13, PB_14, PB_15, PB_2, PB_12,PA_11 };
00020 Timer t;
00021 
00022 unsigned short backgroundcolor=Orange;
00023 unsigned short foregroundcolor=Black;
00024 char orient=1;
00025 int i=0;
00026 int j=0;
00027 int k=0;
00028 int Pagejawjiw = 0;
00029 int state = 0;
00030 int typeA = 0;
00031 int typeB = 0;
00032 int typeC = 0;
00033 int typeD = 0;
00034 int queueA = 0;
00035 int queueB = 0;
00036 int queueC = 0;
00037 int queueD = 0;
00038 int main(){
00039     pc.baud(9600);
00040     esp.baud(9600);
00041     char *StudentID;
00042     uint8_t UIDCard[4]={};
00043     pc.printf("starting...\n");
00044     RfChip.PCD_Init();
00045 
00046     myLCD.set_orientation(orient);
00047     int time;
00048     t.start();
00049     myLCD.background(White);    
00050     myLCD.foreground(foregroundcolor);    
00051     myLCD.cls();
00052 
00053     while(1){  
00054         if(Pagejawjiw == 0){
00055             myLCD.background(backgroundcolor);
00056             myLCD.foreground(foregroundcolor);
00057             myLCD.Bitmap(150,45,180,180,data);
00058             myLCD.fillrect(0,320,500,280,Orange);
00059             time=t.read_us();
00060             if(! RfChip.PICC_IsNewCardPresent()){
00061                   pc.printf("GOOOOOOOOO\n");
00062                   for(int i=200; i<=200;i++){
00063                     myLCD.locate(i,295);
00064                     myLCD.set_font((unsigned char*) Arial12x12);
00065                     myLCD.printf("Please scan your Student ID card to start.");}
00066                   for(int i=200; i>=2;i--){
00067                     myLCD.locate(i,295);
00068                     myLCD.set_font((unsigned char*) Arial12x12);
00069                     myLCD.printf("Please scan your Student ID card to start.");}
00070                   continue;}
00071             if ( ! RfChip.PICC_ReadCardSerial()){pc.printf("!!!!!!!!!!!!!!!");continue;}
00072             pc.printf("Studen's ID: ");
00073             for (uint8_t i = 0; i < RfChip.uid.size; i++){UIDCard[i] = RfChip.uid.uidByte[i];}
00074             if (UIDCard[0]==187 and UIDCard[1]==164 and UIDCard[2]==90 and UIDCard[3]==127){StudentID = "60340500033"; 
00075             pc.printf("%s\n",StudentID);Pagejawjiw = 1;myLCD.cls();
00076             char b[] = "X";
00077             esp.putc(b[0]);
00078             }
00079             
00080             else if (UIDCard[0]==60 and UIDCard[1]==135 and UIDCard[2]==56 and UIDCard[3]==59){StudentID = "60340500066"; 
00081             pc.printf("%s\n",StudentID);Pagejawjiw = 0;
00082             char b[] = "Y";
00083             esp.putc(b[0]);
00084             }
00085             else {StudentID="0"; pc.printf("%s\n",StudentID);}
00086             }
00087         else if (Pagejawjiw == 1) {
00088                 if(i == 0 or Sw[2] == 0){
00089                     i++;
00090                     switch(i){
00091                         case 1:
00092                             typeA = 1;
00093                             myLCD.fillrect(0,0,500,50,Orange);
00094                             myLCD.rect(155,70,320,120,Orange);
00095                             myLCD.rect(155,130,320,180,Orange);
00096                             myLCD.rect(155,190,320,240,Orange);
00097                             myLCD.rect(155,250,320,300,Orange);
00098                             myLCD.set_font((unsigned char*) Arial28x28);
00099                             myLCD.locate(160,15);
00100                             myLCD.background(Orange);
00101                             myLCD.foreground(Black);
00102                             myLCD.printf("Select Mode");
00103                             myLCD.set_font((unsigned char*) Arial24x23);
00104                             myLCD.locate(162,85);
00105                             myLCD.background(Yellow);
00106                             myLCD.foreground(Green);
00107                             myLCD.printf(" Document");
00108                             myLCD.locate(187,145);
00109                             myLCD.background(White);
00110                             myLCD.foreground(Black);
00111                             myLCD.printf("ID Card");
00112                             myLCD.locate(177,205);
00113                             myLCD.background(White);
00114                             myLCD.foreground(Black);
00115                             myLCD.printf("Financial");
00116                             myLCD.locate(202,265);
00117                             myLCD.background(White);
00118                             myLCD.foreground(Black);
00119                             myLCD.printf("Other");
00120                             wait(0.3);
00121                             break; 
00122                         case 2:             
00123                             typeB = 2;               
00124                             //myLCD.cls();
00125                             myLCD.fillrect(0,0,500,50,Orange);
00126                             myLCD.rect(155,70,320,120,Orange);
00127                             myLCD.rect(155,130,320,180,Orange);
00128                             myLCD.rect(155,190,320,240,Orange);
00129                             myLCD.rect(155,250,320,300,Orange);
00130                             myLCD.set_font((unsigned char*) Arial28x28);
00131                             myLCD.locate(160,15);
00132                             myLCD.background(Orange);
00133                             myLCD.foreground(Black);
00134                             myLCD.printf("Select Mode");
00135                             myLCD.set_font((unsigned char*) Arial24x23);
00136                             myLCD.locate(162,85);
00137                             myLCD.background(White);
00138                             myLCD.foreground(Black);
00139                             myLCD.printf(" Document");
00140                             myLCD.locate(187,145);
00141                             myLCD.background(Yellow);
00142                             myLCD.foreground(Green);
00143                             myLCD.printf("ID Card");
00144                             myLCD.locate(177,205);
00145                             myLCD.background(White);
00146                             myLCD.foreground(Black);
00147                             myLCD.printf("Financial");
00148                             myLCD.locate(202,265);
00149                             myLCD.background(White);
00150                             myLCD.foreground(Black);
00151                             myLCD.printf("Other");
00152                             wait(0.3);
00153                             break;  
00154                         case 3:
00155                             typeC = 3;   
00156                             myLCD.fillrect(0,0,500,50,Orange);
00157                             myLCD.rect(155,70,320,120,Orange);
00158                             myLCD.rect(155,130,320,180,Orange);
00159                             myLCD.rect(155,190,320,240,Orange);
00160                             myLCD.rect(155,250,320,300,Orange);
00161                             myLCD.set_font((unsigned char*) Arial28x28);
00162                             myLCD.locate(160,15);
00163                             myLCD.background(Orange);
00164                             myLCD.foreground(Black);
00165                             myLCD.printf("Select Mode");
00166                             myLCD.set_font((unsigned char*) Arial24x23);
00167                             myLCD.locate(162,85);
00168                             myLCD.background(White);
00169                             myLCD.foreground(Black);
00170                             myLCD.printf(" Document");
00171                             myLCD.locate(187,145);
00172                             myLCD.background(White);
00173                             myLCD.foreground(Black);
00174                             myLCD.printf("ID Card");
00175                             myLCD.locate(177,205);
00176                             myLCD.background(Yellow);
00177                             myLCD.foreground(Green);
00178                             myLCD.printf("Financial");
00179                             myLCD.locate(202,265);
00180                             myLCD.background(White);
00181                             myLCD.foreground(Black);
00182                             myLCD.printf("Other");
00183                             wait(0.3);
00184                             break; 
00185                         case 4:            
00186                             typeD = 4;                 
00187                             myLCD.fillrect(0,0,500,50,Orange);
00188                             myLCD.rect(155,70,320,120,Orange);
00189                             myLCD.rect(155,130,320,180,Orange);
00190                             myLCD.rect(155,190,320,240,Orange);
00191                             myLCD.rect(155,250,320,300,Orange);
00192                             myLCD.set_font((unsigned char*) Arial28x28);
00193                             myLCD.locate(160,15);
00194                             myLCD.background(Orange);
00195                             myLCD.foreground(Black);
00196                             myLCD.printf("Select Mode");
00197                             myLCD.set_font((unsigned char*) Arial24x23);
00198                             myLCD.locate(162,85);
00199                             myLCD.background(White);
00200                             myLCD.foreground(Black);
00201                             myLCD.printf(" Document");
00202                             myLCD.locate(187,145);
00203                             myLCD.background(White);
00204                             myLCD.foreground(Black);
00205                             myLCD.printf("ID Card");
00206                             myLCD.locate(177,205);
00207                             myLCD.background(White);
00208                             myLCD.foreground(Black);
00209                             myLCD.printf("Financial");
00210                             myLCD.locate(202,265);
00211                             myLCD.background(Yellow);
00212                             myLCD.foreground(Green);
00213                             myLCD.printf("Other");
00214                             wait(0.3);
00215                             break;
00216                         case 5:
00217                             i=0;
00218                             break; 
00219                         }
00220                     }
00221                 else if(Sw[0] == 0){
00222                     i--;
00223                     switch(i){
00224                         case 0:
00225                             i = 5;
00226                             break;
00227                         case 1:
00228                             //myLCD.cls();
00229                             myLCD.fillrect(0,0,500,50,Orange);
00230                             myLCD.rect(155,70,320,120,Orange);
00231                             myLCD.rect(155,130,320,180,Orange);
00232                             myLCD.rect(155,190,320,240,Orange);
00233                             myLCD.rect(155,250,320,300,Orange);
00234                             myLCD.set_font((unsigned char*) Arial28x28);
00235                             myLCD.locate(160,15);
00236                             myLCD.background(Orange);
00237                             myLCD.foreground(Black);
00238                             myLCD.printf("Select Mode");
00239                             myLCD.set_font((unsigned char*) Arial24x23);
00240                             myLCD.locate(162,85);
00241                             myLCD.background(Yellow);
00242                             myLCD.foreground(Green);
00243                             myLCD.printf(" Document");
00244                             myLCD.locate(187,145);
00245                             myLCD.background(White);
00246                             myLCD.foreground(Black);
00247                             myLCD.printf("ID Card");
00248                             myLCD.locate(177,205);
00249                             myLCD.background(White);
00250                             myLCD.foreground(Black);
00251                             myLCD.printf("Financial");
00252                             myLCD.locate(202,265);
00253                             myLCD.background(White);
00254                             myLCD.foreground(Black);
00255                             myLCD.printf("Other");
00256                             wait(0.3);
00257                             break; 
00258                         case 2:
00259                             myLCD.fillrect(0,0,500,50,Orange);
00260                             myLCD.rect(155,70,320,120,Orange);
00261                             myLCD.rect(155,130,320,180,Orange);
00262                             myLCD.rect(155,190,320,240,Orange);
00263                             myLCD.rect(155,250,320,300,Orange);
00264                             myLCD.set_font((unsigned char*) Arial28x28);
00265                             myLCD.locate(160,15);
00266                             myLCD.background(Orange);
00267                             myLCD.foreground(Black);
00268                             myLCD.printf("Select Mode");
00269                             myLCD.set_font((unsigned char*) Arial24x23);
00270                             myLCD.locate(162,85);
00271                             myLCD.background(White);
00272                             myLCD.foreground(Black);
00273                             myLCD.printf(" Document");
00274                             myLCD.locate(187,145);
00275                             myLCD.background(Yellow);
00276                             myLCD.foreground(Green);
00277                             myLCD.printf("ID Card");
00278                             myLCD.locate(177,205);
00279                             myLCD.background(White);
00280                             myLCD.foreground(Black);
00281                             myLCD.printf("Financial");
00282                             myLCD.locate(202,265);
00283                             myLCD.background(White);
00284                             myLCD.foreground(Black);
00285                             myLCD.printf("Other");
00286                             wait(0.3);
00287                             break;  
00288                         case 3:
00289                             myLCD.fillrect(0,0,500,50,Orange);
00290                             myLCD.rect(155,70,320,120,Orange);
00291                             myLCD.rect(155,130,320,180,Orange);
00292                             myLCD.rect(155,190,320,240,Orange);
00293                             myLCD.rect(155,250,320,300,Orange);
00294                             myLCD.set_font((unsigned char*) Arial28x28);
00295                             myLCD.locate(160,15);
00296                             myLCD.background(Orange);
00297                             myLCD.foreground(Black);
00298                             myLCD.printf("Select Mode");
00299                             myLCD.set_font((unsigned char*) Arial24x23);
00300                             myLCD.locate(162,85);
00301                             myLCD.background(White);
00302                             myLCD.foreground(Black);
00303                             myLCD.printf(" Document");
00304                             myLCD.locate(187,145);
00305                             myLCD.background(White);
00306                             myLCD.foreground(Black);
00307                             myLCD.printf("ID Card");
00308                             myLCD.locate(177,205);
00309                             myLCD.background(Yellow);
00310                             myLCD.foreground(Green);
00311                             myLCD.printf("Financial");
00312                             myLCD.locate(202,265);
00313                             myLCD.background(White);
00314                             myLCD.foreground(Black);
00315                             myLCD.printf("Other");
00316                             wait(0.3);
00317                             break; 
00318                         case 4:
00319                             myLCD.fillrect(0,0,500,50,Orange);
00320                             myLCD.rect(155,70,320,120,Orange);
00321                             myLCD.rect(155,130,320,180,Orange);
00322                             myLCD.rect(155,190,320,240,Orange);
00323                             myLCD.rect(155,250,320,300,Orange);
00324                             myLCD.set_font((unsigned char*) Arial28x28);
00325                             myLCD.locate(160,15);
00326                             myLCD.background(Orange);
00327                             myLCD.foreground(Black);
00328                             myLCD.printf("Select Mode");
00329                             myLCD.set_font((unsigned char*) Arial24x23);
00330                             myLCD.locate(162,85);
00331                             myLCD.background(White);
00332                             myLCD.foreground(Black);
00333                             myLCD.printf(" Document");
00334                             myLCD.locate(187,145);
00335                             myLCD.background(White);
00336                             myLCD.foreground(Black);
00337                             myLCD.printf("ID Card");
00338                             myLCD.locate(177,205);
00339                             myLCD.background(White);
00340                             myLCD.foreground(Black);
00341                             myLCD.printf("Financial");
00342                             myLCD.locate(202,265);
00343                             myLCD.background(Yellow);
00344                             myLCD.foreground(Green);
00345                             myLCD.printf("Other");
00346                             wait(0.3);
00347                             break; 
00348                         }
00349                     }
00350                 else if(Sw[4] == 0){
00351                     Pagejawjiw++;
00352                     wait(0.3);
00353                     if(typeA == 1){
00354                         char a[] = "1";
00355                         esp.putc(a[0]); 
00356                         }
00357                     if(typeB == 2){
00358                         char b[] = "2";
00359                         esp.putc(b[0]); 
00360                         }                    
00361                     if(typeC == 3){
00362                         char c[] = "3";
00363                         esp.putc(c[0]); 
00364                         }
00365                     if(typeD == 4){
00366                         char d[] = "4";
00367                         esp.putc(d[0]); 
00368                         }
00369                         
00370                     
00371                     
00372                     
00373                     
00374                     }
00375                 }
00376             else if(Pagejawjiw == 2){
00377                 if(j == 0 or Sw[1] == 0){
00378                     switch(j){
00379                        case 0:
00380                             j++;
00381                             myLCD.cls();
00382                             myLCD.fillrect(0,0,500,50,Orange);
00383                             myLCD.locate(150,15);
00384                             myLCD.background(Orange);
00385                             myLCD.set_font((unsigned char*) Arial28x28);
00386                             myLCD.printf("Select JorJew");
00387                             myLCD.fillrect(40,130,215,230,DarkGrey);
00388                             myLCD.fillrect(265,130,440,230,DarkGrey);
00389                             myLCD.fillcircle(127,182,40,Yellow);
00390                             myLCD.fillcircle(347,182,40,White);
00391                             myLCD.set_font((unsigned char*) Arial43x48_numb, 46, 58, false);
00392                             myLCD.background(White);
00393                             myLCD.locate(106,160);
00394                             myLCD.printf(" 1");
00395                             myLCD.locate(326,160);
00396                             myLCD.printf(" 2");
00397                             wait(0.3);
00398                             break;
00399                         case 1:
00400                             myLCD.fillrect(0,0,500,50,Orange);
00401                             myLCD.locate(150,15);
00402                             myLCD.background(Orange);
00403                             myLCD.set_font((unsigned char*) Arial28x28);
00404                             myLCD.printf("Select JorJew");
00405                             myLCD.fillrect(40,130,215,230,DarkGrey);
00406                             myLCD.fillrect(265,130,440,230,DarkGrey);
00407                             myLCD.fillcircle(127,182,40,White);
00408                             myLCD.fillcircle(347,182,40,Yellow);
00409                             myLCD.set_font((unsigned char*) Arial43x48_numb, 46, 58, false);
00410                             myLCD.background(White);
00411                             myLCD.locate(106,160);
00412                             myLCD.printf(" 1");
00413                             myLCD.locate(326,160);
00414                             myLCD.printf(" 2");
00415                             wait(0.3);
00416                             break;
00417                         }
00418                     }
00419                 else if(Sw[3] == 0){
00420                             myLCD.fillrect(0,0,500,50,Orange);
00421                             myLCD.locate(150,15);
00422                             myLCD.background(Orange);
00423                             myLCD.set_font((unsigned char*) Arial28x28);
00424                             myLCD.printf("Select JorJew");
00425                             myLCD.fillrect(40,130,215,230,DarkGrey);
00426                             myLCD.fillrect(265,130,440,230,DarkGrey);
00427                             myLCD.fillcircle(127,182,40,Yellow);
00428                             myLCD.fillcircle(347,182,40,White);
00429                             myLCD.set_font((unsigned char*) Arial43x48_numb, 46, 58, false);
00430                             myLCD.background(White);
00431                             myLCD.locate(106,160);
00432                             myLCD.printf(" 1");
00433                             myLCD.locate(326,160);
00434                             myLCD.printf(" 2");
00435                             wait(0.3);
00436                     }
00437                 else if(Sw[5] == 0){
00438                     Pagejawjiw = 1;
00439                     wait(0.3);
00440                     i = 0;
00441                     myLCD.cls();
00442                     }
00443                 else if(Sw[4] == 0){
00444                     Pagejawjiw++;
00445                     wait(0.3);
00446                     myLCD.cls();
00447                     k=0;
00448                     }
00449                 }
00450             else if(Pagejawjiw == 3){
00451                 if(k==0 or Sw[1] == 0){
00452                 myLCD.fillrect(0,0,500,50,Orange);
00453                 myLCD.locate(150,15);
00454                 myLCD.background(Orange);
00455                 myLCD.fillrect(125,90,355,230,Green); 
00456                 myLCD.set_font((unsigned char*) Arial28x28);
00457                 myLCD.locate(165,130);
00458                 myLCD.background(Green);
00459                 myLCD.foreground(Black);
00460                 myLCD.printf(" Take out"); 
00461                 myLCD.locate(155,170);
00462                 myLCD.printf(" JorJew#1/2");
00463                 myLCD.fillrect(100,250,215,300,Yellow);
00464                 myLCD.fillrect(265,250,380,300,Yellow);
00465                 myLCD.locate(110,260);
00466                 myLCD.background(Green);
00467                 myLCD.foreground(Black);
00468                 myLCD.printf("(A)");
00469                 myLCD.locate(265,260);
00470                 myLCD.printf("(C)");
00471                 k++;
00472                 wait(0.3);
00473                 }
00474                 else if((Sw[0] == 0)){
00475                     myLCD.cls();
00476                     Pagejawjiw++;
00477                     wait(0.3);
00478                 }
00479                 else if((Sw[2] == 0)){
00480                     Pagejawjiw--;
00481                     wait(0.3);
00482                     j = 0;
00483                 }
00484                 }
00485             else if(Pagejawjiw == 4){
00486                 myLCD.cls();
00487                 myLCD.background(backgroundcolor);
00488                 myLCD.foreground(foregroundcolor);
00489                 myLCD.Bitmap(150,45,180,180,data);
00490                 myLCD.fillrect(0,320,500,280,Orange);
00491                 time=t.read_us();
00492                 Pagejawjiw = 0;
00493                 i = 0;
00494                 for(int i=2; i<350;i++){
00495                         myLCD.locate(i,295);
00496                         myLCD.set_font((unsigned char*) Arial12x12);
00497                         myLCD.printf("Love , Thank you");
00498                 }
00499                 for(int i=350; i>=2;i--){
00500                         myLCD.locate(i,295);
00501                         myLCD.set_font((unsigned char*) Arial12x12);
00502                         myLCD.printf("Love , Thank you");
00503                 }
00504                 wait(5);
00505                 myLCD.cls();
00506               }
00507       }
00508 }