dndnf

Dependencies:   mbed

Files at this revision

API Documentation at this revision

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