File Downloader to USB msc, sd card and local directory
Dependencies: EthernetNetIf FatFileSystem HTTPClient MSCFileSystem PS2 SDFileSystem TextLCD mbed
Fork of Yariyol by
main.cpp
00001 #include "mbed.h" 00002 #include "TextLCD.h" 00003 #include "EthernetNetIf.h" 00004 #include "HTTPClient.h" 00005 #include "SDFileSystem.h" 00006 #include "MSCFileSystem.h" 00007 #include "PS2Keyboard.h" 00008 #include <stdio.h> 00009 #include <string.h> 00010 #include <stdbool.h> 00011 00012 DigitalOut myled(LED1); 00013 MSCFileSystem fs("usb"); 00014 LocalFileSystem local("local"); 00015 SDFileSystem sd(p5, p6, p7, p8, "sd"); //p9: SD present; p8: CS 00016 00017 TextLCD lcd(p15, p16, p17, p18, p19, p20); // rs, e, d4-d7 00018 PS2Keyboard ps2kb(p12, p11); //clk, dat 00019 Serial pc(USBTX, USBRX); // define transmitter and receiver 00020 EthernetNetIf eth; 00021 HTTPClient http; 00022 00023 int main() { 00024 00025 //Initialization 00026 int j = 0; 00027 int k = 0; 00028 bool capsLock = false; 00029 00030 PS2Keyboard::keyboard_event_t evt_kb; 00031 00032 char ac[100] = ""; 00033 00034 printf("Setting up...\n"); 00035 EthernetErr ethErr = eth.setup(); 00036 if(ethErr){ 00037 printf("Error %d in setup.\n", ethErr); 00038 return -1; 00039 } 00040 printf("Setup OK\n"); 00041 lcd.printf("Setup OK"); 00042 wait(2); 00043 00044 /* 00045 for (int i=0; i<101; i++){ 00046 abc = pc.getc(); 00047 if (abc == 0x08){ 00048 ac[i-1] = 0x00; 00049 i = i-2; 00050 lcd.cls(); 00051 lcd.printf(&ac[0]); 00052 } 00053 else if (abc == 0x0D){ 00054 lcd.cls(); 00055 lcd.printf("Enter, dosya indiriliyor!"); 00056 i=150; 00057 } 00058 else if (abc == 0xFC){ 00059 ac[i] = '~'; 00060 lcd.locate(0,0); 00061 lcd.printf(&ac[0]); 00062 } 00063 else if (abc == 0xF6){ 00064 ac[i] = '%'; 00065 lcd.locate(0,0); 00066 lcd.printf(&ac[0]); 00067 } 00068 else{ 00069 ac[i] = abc; 00070 lcd.locate(0,0); 00071 lcd.printf(&ac[0]); 00072 } 00073 00074 }*/ 00075 char *slash; 00076 char *point; 00077 00078 while(1){ 00079 lcd.cls(); 00080 lcd.printf("Waiting for Input"); 00081 while (k<200) { 00082 if (ps2kb.processing(&evt_kb)) { 00083 lcd.cls(); 00084 00085 if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x0E){ ac[j]='/'; lcd.printf(&ac[0]); j++;} 00086 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x16){ ac[j]='1'; lcd.printf(&ac[0]); j++;} 00087 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x1E){ ac[j]='2'; lcd.printf(&ac[0]); j++;} 00088 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x26){ ac[j]='3'; lcd.printf(&ac[0]); j++;} 00089 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x25){ ac[j]='4'; lcd.printf(&ac[0]); j++;} 00090 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x2E){ ac[j]='5'; lcd.printf(&ac[0]); j++;} 00091 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x36){ ac[j]='6'; lcd.printf(&ac[0]); j++;} 00092 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x3D){ ac[j]='7'; lcd.printf(&ac[0]); j++;} 00093 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x3E){ ac[j]='8'; lcd.printf(&ac[0]); j++;} 00094 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x46){ ac[j]='9'; lcd.printf(&ac[0]); j++;} 00095 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x45){ ac[j]='0'; lcd.printf(&ac[0]); j++;} 00096 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x4E){ ac[j]='*'; lcd.printf(&ac[0]); j++;} 00097 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x5D){ ac[j]=','; lcd.printf(&ac[0]); j++;} 00098 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x29){ ac[j]=' '; lcd.printf(&ac[0]); j++;} 00099 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x79){ ac[j]='+'; lcd.printf(&ac[0]); j++;} 00100 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x49){ ac[j]=';'; lcd.printf(&ac[0]); j++;} 00101 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x66){ ac[j-1] = 0x00; lcd.cls(); lcd.printf(&ac[0]); j--;} 00102 00103 else if(capsLock == true){ 00104 if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x15){ ac[j]='Q'; lcd.printf(&ac[0]); j++;} 00105 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x1D){ ac[j]='W'; lcd.printf(&ac[0]); j++;} 00106 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x24){ ac[j]='E'; lcd.printf(&ac[0]); j++;} 00107 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x2D){ ac[j]='R'; lcd.printf(&ac[0]); j++;} 00108 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x2C){ ac[j]='T'; lcd.printf(&ac[0]); j++;} 00109 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x35){ ac[j]='Y'; lcd.printf(&ac[0]); j++;} 00110 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x3C){ ac[j]='U'; lcd.printf(&ac[0]); j++;} 00111 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x43){ ac[j]='I'; lcd.printf(&ac[0]); j++;} 00112 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x44){ ac[j]='O'; lcd.printf(&ac[0]); j++;} 00113 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x4D){ ac[j]='P'; lcd.printf(&ac[0]); j++;} 00114 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x5B){ ac[j]='~'; lcd.printf(&ac[0]); j++;} 00115 00116 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x1C){ ac[j]='A'; lcd.printf(&ac[0]); j++;} 00117 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x1B){ ac[j]='S'; lcd.printf(&ac[0]); j++;} 00118 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x23){ ac[j]='D'; lcd.printf(&ac[0]); j++;} 00119 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x2B){ ac[j]='F'; lcd.printf(&ac[0]); j++;} 00120 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x34){ ac[j]='G'; lcd.printf(&ac[0]); j++;} 00121 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x33){ ac[j]='H'; lcd.printf(&ac[0]); j++;} 00122 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x3B){ ac[j]='J'; lcd.printf(&ac[0]); j++;} 00123 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x42){ ac[j]='K'; lcd.printf(&ac[0]); j++;} 00124 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x4B){ ac[j]='L'; lcd.printf(&ac[0]); j++;} 00125 00126 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x1A){ ac[j]='Z'; lcd.printf(&ac[0]); j++;} 00127 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x22){ ac[j]='X'; lcd.printf(&ac[0]); j++;} 00128 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x21){ ac[j]='C'; lcd.printf(&ac[0]); j++;} 00129 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x2A){ ac[j]='V'; lcd.printf(&ac[0]); j++;} 00130 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x32){ ac[j]='B'; lcd.printf(&ac[0]); j++;} 00131 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x31){ ac[j]='N'; lcd.printf(&ac[0]); j++;} 00132 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x3A){ ac[j]='M'; lcd.printf(&ac[0]); j++;} 00133 00134 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x58){ myled = 0; capsLock = false; lcd.printf(&ac[0]);} 00135 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x4A){ ac[j]=':'; lcd.printf(&ac[0]); j++;} 00136 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x5A){ lcd.printf("Downloading..."); k=201;} 00137 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x55){ ac[j]='_'; lcd.printf(&ac[0]); j++;} 00138 } 00139 else if(capsLock == false){ 00140 if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x15){ ac[j]='q'; lcd.printf(&ac[0]); j++;} 00141 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x1D){ ac[j]='w'; lcd.printf(&ac[0]); j++;} 00142 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x24){ ac[j]='e'; lcd.printf(&ac[0]); j++;} 00143 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x2D){ ac[j]='r'; lcd.printf(&ac[0]); j++;} 00144 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x2C){ ac[j]='t'; lcd.printf(&ac[0]); j++;} 00145 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x35){ ac[j]='y'; lcd.printf(&ac[0]); j++;} 00146 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x3C){ ac[j]='u'; lcd.printf(&ac[0]); j++;} 00147 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x43){ ac[j]='i'; lcd.printf(&ac[0]); j++;} 00148 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x44){ ac[j]='o'; lcd.printf(&ac[0]); j++;} 00149 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x4D){ ac[j]='p'; lcd.printf(&ac[0]); j++;} 00150 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x5B){ ac[j]='~'; lcd.printf(&ac[0]); j++;} 00151 00152 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x1C){ ac[j]='a'; lcd.printf(&ac[0]); j++;} 00153 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x1B){ ac[j]='s'; lcd.printf(&ac[0]); j++;} 00154 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x23){ ac[j]='d'; lcd.printf(&ac[0]); j++;} 00155 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x2B){ ac[j]='f'; lcd.printf(&ac[0]); j++;} 00156 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x34){ ac[j]='g'; lcd.printf(&ac[0]); j++;} 00157 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x33){ ac[j]='h'; lcd.printf(&ac[0]); j++;} 00158 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x3B){ ac[j]='j'; lcd.printf(&ac[0]); j++;} 00159 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x42){ ac[j]='k'; lcd.printf(&ac[0]); j++;} 00160 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x4B){ ac[j]='l'; lcd.printf(&ac[0]); j++;} 00161 00162 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x1A){ ac[j]='z'; lcd.printf(&ac[0]); j++;} 00163 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x22){ ac[j]='x'; lcd.printf(&ac[0]); j++;} 00164 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x21){ ac[j]='c'; lcd.printf(&ac[0]); j++;} 00165 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x2A){ ac[j]='v'; lcd.printf(&ac[0]); j++;} 00166 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x32){ ac[j]='b'; lcd.printf(&ac[0]); j++;} 00167 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x31){ ac[j]='n'; lcd.printf(&ac[0]); j++;} 00168 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x3A){ ac[j]='m'; lcd.printf(&ac[0]); j++;} 00169 00170 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x58){ myled = 1; capsLock = true; lcd.printf(&ac[0]);} 00171 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x4A){ ac[j]='.'; lcd.printf(&ac[0]); j++;} 00172 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x5A){ lcd.printf("Downloading..."); k=201;} 00173 else if(evt_kb.scancode[0]==0xF0 && evt_kb.scancode[1]==0x55){ ac[j]='-'; lcd.printf(&ac[0]); j++;} 00174 } 00175 else{ 00176 //lcd.printf(&ac[0]); 00177 } 00178 } 00179 } 00180 00181 //Dividing file extension and name 00182 slash = strrchr(ac,'/'); 00183 int c = (int)(slash - ac); 00184 point = strrchr(ac,'.'); 00185 int d = (int)(point - ac); 00186 00187 //For Debugging 00188 pc.printf("%d \n", c); 00189 pc.printf("%d \n", d); 00190 00191 //Setting a file name and file path 00192 int fileNameLength=strlen(ac)-c+4; 00193 char fileName[fileNameLength]; 00194 fileName[0]='/'; 00195 fileName[1]='u'; 00196 fileName[2]='s'; 00197 fileName[3]='b'; 00198 fileName[4]='/'; 00199 00200 pc.printf("%d \n", strlen(ac)); 00201 for(int i = 0; i<strlen(ac)-c+1; i++){ 00202 fileName[i+5] = ac[i+c+1]; 00203 pc.printf(&ac[i+c+1]); 00204 } 00205 00206 pc.printf(fileName); 00207 00208 pc.printf(ac); 00209 00210 HTTPFile f(fileName); //Creates a file name with its path by using FAT File System 00211 00212 HTTPResult r = http.get(&ac[0], &f); 00213 00214 if(r==HTTP_OK){ 00215 printf("Result OK\n"); 00216 lcd.cls(); 00217 lcd.printf("File is downloaded!"); 00218 } 00219 else{ 00220 printf("Error %d\n", r); 00221 lcd.cls(); 00222 lcd.printf("File is not downloaded!"); 00223 } 00224 for(int m=0; m < 100; m++){ 00225 ac[m]=0x00; 00226 } 00227 wait(5); 00228 k=0; 00229 j=0; 00230 00231 } 00232 } 00233
Generated on Sun Jul 24 2022 01:34:19 by 1.7.2