testando

Dependencies:   mbed TextLCD2

Revision:
90:388071e54291
Parent:
89:bc51c6bbe2a6
Child:
91:ce9b14cd2137
--- a/main_PM.cpp	Mon Jun 08 17:55:53 2020 +0000
+++ b/main_PM.cpp	Mon Jun 08 18:56:49 2020 +0000
@@ -22,7 +22,7 @@
 int est_y = 0;              //variável que indicará o estado do eixo y, pemitindo ou não que ele possa ser avançado depois de atingir o fim de curso
 int est_z = 0;              //variável que indicará o estado do eixo z, pemitindo ou não que ele possa ser avançado depois de atingir o fim de curso
 float altura_solta = 50;
-
+string est_ihm = "novo";
 //pinos usados pelos botoes de fim de curso
 InterruptIn fdc_x(PC_10);
 InterruptIn fdc_y(PC_11);
@@ -300,6 +300,7 @@
              
     //Loop principal
     while(1) {
+        printf("\n%s",est_ihm);
         rele2 = 1; 
         tecla = pega_tecla();//Variável que guarda o valor da tecla apertada, é chamada diversas vezes ao longo do código
                              //para atualizar o valor mais rapidamente e sempre que necessário       
@@ -324,10 +325,12 @@
         
         //Ações para a tela inicial
         if(tecla == '1' && status_tela == "inicio"){
+            est_ihm = "pega";
             continuar = 1; //Condição de funcionamento do loop abaixo
             status_tela = "novo";
             troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);
         }
+
         else if(tecla == '2' && status_tela == "inicio"){   //Ações para a tela inicial quando o usuário seleciona programas salvos
             continuar = 1;
             while(continuar){
@@ -347,8 +350,9 @@
                     continuar = 0;
                 }
             }
-            status_tela = "salvo";}
-    
+            status_tela = "salvo";
+            est_ihm = "salvo";}
+    if(est_ihm == "salvo"){
     //Ações para a tela de salvamento
     //A variável programa remete a que programa salvo o usuário deseja acessar 
         tecla = pega_tecla();    
@@ -802,11 +806,14 @@
             troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);}          
                       
         tecla = pega_tecla(); 
