hjkj

Dependencies:   TFT-RFID_Finish mbed MFRC522 UniGraphic

Dependents:   TFT-RFID_Finish2

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