Código para o menu no LCD

Dependencies:   mbed SDFileSystemSD TextLCD

Fork of TextLCD_HelloWorld2 by Wim Huiskamp

Revision:
33:0149960e95c1
Parent:
32:c293f89170b0
Child:
34:7c7fac39a250
Child:
45:6701e27510f9
--- a/classes.h	Wed May 23 14:54:13 2018 +0000
+++ b/classes.h	Wed May 23 22:47:31 2018 +0000
@@ -334,112 +334,21 @@
                     }
                 bot_baixo = 1;
                 }
-            //função para printar as coordenadas nas telas 2 e 8
-            /*else if (func==2 || func==8){
-                //x
-                if (cx<=-1 && cx>=-9){                    
-                    lcd.locate(2,1);
-                    lcd.printf("  %.2f ", cx);
-                    }
-                if (cx<=-10 && cx>=-99){
-                    lcd.locate(2,1);
-                    lcd.printf(" %.2f ", cx);
-                    }
-                if (cx<=-100){
-                    lcd.locate(2,1);
-                    lcd.printf("%.2f ", cx);
-                    }                        
-                if (cx<=9 && cx>=0){                    
-                    lcd.locate(2,1);
-                    lcd.printf("   %.2f ", cx);
-                    }
-                if (cx>=10 && cx<=99){
-                    lcd.locate(2,1);
-                    lcd.printf("  %.2f ", cx);
-                    }
-                if (cx>=100){
-                    lcd.locate(2,1);
-                    lcd.printf(" %.2f ", cx);
-                    }
-                //y
-                if (cy<=-1 && cy>=-9){                    
-                    lcd.locate(2,2);
-                    lcd.printf("  %.2f ", cy);
-                    }
-                if (cy<=-10 && cx>=-99){
-                    lcd.locate(2,2);
-                    lcd.printf(" %.2f ", cy);
-                    }
-                if (cy<=-100){
-                    lcd.locate(2,2);
-                    lcd.printf("%.2f ", cy);
-                    } 
-                if (cy<=9 && cy>=0){                    
-                    lcd.locate(2,2);
-                    lcd.printf("   %.2f ", cy);
-                    }
-                if (cy>=10 && cx<=99){
-                    lcd.locate(2,2);
-                    lcd.printf("  %.2f ", cy);
-                    }
-                if (cy>=100){
-                    lcd.locate(2,2);
-                    lcd.printf(" %.2f ", cy);
-                    }
-                //z
-                if (cz<=-1 && cz>=-9){                    
-                    lcd.locate(2,3);
-                    lcd.printf("  %.2f ", cz);
-                    }
-                if (cz<=-10 && cx>=-99){
-                    lcd.locate(2,3);
-                    lcd.printf(" %.2f ", cz);
-                    }
-                if (cz<=-100){
-                    lcd.locate(2,3);
-                    lcd.printf("%.2f ", cz);
-                    }
-                if (cz<=9 && cz>=0){                    
-                    lcd.locate(2,3);
-                    lcd.printf("   %.2f ", cz);
-                    }
-                if (cz>=10 && cx<=99){
-                    lcd.locate(2,3);
-                    lcd.printf("  %.2f ", cz);
-                    }
-                if (cz>=100){
-                    lcd.locate(2,3);
-                    lcd.printf(" %.2f ", cz);
-                    }
-                } //até aqui, para alinhar os números
-            if (Mach.readable()){
-                readSerial();
-                }*/
-            }          
-            
+            }                      
         }
         
