Jawjiw / Mbed 2 deprecated TFT-RFID_Finish3

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