-        
+
         if(confirmacao_vol_solta[programa]==1 && confirmacao_vol_pega[programa]==1 && confirmacao_pos_pega[programa]==1 && confirmacao_pos_solta[programa]==1){
             funcao_acomp();
-            status_tela="acompanhamento";   
-        }
+            status_tela="acompanhamento";
+            est_ihm = "exec";}
+        } //fim if(est_ihm)
+        
+        if(est_ihm == "pega"){
         //Ações para a tela novo
         if(tecla =='1' && status_tela =="novo"){
             funcao_pega_forma();
@@ -1037,9 +1044,12 @@
             
          if(pos_x_pega[programa]!=0 && pos_y_pega[programa]!=0 && medida_lado_pega[programa]!=0 && volume_pega[programa] !=0 && tipo_pega[programa]!=0 && status_tela == "novo"){
             status_tela="solta";
+            est_ihm = "solta";
             continuar = 1;
             troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);}
-
+                    }//fim if(est_ihm == "pega")
+                    
+        if(est_ihm == "solta"){
         //Ações para a tela "solta", para definir informações sobre os solta's
         if(tecla == '1' && status_tela == "solta"){
             funcao_solta_dimensao();
@@ -1107,6 +1117,7 @@
                     lcd.cls();
                     lcd.printf("X: %4.1f", coord_x);}
                 if(tecla=='A'){
+                    pos_x_solta[programa] = coord_x;
                     continuar = 0;
                     printf("Posicao de x salva!");
                     printf("Posicao X: %4.1f", coord_x);
@@ -1147,8 +1158,23 @@
             }
         if(tecla=='A' && status_tela=="solta_pos_x"){
             funcao_solta_pos_y();
-            pos_x_solta[programa] = 10;
             status_tela="solta_pos_y";
+            continuar = 1;
+            wait(1);
+             while(continuar){
+                    tecla = pega_tecla();
+                 if(y_menos == 0){mov_y_menos();
+                    lcd.cls();      
+                    lcd.printf("Y: %4.1f", coord_y);}
+                 else if(y_mais == 0){mov_y_mais();
+                    lcd.cls();
+                    lcd.printf("Y: %4.1f", coord_y);}
+                if(tecla=='A'){
+                    pos_y_solta[programa] = coord_y;
+                    printf("Posicao de y salva!");
+                    printf("Posicao Y: %4.1f", coord_y);
+                    continuar = 0;}
+            }
             }
         else if(tecla=='B' && status_tela=="solta_pos_x"){
             status_tela="solta";  
@@ -1234,13 +1260,12 @@
         //Ações para a tela acompanhamento (execução do programa)
         //MAtriz 3x3 (6x6cm)
         int nome;
-        pos_y_solta[programa] = 2;
         if(pos_x_solta[programa]!=0 && pos_y_solta[programa]!=0 && volume_solta_9[programa]!=0 && dimensao_solta[programa]!=0 && status_tela == "solta"){
            printf("rotina exec");
            funcao_nome_prog();
+           wait(1);
            status_tela="nome_programa";}
-            if(tecla=='B' && status_tela=="nome_programa"){
-                pos_y_solta[programa] = 10;
+            if(tecla=='B' && status_tela=="nome_programa"){                
                 status_tela="solta";
                 continuar = 1;
                 troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
@@ -1263,6 +1288,7 @@
                 printf("nome inserido");
                 printf("nome: %d", nome);
                 funcao_acomp();
+                est_ihm = "exec";
                 status_tela="acompanhamento";
                 continuar = 0;
                 nome_programa[programa]=nome;
@@ -1272,20 +1298,25 @@
                 confirmacao_pos_solta[programa]=0;
             }
             }}
-        if(confirmacao_pos_pega[programa]==0 && confirmacao_pos_solta[programa]==0 && confirmacao_vol_pega[programa]==0 && confirmacao_pos_solta[programa]==0 && status_tela == "acompanhamento"){           
+            }//fim if(est_ihm == "solta")
+            
+        if(est_ihm == "exec"){            
+            if(confirmacao_pos_pega[programa]==0 && confirmacao_pos_solta[programa]==0 && confirmacao_vol_pega[programa]==0 && confirmacao_pos_solta[programa]==0 && status_tela == "acompanhamento"){           
             int cont_pipeta = 0;
-           float altura;
+            float altura;
            
-           float pos1[2] = {pos_x_solta[programa], pos_y_solta[programa]} ;
-           float pos2[2] = {pos_x_solta[programa]+2, pos_y_solta[programa]} ;
-           float pos3[2] = {pos_x_solta[programa]+4, pos_y_solta[programa]} ;
-           float pos4[2] = {pos_x_solta[programa], pos_y_solta[programa]+2} ;
-           float pos5[2] = {pos_x_solta[programa]+2, pos_y_solta[programa]+2} ;
-           float pos6[2] = {pos_x_solta[programa]+4, pos_y_solta[programa]+2} ;
-           float pos7[2] = {pos_x_solta[programa], pos_y_solta[programa]+4} ;
-           float pos8[2] = {pos_x_solta[programa]+2, pos_y_solta[programa]+4} ;
-           float pos9[2] = {pos_x_solta[programa]+4, pos_y_solta[programa]+4};
-        
+            float pos1[2] = {pos_x_solta[programa], pos_y_solta[programa]} ;
+            float pos2[2] = {pos_x_solta[programa]+2, pos_y_solta[programa]} ;
+            float pos3[2] = {pos_x_solta[programa]+4, pos_y_solta[programa]} ;
+            float pos4[2] = {pos_x_solta[programa], pos_y_solta[programa]+2} ;
+            float pos5[2] = {pos_x_solta[programa]+2, pos_y_solta[programa]+2} ;
+            float pos6[2] = {pos_x_solta[programa]+4, pos_y_solta[programa]+2} ;
+            float pos7[2] = {pos_x_solta[programa], pos_y_solta[programa]+4} ;
+            float pos8[2] = {pos_x_solta[programa]+2, pos_y_solta[programa]+4} ;
+            float pos9[2] = {pos_x_solta[programa]+4, pos_y_solta[programa]+4};
+
+            
+
           //Calcular a altura do pega com base no tipo do pega
            for(int i; i<volume_solta_1[programa];i++){
                 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
@@ -1461,5 +1492,6 @@
            }}
 
         }//fim do else if do meio do codigo
+        }//fim do if(est_ihm == "exec")
       }//fim do while(1)
   //fim do int main
\ No newline at end of file