Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 #include "mbed.h" 00002 00003 #define startData '$' 00004 #define endData '%' 00005 00006 #define command_appGetDrink 'S' 00007 #define command_appCustomDrink 'E' 00008 00009 00010 // ANDA JOYA 22/9 00011 00012 Serial pc(USBTX, USBRX); 00013 Serial bt(PTE22, PTE23); 00014 DigitalOut ledblue(PTD1); 00015 DigitalOut ledgreen(PTB19); 00016 DigitalOut ledred(PTB18); 00017 00018 enum{ 00019 standby = 0, 00020 command, 00021 data, 00022 }; 00023 00024 int auxBL = 0; 00025 char datos[100],comando; 00026 char beb1[25] = " ", beb2[25] = " ", beb3[25] = " ", beb4[25] = " ", beb5[25] = " ", beb6[25] = " "; 00027 char customDrink1[25] = " " ,customDrink2[25]= " ",customDrink3[25]= " ",customDrink4[25]= " ",customDrink5[25]= " ",customDrink6[25]= " "; 00028 int onzasDrink1[6],onzasDrink2[6],onzasDrink3[6],onzasDrink4[6],onzasDrink5[6],onzasDrink6[6]; 00029 00030 char charRecieve = 0; 00031 int i=0,state = standby,bebidas = 0,aux1=0,aux2=0,aux3=0,aux4=0,aux5=0,aux6=0,aux1Oz=0,aux2Oz=0,aux3Oz=0,aux4Oz=0,aux5Oz=0,aux6Oz=0; 00032 00033 00034 00035 int main(void) 00036 { 00037 // Inicializaciones 00038 pc.baud(9600); 00039 bt.baud(9600); 00040 00041 ledred=1; 00042 ledblue=0; 00043 ledgreen=1; 00044 00045 pc.printf("Conectado a la PC \n"); 00046 memset(datos,0,100); 00047 while(1) 00048 { 00049 if(bt.readable()) 00050 { 00051 ledred = 0; 00052 ledgreen= 1; 00053 ledblue=1; 00054 charRecieve = bt.getc(); 00055 00056 switch(state){ 00057 case standby: 00058 if(charRecieve == startData) 00059 { 00060 //pc.printf("Recibe $$\n"); 00061 state = command; 00062 ledgreen=0; 00063 ledblue=1; 00064 ledred=1; 00065 } 00066 break; 00067 00068 case command: 00069 comando = charRecieve; 00070 pc.printf("\n%c\n",comando); 00071 state = data; 00072 break; 00073 case data: 00074 if(charRecieve == endData && (comando == command_appGetDrink)){ 00075 //pc.printf("Recibe %%\n"); 00076 pc.printf("%s\n",datos); 00077 state = standby; 00078 for(i=0; i < strlen(datos); i++){ 00079 switch (bebidas){ 00080 case 0: 00081 if(datos[i] == '#'){ 00082 bebidas++; 00083 break; 00084 } 00085 else{ 00086 if(datos[i] != '%') /////////// 00087 beb1[aux1++] = datos[i]; 00088 } 00089 break; 00090 case 1: 00091 if(datos[i] == '#'){ 00092 bebidas++; 00093 break; 00094 } 00095 else{ 00096 beb2[aux2++] = datos[i]; 00097 } 00098 break; 00099 case 2: 00100 if(datos[i] == '#'){ 00101 bebidas++; 00102 break; 00103 } 00104 else{ 00105 beb3[aux3++] = datos[i]; 00106 } 00107 break; 00108 case 3: 00109 if(datos[i] == '#'){ 00110 bebidas++; 00111 break; 00112 } 00113 else{ 00114 beb4[aux4++] = datos[i]; 00115 } 00116 break; 00117 case 4: 00118 if(datos[i] == '#'){ 00119 bebidas++; 00120 break; 00121 } 00122 else{ 00123 beb5[aux5++] = datos[i]; 00124 } 00125 break; 00126 case 5: 00127 if(datos[i] == '%'){ 00128 bebidas=0; 00129 state = standby; 00130 break; 00131 } 00132 else{ 00133 beb6[aux6++] = datos[i]; 00134 } 00135 break; 00136 } 00137 00138 } 00139 00140 bebidas=0; 00141 auxBL=0; 00142 aux1=0; 00143 aux2=0; 00144 aux3=0; 00145 aux4=0; 00146 aux5=0; 00147 aux6=0; 00148 00149 00150 pc.printf("%s\n",beb1); 00151 pc.printf("%s\n",beb2); 00152 pc.printf("%s\n",beb3); 00153 pc.printf("%s\n",beb4); 00154 pc.printf("%s\n",beb5); 00155 pc.printf("%s\n",beb6); 00156 00157 memset(datos,0,100); 00158 memset(beb1,0,25); 00159 memset(beb2,0,25); 00160 memset(beb3,0,25); 00161 memset(beb4,0,25); 00162 memset(beb5,0,25); 00163 memset(beb6,0,25); 00164 00165 ledred = 0; 00166 ledgreen= 1; 00167 ledblue=1; 00168 } 00169 00170 if(charRecieve == endData && (comando == command_appCustomDrink)){ 00171 //pc.printf("Recibe %%\n"); 00172 pc.printf("%s\n",datos); 00173 state = standby; 00174 00175 for(i=0; i < strlen(datos); i++){ 00176 switch (bebidas){ 00177 case 0: 00178 if(datos[i] == '|'){ 00179 bebidas++; 00180 break; 00181 } 00182 else{ 00183 if(datos[i] != '%') /////////// 00184 customDrink1[aux1++] = datos[i]; 00185 } 00186 break; 00187 case 1: 00188 if(datos[i] == '#'){ 00189 bebidas++; 00190 break; 00191 } 00192 else{ 00193 onzasDrink1[aux1Oz++] = datos[i]-48; 00194 } 00195 break; 00196 case 2: 00197 if(datos[i] == '|'){ 00198 bebidas++; 00199 break; 00200 } 00201 else{ 00202 customDrink2[aux2++] = datos[i]; 00203 } 00204 break; 00205 case 3: 00206 if(datos[i] == '#'){ 00207 bebidas++; 00208 break; 00209 } 00210 else{ 00211 onzasDrink2[aux2Oz++] = datos[i]-48; 00212 } 00213 break; 00214 case 4: 00215 if(datos[i] == '|'){ 00216 bebidas++; 00217 break; 00218 } 00219 else{ 00220 customDrink3[aux3++] = datos[i]; 00221 } 00222 break; 00223 case 5: 00224 if(datos[i] == '#'){ 00225 bebidas++; 00226 break; 00227 } 00228 else{ 00229 onzasDrink3[aux3Oz++] = datos[i]-48; 00230 } 00231 break; 00232 case 6: 00233 if(datos[i] == '|'){ 00234 bebidas++; 00235 break; 00236 } 00237 else{ 00238 customDrink4[aux4++] = datos[i]; 00239 } 00240 break; 00241 case 7: 00242 if(datos[i] == '#'){ 00243 bebidas++; 00244 break; 00245 } 00246 else{ 00247 onzasDrink4[aux4Oz++] = datos[i]-48; 00248 } 00249 break; 00250 case 8: 00251 if(datos[i] == '|'){ 00252 bebidas++; 00253 break; 00254 } 00255 else{ 00256 customDrink5[aux5++] = datos[i]; 00257 } 00258 break; 00259 case 9: 00260 if(datos[i] == '#'){ 00261 bebidas++; 00262 break; 00263 } 00264 else{ 00265 onzasDrink5[aux5Oz++] = datos[i]-48; 00266 } 00267 break; 00268 case 10: 00269 if(datos[i] == '|'){ 00270 bebidas++; 00271 break; 00272 } 00273 else{ 00274 customDrink6[aux6++] = datos[i]; 00275 } 00276 break; 00277 case 11: 00278 if(datos[i] == '%'){ 00279 bebidas=0; 00280 state = standby; 00281 break; 00282 } 00283 else{ 00284 onzasDrink6[aux6Oz++] = datos[i]-48; 00285 } 00286 break; 00287 } 00288 } 00289 00290 bebidas=0; 00291 auxBL=0; 00292 aux1=0; 00293 aux2=0; 00294 aux3=0; 00295 aux4=0; 00296 aux5=0; 00297 aux6=0; 00298 aux1Oz=0; 00299 aux2Oz=0; 00300 aux3Oz=0; 00301 aux4Oz=0; 00302 aux5Oz=0; 00303 aux6Oz=0; 00304 00305 00306 00307 pc.printf("\n%s\n",customDrink1); 00308 for(int auxxd=0; auxxd < 6; auxxd++) 00309 pc.printf("%d ",onzasDrink1[auxxd]); 00310 pc.printf("\n%s\n",customDrink2); 00311 for(int auxxd=0; auxxd < 6; auxxd++) 00312 pc.printf("%d ",onzasDrink2[auxxd]); 00313 pc.printf("\n%s\n",customDrink3); 00314 for(int auxxd=0; auxxd < 6; auxxd++) 00315 pc.printf("%d ",onzasDrink3[auxxd]); 00316 pc.printf("\n%s\n",customDrink4); 00317 for(int auxxd=0; auxxd < 6; auxxd++) 00318 pc.printf("%d ",onzasDrink4[auxxd]); 00319 pc.printf("\n%s\n",customDrink5); 00320 for(int auxxd=0; auxxd < 6; auxxd++) 00321 pc.printf("%d ",onzasDrink5[auxxd]); 00322 pc.printf("\n%s\n",customDrink6); 00323 for(int auxxd=0; auxxd < 6; auxxd++) 00324 pc.printf("%d ",onzasDrink6[auxxd]); 00325 00326 memset(datos,0,100); 00327 memset(customDrink1,0,25); 00328 memset(customDrink2,0,25); 00329 memset(customDrink3,0,25); 00330 memset(customDrink4,0,25); 00331 memset(customDrink5,0,25); 00332 memset(customDrink6,0,25); 00333 00334 ledred = 0; 00335 ledgreen= 1; 00336 ledblue=1; 00337 } 00338 00339 datos[auxBL++] = charRecieve; 00340 00341 break; 00342 } 00343 //pc.printf("%s",datos); 00344 } 00345 } 00346 }
Generated on Sat Oct 15 2022 18:20:55 by
1.7.2