Código para o menu no LCD

Dependencies:   mbed SDFileSystemSD TextLCD

Fork of TextLCD_HelloWorld2 by Wim Huiskamp

Revision:
38:6c94230e5ecd
Parent:
37:30f7dd6f2ea5
Child:
40:e70f811c69dc
--- a/classes.h	Wed May 30 15:58:38 2018 +0000
+++ b/classes.h	Mon Jun 04 19:40:07 2018 +0000
@@ -182,7 +182,7 @@
                 error("Could not open file for write\n\r");
                 return 0;
             }  
-            
+            t.reset();
             t.start();
             
             while(1){
@@ -424,33 +424,7 @@
         movercursor(0,3,10);       
         if (bot_enter!=penter){
             if (linha==0){                
-                if (pontos==0 && maxpontos>10){
-                    cx_salva = 0;
-                    cy_salva = 0;
-                    cz_salva = 0;
-                    pontos++;
-                    maxpontos--;
-                    func = 22;
-                    }
-                else if (pontos>=1 && maxpontos>10){
-                    cx_salva = cx;
-                    cy_salva = cy;
-                    cz_salva = cz;
-                    pontos++;
-                    maxpontos--;
-                    func = 22;
-                    }
-                else if (maxpontos<=10){
-                    cx_salva = cx;
-                    cy_salva = cy;
-                    cz_salva = cz;
-                    pontos++;
-                    maxpontos--;
-                    func = 5;
-                    }
-                else if (maxpontos==0){
-                    func = 16;
-                    }
+                func = 6;
                 }
             else if (linha==1){
                 if (pontos>=1){
@@ -484,6 +458,8 @@
     //func 3
     void automatico(){ //tela modo automatico
         lcd.cls();
+        f = 0;
+        sair = 0;
         bot_enter = penter;
         printf("Automatico\n\r");
         lcd.printf("Selecione o programa");
@@ -497,7 +473,6 @@
     void config() {
         lcd.cls();
         bot_enter = penter;
-        //printf("%d,tela\n\r", penter);
         lcd.locate(1,0);
         lcd.printf("Definir velocidade");
         lcd.locate(1,1);
@@ -543,7 +518,7 @@
         lcd.printf("%d", maxpontos);
         wait(1);
         if (pontos>0){
-            func = 6;
+            func = 2;
             }
         else if (pontos==0){
             func = 2;
@@ -563,19 +538,117 @@
         lcd.printf("Cola continua");
         movercursor(1,3,2);
         if (bot_enter!=penter){
+            if (Mach.readable()){
+                readSerial();
+                }
             if (linha==1){
                 cola = 0;
-                func = 2;
+                if (pontos==0 && maxpontos>10){
+                    cx_salva = 0;
+                    cy_salva = 0;
+                    cz_salva = 0;
+                    pontos++;
+                    maxpontos--;
+                    machine.save_point(cola,1.0);
+                    printf("salvei ponto\n\r");
+                    func = 22;
+                    }
+                else if (pontos>=1 && maxpontos>10){
+                    cx_salva = cx;
+                    cy_salva = cy;
+                    cz_salva = cz;
+                    pontos++;
+                    maxpontos--;
+                    machine.save_point(cola,1.0);
+                    printf("salvei ponto\n\r");
+                    func = 22;
+                    }
+                else if (maxpontos<=10){
+                    cx_salva = cx;
+                    cy_salva = cy;
+                    cz_salva = cz;
+                    pontos++;
+                    maxpontos--;
+                    machine.save_point(cola,1.0);
+                    printf("salvei ponto\n\r");
+                    func = 5;
+                    }
+                else if (maxpontos==0){
+                    func = 16;
+                    }
                 }
             else if (linha==2) {
                 cola = 1;
-                func = 2;
+                if (pontos==0 && maxpontos>10){
+                    cx_salva = 0;
+                    cy_salva = 0;
+                    cz_salva = 0;
+                    pontos++;
+                    maxpontos--;
+                    machine.save_point(cola,1.0);
+                    printf("salvei ponto\n\r");
+                    func = 22;
+                    }
+                else if (pontos>=1 && maxpontos>10){
+                    cx_salva = cx;
+                    cy_salva = cy;
+                    cz_salva = cz;
+                    pontos++;
+                    maxpontos--;
+                    machine.save_point(cola,1.0);
+                    printf("salvei ponto\n\r");
+                    func = 22;
+                    }
+                else if (maxpontos<=10){
+                    cx_salva = cx;
+                    cy_salva = cy;
+                    cz_salva = cz;
+                    pontos++;
+                    maxpontos--;
+                    machine.save_point(cola,1.0);
+                    printf("salvei ponto\n\r");
+                    func = 5;
+                    }
+                else if (maxpontos==0){
+                    func = 16;
+                    }
                 }
             else if (linha==3) {
                 cola = 2;
-                func = 2;
-                }
-            machine.save_point(cola,1.0);
+                if (pontos==0 && maxpontos>10){
+                    cx_salva = 0;
+                    cy_salva = 0;
+                    cz_salva = 0;
+                    pontos++;
+                    maxpontos--;
+                    machine.save_point(cola,1.0);
+                    printf("salvei ponto\n\r");
+                    func = 22;
+                    }
+                else if (pontos>=1 && maxpontos>10){
+                    cx_salva = cx;
+                    cy_salva = cy;
+                    cz_salva = cz;
+                    pontos++;
+                    maxpontos--;
+                    machine.save_point(cola,1.0);
+                    printf("salvei ponto\n\r");
+                    func = 22;
+                    }
+                else if (maxpontos<=10){
+                    cx_salva = cx;
+                    cy_salva = cy;
+                    cz_salva = cz;
+                    pontos++;
+                    maxpontos--;
+                    machine.save_point(cola,1.0);
+                    printf("salvei ponto\n\r");
+                    func = 5;
+                    }
+                else if (maxpontos==0){
+                    func = 16;
+                    }
+                }            
             }
         }
     
@@ -657,30 +730,14 @@
     void executando(){ //tela de executando
         lcd.cls();
         machine.start_program();
+        printf("start program, %s\n\r", arquivo);
         lcd.locate(4,1);
         lcd.printf("Executando");
-        tpontinhos.start();
+        //tpontinhos.start();
         while (exec == 1){
             if (Mach.readable()){
                 readSerial();
                 }
-            if (tpontinhos.read()<0.5){
-                lcd.locate(14,1);
-                lcd.printf("   ");
-                }
-            if (tpontinhos.read()>=0.5 && tpontinhos.read()<1.0){
-                lcd.locate(14,1);
-                lcd.printf(".  ");
-                }
-            if (tpontinhos.read()>=1 && tpontinhos.read()<1.5){
-                lcd.locate(14,1);
-                lcd.printf(".. ");
-                }
-            if (tpontinhos.read()>0.5 && tpontinhos.read()<1.0){
-                lcd.locate(14,1);
-                lcd.printf("...");
-                tpontinhos.reset();
-                }
             }
         //printf("saiu\n\r");
         func = 11;
@@ -971,7 +1028,7 @@
             lcd.printf(" %.2f ", cz);
             }
         wait(1);
-        func = 6;
+        func = 2;
         }
     
     //func 23
@@ -1099,62 +1156,46 @@
         
     //função ler arquivos
     void arquivos(){
+        exec = 0;
         int nomearq;
         nomearq = sdcard.get_file_names();
-        //printf("%s\n\r", filenames);
         int ftamanho = filenames.size();
         int fmax = ftamanho - 1;
-        //printf("%d, %d\n\r", ftamanho, fmax);
         int fant = 1;
-        
-        //printf("%d\n\r", nomearq);
         while (sair==0){
-            //while(bot_enter==penter){   
-                //printf("%d, %d\n\r", bot_enter, penter);
-                //printf("%d\n\r", f);
-                if (bot_cima==0){
-                    fant = f;
-                    f--;
-                    if (f<0){
-                        f = fmax;
-                        }
-                    bot_cima = 1;                        
+            if (bot_cima==0){
+                fant = f;
+                f--;
+                if (f<0){
+                    f = fmax;
                     }
-                if (bot_baixo==0){
-                    fant = f;
-                    f++;
-                    if (f>fmax){
-                        f = 0;
-                        }
-                    bot_baixo = 1;
+                bot_cima = 1;                        
+                }
+            if (bot_baixo==0){
+                fant = f;
+                f++;
+                if (f>fmax){
+                    f = 0;
                     }
-                arquivo = filenames[f];
-                if (f!=fant){
-                    //printf("%d\n\r", f);
-                    lcd.locate(0,1);
-                    lcd.printf("                    ");
-                    lcd.locate(0,2);
-                    lcd.printf("                    ");
-                    lcd.locate(0,1);
-                    lcd.printf("%s", arquivo); 
-                    }
-                //printf("trocou\n\r");
-                /*if(timer.read() > 1.0){
-                    sair = 1;  
-                    printf("SAINDO\n\r");  
-                    timer.reset();
-                    timer.stop();
-                    break;
-                    }  */
-                if (bot_enter!=penter){
-                    lcd.locate(10,3);
-                    lcd.printf("Aguarde...");
-                    sdcard.send_gcode(arquivo);
-                    func = 26;
-                    printf("send gcode\n\r");
-                    break;
-                    }
-                //}          
+                bot_baixo = 1;
+                }
+            arquivo = filenames[f];
+            if (f!=fant){
+                lcd.locate(0,1);
+                lcd.printf("                    ");
+                lcd.locate(0,2);
+                lcd.printf("                    ");
+                lcd.locate(0,1);
+                lcd.printf("%s", arquivo); 
+                }
+            if (bot_enter!=penter){
+                lcd.locate(10,3);
+                lcd.printf("Aguarde...");
+                sdcard.send_gcode(arquivo);
+                printf("send gcode, %s\n\r", arquivo);
+                func = 26;
+                break;
+                }      
             fant = f;            
             }
         }
@@ -1276,6 +1317,7 @@
                 
             if (recv == 'p'){
                 points = 1;
+                printf("p\n\r");
             }
                 
             if(recv == 'u'){
@@ -1287,7 +1329,8 @@
                     printf("OK\n\r");   
                     status = sdcard.save_GCODE(file_name, recv_buffer);
                     return;
-                } else if(recv != 'u'){
+                } 
+                else if(recv != 'u'){
                     recv_buffer.push_back(recv);
                 }
             }