dndnf

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

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 }