Tomas Flores
/
bluetoothComandos13_10
dndnf
Revision 0:592f7235dc63, committed 2022-10-15
- Comitter:
- manzi
- Date:
- Sat Oct 15 18:20:42 2022 +0000
- Commit message:
- 15:20
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
mbed.bld | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Oct 15 18:20:42 2022 +0000 @@ -0,0 +1,346 @@ +#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); + } + } +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Sat Oct 15 18:20:42 2022 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file