dndnf
Embed:
(wiki syntax)
Show/hide line numbers
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