-    /*void inicializar(){
-        while (1){
-            printf("%d,%d\n\r", bot_enter, penter); 
-            wait(0.5);
-            }
-        }*/
                        
     //func 0
     void inicializar(){ //função tela incial de boas-vindas
-        int status;
-        
-        printf("Starting...\n\r");
-        
+        int status;        
+        printf("Starting...\n\r");        
         machine.reset();
         lcd.cls();
         lcd.locate(4,0);
         lcd.printf("Bem-vindo(a)");
         lcd.locate(0,1);
         lcd.printf("Utilize seu EPI para operar a maquina.");
-        wait(1);
-        
+        wait(1);        
         /*status = sdcard.get_file_names();
         if(status){
             printf("Filenames: \n\r");
@@ -487,41 +396,43 @@
         wait(0.1);
         machine.jog();
         lcd.locate(4,0);
-        lcd.printf("Coordenadas:");
-        lcd.locate(0,1);
-        lcd.printf("X:");
-        lcd.locate(0,2);
-        lcd.printf("Y:");
-        lcd.locate(0,3);
-        lcd.printf("Z:");
-        lcd.locate(11,1);
+        lcd.printf("");
+        lcd.locate(6,1);
         lcd.printf("Salvar");
-        lcd.locate(11,2);
+        lcd.locate(6,2);
         lcd.printf("Concluir");
-        lcd.locate(11,3);
+        lcd.locate(6,3);
         lcd.printf("Cancelar");        
-        movercursor(1,3,10);       
+        movercursor(1,3,5);       
         if (bot_enter!=penter){
             if (linha==1){                
-                /*if (pontos==0 && maxpontos>=1){
+                if (pontos==0 && maxpontos>10){
                     cx_salva = 0;
                     cy_salva = 0;
                     cz_salva = 0;
                     pontos++;
                     maxpontos--;
-                    func = 5;
+                    func = 22;
                     }
-                else if (pontos>=1 && maxpontos>=1){
+                else if (pontos>=1 && maxpontos>10){
                     cx_salva = cx;
                     cy_salva = cy;
                     cz_salva = cz;
-                    */pontos++;
+                    pontos++;
                     maxpontos--;
-                    func = 5;/*
+                    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;
-                    }*/
+                    }
                 }
             else if (linha==2) {
                 machine.kill_jog();
@@ -855,11 +766,16 @@
     void nomeprog(){
         nome = "";
         sair = 0;
+        voltar = 0;
+        coluna = 1;
         lcd.cls();        
         bot_enter = penter;
         escrever();
+        //lcd.setCursor(TextLCD::CurOff_BlkOff);
         if (sair==1){
-            printf("hey\n\r");
+            int len = nome.length();
+            printf("%d\n\r", len);
+            nome.erase(len - 1);
             nome.append(".txt");
             printf("%s\n\r", nome);
             int verificar = sdcard.check_name_available(nome);
@@ -868,10 +784,10 @@
                 file_name = nome;
                 machine.get_saved_points();
                 printf("ok\n\r");
-                func = 1;
+                func = 7;
                 }
             else if (verificar==0){
-                func = 21;
+                func = 20;
                 printf("nok\n\r");
                 }
             }
@@ -884,15 +800,108 @@
         func = 20;
         }
         
