the hub
Dependencies: mbed MFRC522 UniGraphic
main.cpp
- Committer:
- khimAS
- Date:
- 2018-12-18
- Revision:
- 12:4a6bca3dec03
- Parent:
- 11:d85e35354c48
File content as of revision 12:4a6bca3dec03:
#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; int queueA = 0; int queueB = 0; int queueC = 0; int queueD = 0; 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: //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(); 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: 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: 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; 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("select"); select = i; pc.printf("%d",select); if(select == 1){ queueA += 1; char a[] = "A"; esp.putc(a[0]); char ty1 = esp.putc(a[0]); pc.printf("type %c\n",ty1); if(queueA == 1){ char one[] = "1"; esp.putc(one[0]); char one1 = esp.putc(a[0]); pc.printf("queue %c\n",one1); } else if(queueA == 2){ char two[] = "2"; esp.putc(two[0]); } else if(queueA == 3){ char three[] = "3"; esp.putc(three[0]); } else if(queueA == 4){ char four[] = "4"; esp.putc(four[0]); } else if(queueA == 5){ char five[] = "5"; esp.putc(five[0]); } else if(queueA == 6){ char six[] = "6"; esp.putc(six[0]); } else if(queueA == 7){ char seven[] = "7"; esp.putc(seven[0]); } else if(queueA == 8){ char eight[] = "8"; esp.putc(eight[0]); } else if(queueA == 9){ char nine[] = "9"; esp.putc(nine[0]); } else if(queueA == 10){ char ten[] = "E"; esp.putc(ten[0]); } else if(queueA == 11){ char eleven[] = "F"; esp.putc(eleven[0]); } else if(queueA == 12){ char twevle[] = "G"; esp.putc(twevle[0]); } else if(queueA == 13){ char thteen[] = "H"; esp.putc(thteen[0]); } else if(queueA == 14){ char fourteen[] = "I"; esp.putc(fourteen[0]); } else if(queueA == 15){ char fifthteen[] = "J"; esp.putc(fifthteen[0]); } } else if(select == 2){ queueB += 1; char b[] = "B"; esp.putc(b[0]); char ty2 = esp.putc(b[0]); pc.printf("type %c\n",ty2); if(queueB == 1){ char one2[] = "1"; esp.putc(one2[0]); } else if(queueB == 2){ char two2[] = "2"; esp.putc(two2[0]); } else if(queueB == 3){ char three2[] = "3"; esp.putc(three2[0]); } else if(queueB == 4){ char four2[] = "4"; esp.putc(four2[0]); } else if(queueB == 5){ char five2[] = "5"; esp.putc(five2[0]); } else if(queueB == 6){ char six2[] = "6"; esp.putc(six2[0]); } else if(queueB == 7){ char seven2[] = "7"; esp.putc(seven2[0]); } else if(queueB == 8){ char eight2[] = "8"; esp.putc(eight2[0]); } else if(queueB == 9){ char nine2[] = "9"; esp.putc(nine2[0]); } else if(queueB == 10){ char ten2[] = "E"; esp.putc(ten2[0]); } else if(queueB == 11){ char eleven2[] = "F"; esp.putc(eleven2[0]); } else if(queueB == 12){ char twevle2[] = "G"; esp.putc(twevle2[0]); } else if(queueB == 13){ char thteen2[] = "H"; esp.putc(thteen2[0]); } else if(queueB == 14){ char fourteen2[] = "I"; esp.putc(fourteen2[0]); } else if(queueB == 15){ char fifthteen2[] = "J"; esp.putc(fifthteen2[0]); } } else if(select == 3){ queueC += 1; char c[] = "C"; esp.putc(c[0]); char ty3 = esp.putc(c[0]); pc.printf("type %c\n",ty3); if(queueC == 1){ char one3[] = "1"; esp.putc(one3[0]); } else if(queueC == 2){ char two3[] = "2"; esp.putc(two3[0]); } else if(queueC == 3){ char three3[] = "3"; esp.putc(three3[0]); } else if(queueC == 4){ char four3[] = "4"; esp.putc(four3[0]); } else if(queueC == 5){ char five3[] = "5"; esp.putc(five3[0]); } else if(queueC == 6){ char six3[] = "6"; esp.putc(six3[0]); } else if(queueC == 7){ char seven3[] = "7"; esp.putc(seven3[0]); } else if(queueC == 8){ char eight3[] = "8"; esp.putc(eight3[0]); } else if(queueC == 9){ char nine3[] = "9"; esp.putc(nine3[0]); } else if(queueC == 10){ char ten3[] = "E"; esp.putc(ten3[0]); } else if(queueC == 11){ char eleven3[] = "F"; esp.putc(eleven3[0]); } else if(queueC == 12){ char twevle3[] = "G"; esp.putc(twevle3[0]); } else if(queueC == 13){ char thteen3[] = "H"; esp.putc(thteen3[0]); } else if(queueC == 14){ char fourteen3[] = "I"; esp.putc(fourteen3[0]); } else if(queueC == 15){ char fifthteen3[] = "J"; esp.putc(fifthteen3[0]); } } else if(select == 4){ queueD += 1; char d[] = "D"; esp.putc(d[0]); char ty4 = esp.putc(d[0]); pc.printf("type %c\n",ty4); if(queueD == 1){ char one4[] = "1"; esp.putc(one4[0]); } else if(queueD == 2){ char two4[] = "2"; esp.putc(two4[0]); } else if(queueD == 3){ char three4[] = "3"; esp.putc(three4[0]); } else if(queueD == 4){ char four4[] = "4"; esp.putc(four4[0]); } else if(queueD == 5){ char five4[] = "5"; esp.putc(five4[0]); } else if(queueD == 6){ char six4[] = "6"; esp.putc(six4[0]); } else if(queueD == 7){ char seven4[] = "7"; esp.putc(seven4[0]); } else if(queueD == 8){ char eight4[] = "8"; esp.putc(eight4[0]); } else if(queueD == 9){ char nine4[] = "9"; esp.putc(nine4[0]); } else if(queueD == 10){ char ten4[] = "E"; esp.putc(ten4[0]); } else if(queueD == 11){ char eleven4[] = "F"; esp.putc(eleven4[0]); } else if(queueD == 12){ char twevle4[] = "G"; esp.putc(twevle4[0]); } else if(queueD == 13){ char thteen4[] = "H"; esp.putc(thteen4[0]); } else if(queueD == 14){ char fourteen4[] = "I"; esp.putc(fourteen4[0]); } else if(queueD == 15){ char fifthteen4[] = "J"; esp.putc(fifthteen4[0]); } } pc.printf("queueA : %d\n",queueA); pc.printf("queueB : %d\n",queueB); pc.printf("queueC : %d\n",queueC); pc.printf("queueD : %d\n",queueD); 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(); } } }