Tomas Flores
/
bluetoothComandos13_10
dndnf
main.cpp
- Committer:
- manzi
- Date:
- 23 months ago
- Revision:
- 0:592f7235dc63
File content as of revision 0:592f7235dc63:
#include "mbed.h" #define startData '$' #define endData '%' #define command_appGetDrink 'S' #define command_appCustomDrink 'E' // ANDA JOYA 22/9 Serial pc(USBTX, USBRX); Serial bt(PTE22, PTE23); DigitalOut ledblue(PTD1); DigitalOut ledgreen(PTB19); DigitalOut ledred(PTB18); enum{ standby = 0, command, data, }; int auxBL = 0; char datos[100],comando; char beb1[25] = " ", beb2[25] = " ", beb3[25] = " ", beb4[25] = " ", beb5[25] = " ", beb6[25] = " "; char customDrink1[25] = " " ,customDrink2[25]= " ",customDrink3[25]= " ",customDrink4[25]= " ",customDrink5[25]= " ",customDrink6[25]= " "; int onzasDrink1[6],onzasDrink2[6],onzasDrink3[6],onzasDrink4[6],onzasDrink5[6],onzasDrink6[6]; char charRecieve = 0; 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; int main(void) { // Inicializaciones pc.baud(9600); bt.baud(9600); ledred=1; ledblue=0; ledgreen=1; pc.printf("Conectado a la PC \n"); memset(datos,0,100); while(1) { if(bt.readable()) { ledred = 0; ledgreen= 1; ledblue=1; charRecieve = bt.getc(); switch(state){ case standby: if(charRecieve == startData) { //pc.printf("Recibe $$\n"); state = command; ledgreen=0; ledblue=1; ledred=1; } break; case command: comando = charRecieve; pc.printf("\n%c\n",comando); state = data; break; case data: if(charRecieve == endData && (comando == command_appGetDrink)){ //pc.printf("Recibe %%\n"); pc.printf("%s\n",datos); state = standby; for(i=0; i < strlen(datos); i++){ switch (bebidas){ case 0: if(datos[i] == '#'){ bebidas++; break; } else{ if(datos[i] != '%') /////////// beb1[aux1++] = datos[i]; } break; case 1: if(datos[i] == '#'){ bebidas++; break; } else{ beb2[aux2++] = datos[i]; } break; case 2: if(datos[i] == '#'){ bebidas++; break; } else{ beb3[aux3++] = datos[i]; } break; case 3: if(datos[i] == '#'){ bebidas++; break; } else{ beb4[aux4++] = datos[i]; } break; case 4: if(datos[i] == '#'){ bebidas++; break; } else{ beb5[aux5++] = datos[i]; } break; case 5: if(datos[i] == '%'){ bebidas=0; state = standby; break; } else{ beb6[aux6++] = datos[i]; } break; } } bebidas=0; auxBL=0; aux1=0; aux2=0; aux3=0; aux4=0; aux5=0; aux6=0; pc.printf("%s\n",beb1); pc.printf("%s\n",beb2); pc.printf("%s\n",beb3); pc.printf("%s\n",beb4); pc.printf("%s\n",beb5); pc.printf("%s\n",beb6); memset(datos,0,100); memset(beb1,0,25); memset(beb2,0,25); memset(beb3,0,25); memset(beb4,0,25); memset(beb5,0,25); memset(beb6,0,25); ledred = 0; ledgreen= 1; ledblue=1; } if(charRecieve == endData && (comando == command_appCustomDrink)){ //pc.printf("Recibe %%\n"); pc.printf("%s\n",datos); state = standby; for(i=0; i < strlen(datos); i++){ switch (bebidas){ case 0: if(datos[i] == '|'){ bebidas++; break; } else{ if(datos[i] != '%') /////////// customDrink1[aux1++] = datos[i]; } break; case 1: if(datos[i] == '#'){ bebidas++; break; } else{ onzasDrink1[aux1Oz++] = datos[i]-48; } break; case 2: if(datos[i] == '|'){ bebidas++; break; } else{ customDrink2[aux2++] = datos[i]; } break; case 3: if(datos[i] == '#'){ bebidas++; break; } else{ onzasDrink2[aux2Oz++] = datos[i]-48; } break; case 4: if(datos[i] == '|'){ bebidas++; break; } else{ customDrink3[aux3++] = datos[i]; } break; case 5: if(datos[i] == '#'){ bebidas++; break; } else{ onzasDrink3[aux3Oz++] = datos[i]-48; } break; case 6: if(datos[i] == '|'){ bebidas++; break; } else{ customDrink4[aux4++] = datos[i]; } break; case 7: if(datos[i] == '#'){ bebidas++; break; } else{ onzasDrink4[aux4Oz++] = datos[i]-48; } break; case 8: if(datos[i] == '|'){ bebidas++; break; } else{ customDrink5[aux5++] = datos[i]; } break; case 9: if(datos[i] == '#'){ bebidas++; break; } else{ onzasDrink5[aux5Oz++] = datos[i]-48; } break; case 10: if(datos[i] == '|'){ bebidas++; break; } else{ customDrink6[aux6++] = datos[i]; } break; case 11: if(datos[i] == '%'){ bebidas=0; state = standby; break; } else{ onzasDrink6[aux6Oz++] = datos[i]-48; } break; } } bebidas=0; auxBL=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; pc.printf("\n%s\n",customDrink1); for(int auxxd=0; auxxd < 6; auxxd++) pc.printf("%d ",onzasDrink1[auxxd]); pc.printf("\n%s\n",customDrink2); for(int auxxd=0; auxxd < 6; auxxd++) pc.printf("%d ",onzasDrink2[auxxd]); pc.printf("\n%s\n",customDrink3); for(int auxxd=0; auxxd < 6; auxxd++) pc.printf("%d ",onzasDrink3[auxxd]); pc.printf("\n%s\n",customDrink4); for(int auxxd=0; auxxd < 6; auxxd++) pc.printf("%d ",onzasDrink4[auxxd]); pc.printf("\n%s\n",customDrink5); for(int auxxd=0; auxxd < 6; auxxd++) pc.printf("%d ",onzasDrink5[auxxd]); pc.printf("\n%s\n",customDrink6); for(int auxxd=0; auxxd < 6; auxxd++) pc.printf("%d ",onzasDrink6[auxxd]); memset(datos,0,100); memset(customDrink1,0,25); memset(customDrink2,0,25); memset(customDrink3,0,25); memset(customDrink4,0,25); memset(customDrink5,0,25); memset(customDrink6,0,25); ledred = 0; ledgreen= 1; ledblue=1; } datos[auxBL++] = charRecieve; break; } //pc.printf("%s",datos); } } }