+    //func 22
+    void salva2(){
+        lcd.cls();
+        lcd.locate(0,0);
+        lcd.printf("Voce salvou o ponto:");
+        lcd.locate(5,1);
+        lcd.printf("X:");
+        lcd.locate(5,2);
+        lcd.printf("Y:");
+        lcd.locate(5,3);
+        lcd.printf("Z:");
+        //x
+        if (cx<=-1 && cx>=-9){                    
+            lcd.locate(7,1);
+            lcd.printf("  %.2f ", cx);
+            }
+        if (cx<=-10 && cx>=-99){
+            lcd.locate(7,1);
+            lcd.printf(" %.2f ", cx);
+            }
+        if (cx<=-100){
+            lcd.locate(7,1);
+            lcd.printf("%.2f ", cx);
+            }                        
+        if (cx<=9 && cx>=0){                    
+            lcd.locate(7,1);
+            lcd.printf("   %.2f ", cx);
+            }
+        if (cx>=10 && cx<=99){
+            lcd.locate(7,1);
+            lcd.printf("  %.2f ", cx);
+            }
+        if (cx>=100){
+            lcd.locate(7,1);
+            lcd.printf(" %.2f ", cx);
+            }
+        //y
+        if (cy<=-1 && cy>=-9){                    
+            lcd.locate(7,2);
+            lcd.printf("  %.2f ", cy);
+            }
+        if (cy<=-10 && cx>=-99){
+            lcd.locate(7,2);
+            lcd.printf(" %.2f ", cy);
+            }
+        if (cy<=-100){
+            lcd.locate(7,2);
+            lcd.printf("%.2f ", cy);
+            } 
+        if (cy<=9 && cy>=0){                    
+            lcd.locate(7,2);
+            lcd.printf("   %.2f ", cy);
+            }
+        if (cy>=10 && cx<=99){
+            lcd.locate(7,2);
+            lcd.printf("  %.2f ", cy);
+            }
+        if (cy>=100){
+            lcd.locate(7,2);
+            lcd.printf(" %.2f ", cy);
+            }
+        //z
+        if (cz<=-1 && cz>=-9){                    
+            lcd.locate(7,3);
+            lcd.printf("  %.2f ", cz);
+            }
+        if (cz<=-10 && cx>=-99){
+            lcd.locate(7,3);
+            lcd.printf(" %.2f ", cz);
+            }
+        if (cz<=-100){
+            lcd.locate(7,3);
+            lcd.printf("%.2f ", cz);
+            }
+        if (cz<=9 && cz>=0){                    
+            lcd.locate(7,3);
+            lcd.printf("   %.2f ", cz);
+            }
+        if (cz>=10 && cx<=99){
+            lcd.locate(7,3);
+            lcd.printf("  %.2f ", cz);
+            }
+        if (cz>=100){
+            lcd.locate(7,3);
+            lcd.printf(" %.2f ", cz);
+            }
+        wait(1);
+        func = 6;
+        }
+        
     //função para escrever nome arquivo
     void escrever(){
         char alfabeto[38] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
         '0','1','2','3','4','5','6','7','8','9','-','_'};
         int imax = 37;
         int imin = 0;
-        lcd.locate(1,1); 
+        //lcd.locate(1,1); 
         while (sair==0){
+            voltar = 0;
             int i = 0;
+            //lcd.locate(0,2);
+            //lcd.setCursor(TextLCD::CurOn_BlkOn);
             lcd.locate(1,1);
             lcd.printf("%s", nome);
             while (bot_enter==penter){
@@ -916,15 +925,41 @@
                     }  
                 lcd.locate(coluna, 1);
                 lcd.printf("%c", alfabeto[i]);
+                lcd.locate(coluna,2);
+                lcd.printf("%c", 0x5E);
                 }
             if (coluna<=18){
-                if (coluna<18){
-                    coluna++;
-                    }
                 char carac = alfabeto[i];
                 nome.push_back(carac);
                 printf("%s\n\r", nome);
                 bot_enter = penter;
+                if (coluna<18){
+                    if (voltar==1){
+                        printf("voltar\n\r");
+                        if (coluna>1){
+                            //nome[coluna-1]="";
+                            lcd.locate(coluna, 1);
+                            lcd.printf(" ");
+                            lcd.locate(coluna, 2);
+                            lcd.printf(" ");
+                            coluna--;
+                            nome.erase(coluna-1);
+                            lcd.locate(coluna, 2);
+                            lcd.printf("%c", 0x5E);
+                            }
+                        }
+                    if (voltar==0){
+                        lcd.locate(coluna, 2);
+                        lcd.printf(" ");
+                        coluna++;
+                        lcd.locate(coluna, 2);
+                        lcd.printf("%c", 0x5E);
+                        }
+                    }
+                /*char carac = alfabeto[i];
+                nome.push_back(carac);
+                printf("%s\n\r", nome);
+                bot_enter = penter;*/
                 }
             }
         }