dndnf

Dependencies:   mbed

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);   
        }
    }
}