Projeto Mecatrônico
/
ProjetoMecatronico
testando
Diff: main_PM.cpp
- Revision:
- 100:bbaf114eab93
- Parent:
- 99:409a77673f2d
- Child:
- 101:721038fb5c41
--- a/main_PM.cpp Wed Jun 10 01:29:38 2020 +0000 +++ b/main_PM.cpp Fri Jun 12 13:04:55 2020 +0000 @@ -23,6 +23,7 @@ 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); @@ -80,27 +81,40 @@ if (t_7 == 0)return('7'); if (t_8 == 0)return('8'); if (t_9 == 0)return('9'); - return('k');} + return('k'); //caso nenhum botão seja apertado +} //funcoes de fim de curso por interrupção -void lim_x(){for(int i = 0; i < 4; i++){TextLCD lcd(D4, D5, D6, D7, D8, D9); - eixox = parado[i];wait(t_motor); - lcd.cls();lcd.printf("Limite de x atingido"); - lcd.locate(0,2);lcd.printf("Pressione 0 para continuar"); - est_x = 1;}} +void lim_x(){ + for(int i = 0; i < 4; i++){TextLCD lcd(D4, D5, D6, D7, D8, D9); + eixox = parado[i];wait(t_motor); + lcd.cls();lcd.printf("Limite de x atingido"); + lcd.locate(0,2);lcd.printf("Pressione 0 para continuar"); + est_x = 1; + } +} -void lim_y(){for(int i = 0; i < 4; i++){TextLCD lcd(D4, D5, D6, D7, D8, D9); - eixoy = parado[i];wait(t_motor); - lcd.cls();lcd.printf("Limite de y atingido"); - lcd.locate(0,2);lcd.printf("Pressione 0 para continuar"); - est_y = 1;}} +void lim_y(){ + for(int i = 0; i < 4; i++){TextLCD lcd(D4, D5, D6, D7, D8, D9); + eixoy = parado[i];wait(t_motor); + lcd.cls();lcd.printf("Limite de y atingido"); + lcd.locate(0,2);lcd.printf("Pressione 0 para continuar"); + est_y = 1; + } +} -void lim_z(){for(int i = 0; i < 4; i++){TextLCD lcd(D4, D5, D6, D7, D8, D9); - eixoz = parado[i];wait(t_motor); - lcd.cls();lcd.printf("Limite de z atingido"); - lcd.locate(0,2);lcd.printf("Pressione 0 para continuar"); - est_z = 1;}} -void reseta_eixo(){est_x = 0;est_y = 0;est_z = 0;} +void lim_z(){ + for(int i = 0; i < 4; i++){TextLCD lcd(D4, D5, D6, D7, D8, D9); + eixoz = parado[i];wait(t_motor); + lcd.cls();lcd.printf("Limite de z atingido"); + lcd.locate(0,2);lcd.printf("Pressione 0 para continuar"); + est_z = 1; + } +} + +void reseta_eixo(){ + est_x = 0;est_y = 0;est_z = 0; +} //funcao de movimentacao dos motores void mov_x_menos(){for(int i = 0; i < 4; i++){eixox = antihor[i];wait(t_motor);coord_x -= (5.625*5/32)/360;}} @@ -110,97 +124,74 @@ void mov_y_mais() {for(int i = 0; i < 4; i++){eixoy = hor[i];wait(t_motor);coord_y += (5.625*5/32)/360;est_y = 0;}} void mov_z_mais() {for(int i = 0; i < 4; i++){eixoz = hor[i];wait(t_motor);coord_z += (5.625*5/32)/360;est_z = 0;}} +//Função para mover um motor de um ponto do plano xy para outro ponto no mesmo plano void go_to_posicao(float posicao_x, float posicao_y){ - while(coord_x < posicao_x){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar - mov_x_mais(); - } - while(coord_x > posicao_x){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir - mov_x_menos(); - } - while(coord_y < posicao_y){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar - mov_y_mais(); + while(coord_x < posicao_x){//ccord_x representa a posicao atual de x e posicao_x é a posicao em x que se quer atingir. + mov_x_mais(); //gira no sentido horário } - while(coord_y > posicao_y){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir - mov_y_menos(); - }; + while(coord_x > posicao_x){ + mov_x_menos(); //gira no sentido anti-horário + } + while(coord_y < posicao_y){ //ccord_y representa a posicao atual de y e posicao_y é a posicao em y que se quer atingir. + mov_y_mais(); //gira no sentido horário + } + while(coord_y > posicao_y){ + mov_y_menos(); //gira no sentido anti-horário + }; } -float calcula_altura(int forma_do_pega, int dimensao, float v, int contador){ +//Calcular a altura do pega com base no tipo do pega +//a dimensão do pega pode ser o lado de um quadrado ou diâmetro de uma circunferência. O contador se refere a quantas vezes o líquido já foi retirado do pega. +float calcula_altura(int forma_do_pega, int dimensao, float v, int contador){ if(forma_do_pega==1){//quad return (v-contador)/(dimensao*dimensao)*0.001-4; } - else if(forma_do_pega==2){//red + else{//red return ((v-contador)/(PI*(dimensao/2)*(dimensao/2))*0.001-4); }; } void go_to_z(float posicao_z){ - while(coord_z < posicao_z){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar - mov_z_mais(); - } - while(coord_z > posicao_z){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir - mov_z_menos(); + while(coord_z < posicao_z){ //coord_z representa a posicao atual de z e posicao_z é a posicao em z que se quer atingir. + mov_z_mais(); //gira no sentido horário + } + while(coord_z > posicao_z){ + mov_z_menos(); //gira no sentido anti-horário } } -//Funcao de colocar;modificar volume no solta -void modifica_solta(bool condicao, int volume, int posicao_cursor_0, int posicao_cursor_1, int volume_do_solta){ - TextLCD lcd(D4, D5, D6, D7, D8, D9); - while(condicao){ // Pega o valor imputado pelo usuário - tecla = pega_tecla(); - wait(t_teclado); - if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ - if(volume*10<100) - { - volume =10*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro - lcd.printf("%c", tecla); - } - else - { - volume = 0; - lcd.locate(posicao_cursor_0,posicao_cursor_1); - } - } - else if(tecla == 'A'){ - tecla = 'k'; - condicao = 0; - volume_do_solta = volume; - printf("SAIUU"); - } +//Funcao da rotina de execucao +void rotina_pino(float volume_solta, int tipo_do_pega, float medida_do_pega, float volume_do_pega, int contador, float pos_pino_x, float pos_pino_y){ + for(int i; i < volume_solta; i++){ // + float altura = calcula_altura(tipo_do_pega,medida_do_pega, volume_do_pega, contador); + go_to_z(altura); //move z até a altura para sugar o líquido + pipeta = 0; //aciona a pipeta pelo relé + wait(1); + pipeta = 1; //desaciona a pipeta + go_to_z(normal_z);//move z até a posicao normal de z (posicao de z que não vai atrapalhar o processo de pipetagem) + go_to_posicao(pos_pino_x,pos_pino_y); //move até o pino pelo plano de x e y + go_to_z(altura_solta);//Após chegar na posicao xy desejada, a pipeta desce para a altura do solta + pipeta = 0; //aciona a pipeta e solta o líquido no solta + wait(1); + pipeta = 1; //desaciona a pipeta + go_to_z(normal_z);//volta para a posicao normal de z + contador+=1; //contabiliza uma pipetagem } } -//Funcao da torina de execucao -void rotina_pino(float volume_solta, int tipo_do_pega, float medida_do_pega, float volume_do_pega, int contador, float pos_pino_x, float pos_pino_y){ - printf("Entrou na funcao de exec!"); - for(int i; i < volume_solta; i++){ - float altura = calcula_altura(tipo_do_pega,medida_do_pega, volume_do_pega, contador); - go_to_z(altura); - pipeta = 0; - wait(1); - pipeta = 1; - go_to_z(normal_z); - go_to_posicao(pos_pino_x,pos_pino_y); - go_to_z(altura_solta); - pipeta = 0; - wait(1); - pipeta = 1; - go_to_z(normal_z); - contador+=1; - } - printf("SAIU EXECC!!"); -} - //Função que troca de tela -void troca_tela(bool cond, void telas1(), void telas2(), float valort11, float valort12, float valort21, float valort22, int argumento){ - TextLCD lcd(D4, D5, D6, D7, D8, D9); - printf("Entrou funcao modifica solta!"); - while(cond){ +void troca_tela(bool condicao, void telas1(), void telas2(), float valort11, float valort12, float valort21, float valort22, int argumento){ + //telas1 e telas2 são as telas a serem alternadas + //valort11, 12, 21 e 22 são os valores que vão ser comparados para imprimir um OK no display + //argumento seria a quantidade de informações pedidas para o usuário + + TextLCD lcd(D4, D5, D6, D7, D8, D9); //inicializa o LCD + while(condicao){ telas1(); if(argumento == 1){ - if(valort11 !=0){ + if(valort11 !=0){ //comparação do valort11 lcd.locate(18,1); - lcd.printf("OK"); + lcd.printf("OK");//para caso o usuário tenha inputado um valort11 diferente de 0. A mesma lógica é usada para valort12, 21 e 22. } } else if(argumento >= 2){ @@ -212,11 +203,14 @@ } } wait(2); + + //Foi adicionado um refresh de tecla para que o usuário possa escolher um comando apresentado na tela tecla = pega_tecla(); + //Caso tecla seja diferente de 'k', as telas param de alternar if(tecla!='k'){ - printf("entrou no if"); - cond = 0; + condicao = 0; } + telas2(); if(argumento == 3){ if(valort21!=0){ @@ -232,31 +226,33 @@ } } wait(2); + tecla = pega_tecla(); if(tecla!='k'){ - printf("entrou no if"); - cond = 0; + condicao = 0; } }; } //Funcao que será chamada na interrupcao da queda do botao de emergencia void emergencia(){TextLCD lcd(D4, D5, D6, D7, D8, D9); - rele2 = 0; //desligamento eletrico dos motores - eixox = 0b0000; //desligamento do motor do eixo x a partir do zeramento do estado de todas as suas bobinas - eixoy = 0b0000; //desligamento do motor do eixo x a partir do zeramento do estado de todas as suas bobinas - eixoz = 0b0000; //desligamento do motor do eixo x a partir do zeramento do estado de todas as suas bobinas - lcd.cls();lcd.printf("EMERGENCIA ACIONADA"); //aviso da situacao de emergencia da maquina - lcd.locate(0,1);lcd.printf("Desarme o botao"); - lcd.locate(0,2);lcd.printf("e pressione B para"); - lcd.locate(0,3);lcd.printf("prosseguir"); - wait(1);} + rele2 = 0; //desligamento eletrico dos motores + eixox = 0b0000; //desligamento do motor do eixo x a partir do zeramento do estado de todas as suas bobinas + eixoy = 0b0000; //desligamento do motor do eixo x a partir do zeramento do estado de todas as suas bobinas + eixoz = 0b0000; //desligamento do motor do eixo x a partir do zeramento do estado de todas as suas bobinas + lcd.cls();lcd.printf("EMERGENCIA ACIONADA"); //aviso da situacao de emergencia da maquina + lcd.locate(0,1);lcd.printf("Desarme o botao"); + lcd.locate(0,2);lcd.printf("e pressione B para"); + lcd.locate(0,3);lcd.printf("prosseguir"); + wait(1); +} //Funcao de zeramento, chamada assim que a maquina liga e impede que o codigo entre no while(1) enquanto nao for 100% executada. //Ela aciona os motores ate que o fim de curso seja atingido e pressionado, além de zerar todas as coordenadas dos eixos quando os fins de curso são acionados. void zeramento(){ while (fdc_x != 0){for(int i = 0; i < 4; i++){eixox = hor[i];wait(t_motor);est_x = 1;}} while (fdc_y != 0){for(int i = 0; i < 4; i++){eixoy = hor[i];wait(t_motor);est_y = 1;}} - while (fdc_z != 0){for(int i = 0; i < 4; i++){eixoz = hor[i];wait(t_motor);est_z = 1;}}} + while (fdc_z != 0){for(int i = 0; i < 4; i++){eixoz = hor[i];wait(t_motor);est_z = 1;}} +} //Variaveis para operacao IHM using std::string; @@ -266,32 +262,33 @@ int programa = 0; //A variável programa remete a que programa salvo o usuário deseja acessar //Informações sobre o pega a serem armazenadas no array do programa que está sendo construido pelo usuário -float pos_x_pega[30]; -float pos_y_pega [30]; -float medida_lado_pega[30]; -float volume_pega[30]; -int tipo_pega[30]; -int nome_programa[30]; +//O comprimento de cada array é de 6 pois podem ser "salvos" apenas 6 programas +float pos_x_pega[6]; +float pos_y_pega [6]; +float medida_lado_pega[6]; +float volume_pega[6]; +int tipo_pega[6]; +int nome_programa[6]; //parametros que são de confirmação -int confirmacao_vol_solta[30]; -int confirmacao_vol_pega[30]; -int confirmacao_pos_solta[30]; -int confirmacao_pos_pega[30]; +int confirmacao_vol_solta[6]; +int confirmacao_vol_pega[6]; +int confirmacao_pos_solta[6]; +int confirmacao_pos_pega[6]; //Informações sobre os solta's a serem armazenadas no array do programa que está sendo construido pelo usuário -float dimensao_solta[30]; -float volume_solta_1[30]; -float volume_solta_2[30]; -float volume_solta_3[30]; -float volume_solta_4[30]; -float volume_solta_5[30]; -float volume_solta_6[30]; -float volume_solta_7[30]; -float volume_solta_8[30]; -float volume_solta_9[30]; -float pos_x_solta[30]; -float pos_y_solta[30]; +float dimensao_solta[6]; +float volume_solta_1[6]; +float volume_solta_2[6]; +float volume_solta_3[6]; +float volume_solta_4[6]; +float volume_solta_5[6]; +float volume_solta_6[6]; +float volume_solta_7[6]; +float volume_solta_8[6]; +float volume_solta_9[6]; +float pos_x_solta[6]; +float pos_y_solta[6]; //Função que coloca OK nas telas de salvo_agree1() void ok_agree1(){ @@ -317,32 +314,33 @@ //main int main() { - interrupcao.fall(&emergencia); - fdc_x.fall(&lim_x); - fdc_y.fall(&lim_y); - fdc_z.fall(&lim_z); - fdc_x.rise(&reseta_eixo); - fdc_y.rise(&reseta_eixo); + interrupcao.fall(&emergencia); //faz a leitura de inturrupção logo depois que o botão é pressionado e executa a rotina de emergência + fdc_x.fall(&lim_x); //faz a leitura de inturrupção do fdc_x logo depois que o botão é pressionado e executa lim_x + fdc_y.fall(&lim_y); //faz a leitura de inturrupção do fdc_y logo depois que o botão é pressionado e executa lim_y + fdc_z.fall(&lim_z); //faz a leitura de inturrupção do fdc_z logo depois que o botão é pressionado e executa a lim_z + fdc_x.rise(&reseta_eixo); //faz a leitura de inturrupção do fdc_x logo depois que o botão é soltado e executa o reseta_eixo fdc_z.rise(&reseta_eixo); - int volume; //variaveis que precisam ser construídas de modo global + //Variáveis de iteração (serão utilizadas como variável nos cálculos para depois, fornecer o valor para o pega e os soltas) + int volume; int volume_solta; int diametro_solta; int diametro; int comprimento_quad; - bool continuar; + bool continuar; //condicao de verdade para loops que serão utilizados int multiplicador = 10; TextLCD lcd(D4, D5, D6, D7, D8, D9); //Pinos para ligar o display à NUCLEO //Tela inicial lcd.printf("Bem-vindo ao Pipemax"); - lcd.locate(3,1); + lcd.locate(3,1); //funcao que posiciona o texto na tela lcd.printf("o seu sistema"); lcd.locate(4,2); lcd.printf("automatizado"); lcd.locate(3,3); lcd.printf("de pipetagem"); wait(3); - lcd.cls(); + lcd.cls(); //funcao que limpa a tela + //tela de espera do zeramento do sistema, enquanto ele não for aceito, a maquina nao pode operar lcd.printf("Por favor, aceite"); lcd.locate(0,1); @@ -351,7 +349,8 @@ lcd.printf("sistema"); lcd.locate(0,3); lcd.printf("A - proximo"); - + + //ピペマックス //Loop principal while(1) { printf("\n ihm: %s",est_ihm); @@ -366,13 +365,16 @@ if(tecla == 'A' && status_tela == "zeramento"){ zeramento(); status_tela = "inicio"; - funcao_inicio();} + funcao_inicio(); + } + //Tirar essa parte???#############################################################################3 //Caso nenhum botão esteja apertado, os motores devem permanecer parados if(x_mais && x_menos && y_mais && y_menos && z_mais && z_menos != 0){ for(int i = 0; i < 4; i++){eixox = parado[i];} for(int i = 0; i < 4; i++){eixoy = parado[i];} - for(int i = 0; i < 4; i++){eixoz = parado[i];}} + for(int i = 0; i < 4; i++){eixoz = parado[i];} + } tecla = pega_tecla();//Atualiza a variável tecla @@ -381,7 +383,9 @@ 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);} + //alternar entre as telas funcao_pega1 e funcao_pega2 (itens 2 e 3 da função) + 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; @@ -413,19 +417,19 @@ status_tela = "salvo_confirmacao"; 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); programa = 1; - } + } else if(tecla =='2' && status_tela =="salvo"){ status_tela = "salvo_confirmacao"; continuar = 1; 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); programa = 2; - } + } else if(tecla =='3' && status_tela =="salvo"){ continuar = 1; status_tela = "salvo_confirmacao"; 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); programa = 3; - } + } else if(tecla =='4' && status_tela =="salvo"){ continuar = 1; 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); @@ -436,18 +440,18 @@ status_tela = "salvo_confirmacao"; 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); programa = 5; - } + } else if(tecla =='6' && status_tela =="salvo"){ continuar = 1; status_tela = "salvo_confirmacao"; 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); programa = 6; - } + } else if(tecla =='B' && status_tela =="salvo"){ status_tela = "inicio"; continuar = 1; funcao_inicio(); - } + } tecla = pega_tecla();//Atualiza a variável tecla @@ -541,17 +545,17 @@ status_tela="salvo_conf_vol_pega";} else if(tecla =='4' && status_tela =="salvo_confirmacao"){ funcao_salvo_agree_solta_vol(); //volumes configurados por cada pipeta. (programa.vol_solta_pipeta) - lcd.locate(1,0);lcd.printf("%d",volume_solta_1[programa]); - lcd.locate(8,0);lcd.printf("%d",volume_solta_2[programa]); - lcd.locate(16,0);lcd.printf("%d",volume_solta_3[programa]); + lcd.locate(1,0);lcd.printf("%g",volume_solta_1[programa]); + lcd.locate(8,0);lcd.printf("%g",volume_solta_2[programa]); + lcd.locate(16,0);lcd.printf("%g",volume_solta_3[programa]); - lcd.locate(1,1);lcd.printf("%d",volume_solta_4[programa]); - lcd.locate(8,1);lcd.printf("%d",volume_solta_5[programa]); - lcd.locate(16,1);lcd.printf("%d",volume_solta_6[programa]); + lcd.locate(1,1);lcd.printf("%g",volume_solta_4[programa]); + lcd.locate(8,1);lcd.printf("%g",volume_solta_5[programa]); + lcd.locate(16,1);lcd.printf("%g",volume_solta_6[programa]); - lcd.locate(1,2);lcd.printf("%d",volume_solta_7[programa]); - lcd.locate(8,2);lcd.printf("%d",volume_solta_8[programa]); - lcd.locate(16,2);lcd.printf("%d",volume_solta_9[programa]); + lcd.locate(1,2);lcd.printf("%g",volume_solta_7[programa]); + lcd.locate(8,2);lcd.printf("%g",volume_solta_8[programa]); + lcd.locate(16,2);lcd.printf("%g",volume_solta_9[programa]); status_tela="salvo_conf_vol_solta";} else if(tecla =='B' && status_tela =="salvo_confirmacao"){ funcao_salvo1(); @@ -693,17 +697,17 @@ funcao_salvo_vol_solta_modifica(); wait(5); funcao_salvo_agree_solta_vol(); - lcd.locate(2,0);lcd.printf("%d",volume_solta_1[programa]); - lcd.locate(9,0);lcd.printf("%d",volume_solta_2[programa]); - lcd.locate(17,0);lcd.printf("%d",volume_solta_3[programa]); + lcd.locate(2,0);lcd.printf("%g",volume_solta_1[programa]); + lcd.locate(9,0);lcd.printf("%g",volume_solta_2[programa]); + lcd.locate(17,0);lcd.printf("%g",volume_solta_3[programa]); - lcd.locate(2,1);lcd.printf("%d",volume_solta_4[programa]); - lcd.locate(9,1);lcd.printf("%d",volume_solta_5[programa]); - lcd.locate(17,1);lcd.printf("%d",volume_solta_6[programa]); + lcd.locate(2,1);lcd.printf("%g",volume_solta_4[programa]); + lcd.locate(9,1);lcd.printf("%g",volume_solta_5[programa]); + lcd.locate(17,1);lcd.printf("%g",volume_solta_6[programa]); - lcd.locate(2,2);lcd.printf("%d",volume_solta_7[programa]); - lcd.locate(9,2);lcd.printf("%d",volume_solta_8[programa]); - lcd.locate(17,2);lcd.printf("%d",volume_solta_9[programa]); + lcd.locate(2,2);lcd.printf("%g",volume_solta_7[programa]); + lcd.locate(9,2);lcd.printf("%g",volume_solta_8[programa]); + lcd.locate(17,2);lcd.printf("%g",volume_solta_9[programa]); bool cleber = 1; while(cleber){ tecla = pega_tecla(); @@ -714,8 +718,7 @@ volume = 0; continuar = 1; lcd.locate(2,0); - modifica_solta(continuar, volume, 2, 0, volume_solta_1[programa]); - while(continuar){ // Pega o valor imputado pelo usuário + while(continuar){ // Pega o valor imputado pelo usuário printf("\n%c",pega_tecla()); tecla = pega_tecla(); wait(t_teclado); @@ -948,886 +951,778 @@ } //fim if(est_ihm) if(est_ihm == "pega"){ - //Ações para a tela novo - if(tecla =='1' && status_tela =="novo"){ - funcao_pega_forma(); - status_tela ="forma";} - - else if(tecla =='2' && status_tela == "novo"){ - volume = 0; - printf("\n%c",pega_tecla()); - funcao_pega_volume(); // Função que permite a entreda do valor de volume pelo usuário - status_tela = "volume"; - continuar = 1; - lcd.locate(6,1); - while(continuar){ - printf("\n%c",pega_tecla()); + + //Ações para a tela novo + if(tecla =='1' && status_tela =="novo"){ + funcao_pega_forma(); + status_tela ="forma"; + } + + else if(tecla =='2' && status_tela == "novo"){ + volume = 0; + printf("\n%c",pega_tecla()); + funcao_pega_volume(); // Função que permite a entreda do valor de volume pelo usuário + status_tela = "volume"; + continuar = 1; + lcd.locate(6,1); + while(continuar){ + printf("\n%c",pega_tecla()); + tecla = pega_tecla(); + wait(t_teclado); + if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ + volume = multiplicador*volume + ((int)tecla-48); + lcd.printf("%c", tecla); + } + else if(tecla == 'A'){ + volume_pega[programa] = volume; + lcd.locate(0,2); + printf("Volume inputado!"); + continuar = 0; + wait(1); + } + else if(tecla=='B'){ + funcao_pega1(); + if(medida_lado_pega !=0){ + lcd.locate(18,1);lcd.printf("OK"); + } + if(volume_pega !=0){ + lcd.locate(18,2);lcd.printf("OK"); + } + wait(1); + funcao_pega2(); + if(pos_y_pega[programa] !=0){ + lcd.locate(18,1);lcd.printf("OK"); + } + status_tela = "novo"; + continuar = 0; + } + } + } + else if(tecla == '3' && status_tela == "novo"){ + funcao_pega_pos_x(); + status_tela = "pos_x"; + continuar = 1; + while(continuar){ + tecla = pega_tecla(); + if(x_menos == 0){mov_x_menos(); + lcd.cls(); + lcd.printf("X: %4.1f", coord_x);} + else if(x_mais == 0){mov_x_mais(); + lcd.cls(); + lcd.printf("X: %4.1f", coord_x);} + if(tecla=='A'){ + pos_x_pega[programa] = coord_x; + continuar = 0; + printf("Posicao de y salva!"); + printf("Posicao X: %4.1f", coord_x); + } + } + } + else if(tecla == 'B' && status_tela == "novo"){ + funcao_inicio(); + status_tela = "inicio"; + } + else if(tecla == '1' && status_tela == "salvo"){ + funcao_salvo_agree1(); + ok_agree1(); + status_tela = "confirmacao"; + } + else if(tecla =='2' && status_tela == "salvo"){ + funcao_salvo_agree1(); + ok_agree1(); + status_tela = "confirmacao"; + } + else if(tecla =='B' && status_tela == "salvo"){ + funcao_inicio(); + status_tela = "inicio"; + } + + wait(t_teclado); + tecla = pega_tecla(); + + //Ações para a tela forma (para definir o formato do recipiente de pega) + if(tecla == '1' && status_tela == "forma"){ + wait(0.5); + funcao_pega_forma_quad(); + tipo_pega[programa] =1; tecla = pega_tecla(); wait(t_teclado); - if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ - volume = multiplicador*volume + ((int)tecla-48); - lcd.printf("%c", tecla); - } - else if(tecla == 'A'){ - volume_pega[programa] = volume; - lcd.locate(0,2); - printf("Volume inputado!"); - continuar = 0; - wait(1); - } - else if(tecla=='B'){ - funcao_pega1(); - if(medida_lado_pega !=0){ - lcd.locate(18,1);lcd.printf("OK"); - } - if(volume_pega !=0){ - lcd.locate(18,2);lcd.printf("OK"); - } - wait(1); - funcao_pega2(); - if(pos_y_pega[programa] !=0){ - lcd.locate(18,1);lcd.printf("OK"); - } - status_tela = "novo"; - continuar = 0; - } - } - } - else if(tecla == '3' && status_tela == "novo"){ - funcao_pega_pos_x(); - status_tela = "pos_x"; - continuar = 1; - while(continuar){ + status_tela ="forma_quad"; + continuar = 1; + comprimento_quad = 0; + lcd.locate(0,2); + while(continuar){ + printf("\n%c",pega_tecla()); tecla = pega_tecla(); - if(x_menos == 0){mov_x_menos(); - lcd.cls(); - lcd.printf("X: %4.1f", coord_x);} - else if(x_mais == 0){mov_x_mais(); - lcd.cls(); - lcd.printf("X: %4.1f", coord_x);} - if(tecla=='A'){ - pos_x_pega[programa] = coord_x; - continuar = 0; - printf("Posicao de y salva!"); - printf("Posicao X: %4.1f", coord_x);} - } + wait(t_teclado); + if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ + comprimento_quad = multiplicador*comprimento_quad + ((int)tecla - 48); + lcd.printf("%c",tecla); + } + else if(tecla == 'A'){ + continuar = 0; + medida_lado_pega[programa] = comprimento_quad; + printf("Comprimento inputado!"); + printf("\nComprimento: %d", comprimento_quad); + } + else if(tecla=='B'){ + funcao_pega_forma(); + status_tela = "forma"; + continuar = 0; + } + } } - else if(tecla == 'B' && status_tela == "novo"){ - funcao_inicio(); - status_tela = "inicio";} - else if(tecla == '1' && status_tela == "salvo"){ - funcao_salvo_agree1(); - ok_agree1(); - status_tela = "confirmacao";} - else if(tecla =='2' && status_tela == "salvo"){ - funcao_salvo_agree1(); - ok_agree1(); - status_tela = "confirmacao";} - else if(tecla =='B' && status_tela == "salvo"){ - funcao_inicio(); - status_tela = "inicio";} - - wait(t_teclado); - tecla = pega_tecla(); - - //Ações para a tela forma (para definir o formato do recipiente de pega) - if(tecla == '1' && status_tela == "forma"){ - wait(0.5); - funcao_pega_forma_quad(); - tipo_pega[programa] =1; - tecla = pega_tecla(); - wait(t_teclado); - status_tela ="forma_quad"; - continuar = 1; - comprimento_quad = 0; - lcd.locate(0,2); - while(continuar){ - printf("\n%c",pega_tecla()); + else if(tecla == '2' && status_tela == "forma"){ + funcao_pega_forma_red(); + tipo_pega[programa] = 2; tecla = pega_tecla(); wait(t_teclado); - if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ - comprimento_quad = multiplicador*comprimento_quad + ((int)tecla - 48); - lcd.printf("%c",tecla); + continuar = 1; + diametro = 0; + status_tela = "forma_red"; + lcd.locate(0,2); + while(continuar){ + tecla = pega_tecla(); + wait(t_teclado); + if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ + diametro = multiplicador*diametro + ((int)tecla - 48); + lcd.printf("%c",tecla); + } + else if(tecla == 'A'){ + continuar = 0; + medida_lado_pega[programa] = diametro; + printf("Diametro inputado!"); + printf("Diametro: %d", diametro); + } + else if(tecla=='B'){ + funcao_pega_forma(); + status_tela = "forma"; + continuar = 0; + } } - else if(tecla == 'A'){ - continuar = 0; - medida_lado_pega[programa] = comprimento_quad; - printf("Comprimento inputado!"); - printf("\nComprimento: %d", comprimento_quad); - } - else if(tecla=='B'){ - funcao_pega_forma(); - status_tela = "forma"; - continuar = 0;} + } + else if(tecla == 'B' && status_tela == "forma"){ + status_tela = "novo"; + continuar = 1; + troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3); + } + + tecla = pega_tecla(); + + //Ações para a tela forma_quad, para detalhes sobre o formato quadrado + if(tecla == 'A' && status_tela == "forma_quad"){ + status_tela ="novo"; + continuar = 1; + troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3); + } + else if(tecla == 'B' && status_tela == "forma_quad"){ + funcao_pega_forma(); + status_tela = "forma"; + } + else if(tecla == 'A' && status_tela == "forma_red"){ + continuar = 1; + 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 == 'B' && status_tela == "forma_red"){ + funcao_pega_forma(); + status_tela = "forma"; + } + else if(tecla == 'A' && status_tela == "volume"){ + volume_pega[programa] = 12; + status_tela ="novo"; + continuar = 1; + troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3); + } + else if( tecla == 'B' && status_tela == "volume"){ + funcao_pega_forma(); + status_tela = "forma"; + } + else if(tecla == 'A' && status_tela == "pos_x"){ //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + funcao_pega_pos_y(); //colocar programacao que contem o posicionamento do eixo y + status_tela = "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_pega[programa] = coord_y; + printf("Posicao de y salva!"); + printf("Posicao Y: %4.1f", coord_y); + continuar = 0; + } } } - else if(tecla == '2' && status_tela == "forma"){ - funcao_pega_forma_red(); - tipo_pega[programa] = 2; + else if(tecla == 'B' && status_tela == "pos_x"){ ///!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + status_tela = "novo"; + continuar = 1; + troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3); + } + tecla = pega_tecla(); - wait(t_teclado); - continuar = 1; - diametro = 0; - status_tela = "forma_red"; - lcd.locate(0,2); - while(continuar){ - tecla = pega_tecla(); - wait(t_teclado); - if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ - diametro = multiplicador*diametro + ((int)tecla - 48); - lcd.printf("%c",tecla); + // wait(t_teclado); + + //Ações para a tela pos_y + if(tecla == 'A' && status_tela == "pos_y"){ + status_tela ="novo"; + continuar = 1; + troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3); + } + else if(tecla == 'B' && status_tela == "pos_y"){ + funcao_pega_pos_x(); + status_tela = "pos_x"; + continuar = 1; + while(continuar){ + tecla = pega_tecla(); + if(x_menos == 0){mov_x_menos(); + lcd.cls(); + lcd.printf("X: %4.1f", coord_x); + } + else if(x_mais == 0){mov_x_mais(); + lcd.cls(); + lcd.printf("X: %4.1f", coord_x); + } + if(tecla=='A'){ + continuar = 0; + printf("Posicao de x salva!"); + printf("Posicao X: %4.1f", coord_x); + } } - else if(tecla == 'A'){ - continuar = 0; - medida_lado_pega[programa] = diametro; - printf("Diametro inputado!"); - printf("Diametro: %d", diametro); - } - else if(tecla=='B'){ - funcao_pega_forma(); - status_tela = "forma"; - continuar = 0;} - } - } - else if(tecla == 'B' && status_tela == "forma"){ - status_tela = "novo"; - continuar = 1; - troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3); - } - - tecla = pega_tecla(); - - //Ações para a tela forma_quad, para detalhes sobre o formato quadrado - if(tecla == 'A' && status_tela == "forma_quad"){ - status_tela ="novo"; - continuar = 1; - troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3); + } + 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); } - else if(tecla == 'B' && status_tela == "forma_quad"){ - funcao_pega_forma(); - status_tela = "forma";} - else if(tecla == 'A' && status_tela == "forma_red"){ - continuar = 1; - 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 == 'B' && status_tela == "forma_red"){ - funcao_pega_forma(); - status_tela = "forma";} - else if(tecla == 'A' && status_tela == "volume"){ - volume_pega[programa] = 12; - status_tela ="novo"; - continuar = 1; - troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);} - else if( tecla == 'B' && status_tela == "volume"){ - funcao_pega_forma(); - status_tela = "forma";} - else if(tecla == 'A' && status_tela == "pos_x"){ //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - funcao_pega_pos_y(); //colocar programacao que contem o posicionamento do eixo y - status_tela = "pos_y"; - continuar = 1; - wait(1); - while(continuar){ + }//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(); + continuar = 1; + diametro_solta = 0; + status_tela="solta_dimensao"; + lcd.locate(0,2); + while(continuar){ + tecla = pega_tecla(); + wait(t_teclado); + if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ + diametro_solta = multiplicador*diametro_solta + ((int)tecla - 48); + lcd.printf("%c",tecla); + } + else if(tecla == 'A'){ + printf("Diametro do solta inputado!"); + printf("Diametro do solta: %d", diametro_solta); + continuar = 0; + } + else if(tecla=='B'){ + funcao_pega_forma(); + 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); + } + } + } + + else if(tecla == '2' && status_tela == "solta"){ + funcao_solta_vol(); + status_tela="solta_vol"; + } + else if(tecla == '1' && status_tela == "solta_vol"){ + funcao_solta_vol_igual(); + status_tela = "solta_vol_igual"; + lcd.locate(0,2); + continuar = 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_pega[programa] = coord_y; - printf("Posicao de y salva!"); - printf("Posicao Y: %4.1f", coord_y); - continuar = 0;} - } + wait(t_teclado); + if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ + volume_solta = multiplicador*volume_solta + ((int)tecla - 48); + lcd.printf("%c",tecla); + } + else if(tecla == 'A'){ + printf("Volume solta inputado!"); + printf("Volume: %d", volume_solta); + continuar = 0; + volume_solta_1[programa]=volume; + volume_solta_2[programa]=volume; + volume_solta_3[programa]=volume; + volume_solta_4[programa]=volume; + volume_solta_5[programa]=volume; + volume_solta_6[programa]=volume; + volume_solta_7[programa]=volume; + volume_solta_8[programa]=volume; + volume_solta_9[programa]=volume; + } + else if(tecla=='B'){ + funcao_solta_vol(); + status_tela = "solta"; + continuar = 0; + } + } } - else if(tecla == 'B' && status_tela == "pos_x"){ ///!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - status_tela = "novo"; - continuar = 1; - troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);} - tecla = pega_tecla(); -// wait(t_teclado); - //passando direto - - //Ações para a tela pos_y - if(tecla == 'A' && status_tela == "pos_y"){ - status_tela ="novo"; - continuar = 1; - troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3); + else if(tecla == '3' && status_tela == "solta"){ + funcao_solta_pos_x(); + status_tela="solta_pos_x"; + continuar = 1; + while(continuar){ + tecla = pega_tecla(); + if(x_menos == 0){mov_x_menos(); + lcd.cls(); + lcd.printf("X: %4.1f", coord_x); + } + else if(x_mais == 0){mov_x_mais(); + 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); + } + } + } + else if(tecla == 'B' && status_tela == "solta"){ + continuar = 1; + 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 == 'B' && status_tela == "pos_y"){ - funcao_pega_pos_x(); - status_tela = "pos_x"; - continuar = 1; - while(continuar){ - tecla = pega_tecla(); - if(x_menos == 0){mov_x_menos(); - lcd.cls(); - lcd.printf("X: %4.1f", coord_x);} - else if(x_mais == 0){mov_x_mais(); - lcd.cls(); - lcd.printf("X: %4.1f", coord_x);} - if(tecla=='A'){ - continuar = 0; - printf("Posicao de x salva!"); - printf("Posicao X: %4.1f", coord_x); - } + tecla=pega_tecla(); + //Ações para a tela solta_dimensao, para definir informações sobre a dimensão do solta + if(tecla=='A' && status_tela=="solta_dimensao"){ + dimensao_solta[programa] = 10; + continuar = 1; + status_tela="solta"; + troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3); } + else if(tecla=='B' && status_tela=="solta_dimensao"){ + continuar = 1; + status_tela="solta"; + troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3); + } + if(tecla=='1' && status_tela=="solta_vol"){ + funcao_solta_vol_igual(); + status_tela="solta_vol_igual"; } - - 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(); - continuar = 1; - diametro_solta = 0; - status_tela="solta_dimensao"; - lcd.locate(0,2); - while(continuar){ - tecla = pega_tecla(); - wait(t_teclado); - if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ - diametro_solta = multiplicador*diametro_solta + ((int)tecla - 48); - lcd.printf("%c",tecla); - } - else if(tecla == 'A'){ - printf("Diametro do solta inputado!"); - printf("Diametro do solta: %d", diametro_solta); - continuar = 0; - } - else if(tecla=='B'){ - funcao_pega_forma(); - 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); + else if(tecla=='2' && status_tela=="solta_vol"){ + funcao_solta_vol_cada(); + lcd.locate(11,0);lcd.printf("%g",volume_solta_1[programa]); + lcd.locate(14,0);lcd.printf("%g",volume_solta_2[programa]); + lcd.locate(17,0);lcd.printf("%g",volume_solta_3[programa]); + + lcd.locate(11,1);lcd.printf("%g",volume_solta_4[programa]); + lcd.locate(14,1);lcd.printf("%g",volume_solta_5[programa]); + lcd.locate(17,1);lcd.printf("%g",volume_solta_6[programa]); + + lcd.locate(11,2);lcd.printf("%g",volume_solta_7[programa]); + lcd.locate(14,2);lcd.printf("%g",volume_solta_8[programa]); + lcd.locate(17,2);lcd.printf("%g",volume_solta_9[programa]); + status_tela="solta_vol_dif"; + } + else if(tecla=='B' && status_tela=="solta_vol"){ + 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); + } + if(tecla=='A' && status_tela=="solta_pos_x"){ + funcao_solta_pos_y(); + 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(tecla == '2' && status_tela == "solta"){ - funcao_solta_vol(); - status_tela="solta_vol"; - } - else if(tecla == '1' && status_tela == "solta_vol"){ - funcao_solta_vol_igual(); - status_tela = "solta_vol_igual"; - lcd.locate(0,2); - continuar = 1; - while(continuar){ - tecla = pega_tecla(); - wait(t_teclado); - if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ - volume_solta = multiplicador*volume_solta + ((int)tecla - 48); - lcd.printf("%c",tecla); - } - else if(tecla == 'A'){ - printf("Volume solta inputado!"); - printf("Volume: %d", volume_solta); - continuar = 0; - volume_solta_1[programa]=volume; - volume_solta_2[programa]=volume; - volume_solta_3[programa]=volume; - volume_solta_4[programa]=volume; - volume_solta_5[programa]=volume; - volume_solta_6[programa]=volume; - volume_solta_7[programa]=volume; - volume_solta_8[programa]=volume; - volume_solta_9[programa]=volume; - } - else if(tecla=='B'){ - funcao_solta_vol(); - status_tela = "solta"; - continuar = 0; - } - } - } - - else if(tecla == '3' && status_tela == "solta"){ - funcao_solta_pos_x(); - status_tela="solta_pos_x"; - continuar = 1; - while(continuar){ - tecla = pega_tecla(); - if(x_menos == 0){mov_x_menos(); - lcd.cls(); - lcd.printf("X: %4.1f", coord_x);} - else if(x_mais == 0){mov_x_mais(); - 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); + 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"){ - continuar = 1; - 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=='B' && status_tela=="solta_pos_x"){ + 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); + } + + tecla=pega_tecla(); + if(tecla=='A' && status_tela=="solta_vol_igual"){ + 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); } - - tecla=pega_tecla(); - //Ações para a tela solta_dimensao, para definir informações sobre a dimensão do solta - if(tecla=='A' && status_tela=="solta_dimensao"){ - dimensao_solta[programa] = 10; - continuar = 1; - status_tela="solta"; - troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3); - } - else if(tecla=='B' && status_tela=="solta_dimensao"){ - continuar = 1; - status_tela="solta"; - troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3); - } - if(tecla=='1' && status_tela=="solta_vol"){ - funcao_solta_vol_igual(); - status_tela="solta_vol_igual"; + + else if(tecla=='B' && status_tela=="solta_vol_igual"){ + funcao_solta_vol(); + status_tela="solta_vol"; } - else if(tecla=='2' && status_tela=="solta_vol"){ - funcao_solta_vol_cada(); - lcd.locate(11,0);lcd.printf("%d",volume_solta_1[programa]); - lcd.locate(14,0);lcd.printf("%d",volume_solta_2[programa]); - lcd.locate(17,0);lcd.printf("%d",volume_solta_3[programa]); - - lcd.locate(11,1);lcd.printf("%d",volume_solta_4[programa]); - lcd.locate(14,1);lcd.printf("%d",volume_solta_5[programa]); - lcd.locate(17,1);lcd.printf("%d",volume_solta_6[programa]); + + if(tecla=='A' && status_tela=="solta_vol_dif"){ + 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); + } + else if(tecla =='B' && status_tela =="solta_vol_dif"){ + funcao_salvo_vol_solta_modifica(); + wait(5); + funcao_salvo_agree_solta_vol(); + lcd.locate(2,0);lcd.printf("%d",volume_solta_1[programa]); + lcd.locate(9,0);lcd.printf("%d",volume_solta_2[programa]); + lcd.locate(17,0);lcd.printf("%d",volume_solta_3[programa]); - lcd.locate(11,2);lcd.printf("%d",volume_solta_7[programa]); - lcd.locate(14,2);lcd.printf("%d",volume_solta_8[programa]); - lcd.locate(17,2);lcd.printf("%d",volume_solta_9[programa]); - status_tela="solta_vol_dif"; - } - else if(tecla=='B' && status_tela=="solta_vol"){ - 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); - } - if(tecla=='A' && status_tela=="solta_pos_x"){ - funcao_solta_pos_y(); - status_tela="solta_pos_y"; - continuar = 1; - wait(1); - while(continuar){ + lcd.locate(2,1);lcd.printf("%d",volume_solta_4[programa]); + lcd.locate(9,1);lcd.printf("%d",volume_solta_5[programa]); + lcd.locate(17,1);lcd.printf("%d",volume_solta_6[programa]); + + lcd.locate(2,2);lcd.printf("%d",volume_solta_7[programa]); + lcd.locate(9,2);lcd.printf("%d",volume_solta_8[programa]); + lcd.locate(17,2);lcd.printf("%d",volume_solta_9[programa]); + + bool cleber = 1; + while(cleber){ 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"; - continuar = 1; - troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3); - } + wait(t_teclado); + if(tecla != 'A'){ + if(tecla == '1' && status_tela=="solta_vol_dif"){ + printf("entrou if 1 salvo_conf"); + volume = 0; + continuar = 1; + lcd.locate(2,0); + while(continuar){ // Pega o valor imputado pelo usuário + printf("\n%c",pega_tecla()); + tecla = pega_tecla(); + wait(t_teclado); + if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ + if(volume*10 < 100) + { + volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro + lcd.printf("%c", tecla); + } + else{ + volume = 0; + lcd.locate(2,0); + } + } + else if(tecla == 'A'){ + tecla = 'k'; + continuar = 0; + volume_solta_1[programa]=volume; + } + } + } + else if(tecla=='2' && status_tela=="solta_vol_dif"){ + volume = 0; + continuar = 1; + multiplicador = 10; + lcd.locate(9,0); + while(continuar){ // Pega o valor imputado pelo usuário + printf("\n%c",pega_tecla()); + tecla = pega_tecla(); + wait(t_teclado); + if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ + if(volume*10 < 100){ + volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro + lcd.printf("%c", tecla); + } + else{ + volume = 0; + lcd.locate(9,0);} + } + else if(tecla == 'A'){ + continuar = 0; + volume_solta_2[programa]=volume; + } + } + } + else if(tecla=='3' && status_tela=="solta_vol_dif"){ + volume = 0; + continuar = 1; + multiplicador = 10; + lcd.locate(17,0); + while(continuar){ // Pega o valor imputado pelo usuário + printf("\n%c",pega_tecla()); + tecla = pega_tecla(); + wait(t_teclado); + if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ + if(volume*10 < 100){ + volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro + lcd.printf("%c", tecla); + } + else{ + volume = 0; + lcd.locate(17,0);} + } + else if(tecla == 'A'){ + continuar = 0; + volume_solta_3[programa]=volume; + } + } + } + else if(tecla=='4' && status_tela=="solta_vol_dif"){ + volume = 0; + continuar = 1; + multiplicador = 10; + lcd.locate(2,1); + while(continuar){ // Pega o valor imputado pelo usuário + printf("\n%c",pega_tecla()); + tecla = pega_tecla(); + wait(t_teclado); + if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ + if(volume*10 < 100){ + volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro + lcd.printf("%c", tecla); + } + else{ + volume = 0; + lcd.locate(2,1);} + } + else if(tecla == 'A'){ + continuar = 0; + volume_solta_4[programa]=volume; + } + } + } + else if(tecla=='5' && status_tela=="solta_vol_dif"){ + volume = 0; + continuar = 1; + multiplicador = 10; + lcd.locate(9,1); + while(continuar){ // Pega o valor imputado pelo usuário + printf("\n%c",pega_tecla()); + tecla = pega_tecla(); + wait(t_teclado); + if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ + if(volume*10 < 100){ + volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro + lcd.printf("%c", tecla); + } + else{ + volume = 0; + lcd.locate(9,1);} + } + else if(tecla == 'A'){ + continuar = 0; + volume_solta_5[programa]=volume; + } + } + } + else if(tecla=='6' && status_tela=="solta_vol_dif"){ + volume = 0; + continuar = 1; + multiplicador = 10; + lcd.locate(17,1); + while(continuar){ // Pega o valor imputado pelo usuário + printf("\n%c",pega_tecla()); + tecla = pega_tecla(); + wait(t_teclado); + if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ + if(volume*10 < 100){ + volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro + lcd.printf("%c", tecla); + } + else{ + volume = 0; + lcd.locate(17,1);} + } + else if(tecla == 'A'){ + continuar = 0; + volume_solta_6[programa]=volume; + } + } + } + else if(tecla=='7' && status_tela=="solta_vol_dif"){ + volume = 0; + continuar = 1; + multiplicador = 10; + lcd.locate(2,2); + while(continuar){ // Pega o valor imputado pelo usuário + printf("\n%c",pega_tecla()); + tecla = pega_tecla(); + wait(t_teclado); + if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ + if(volume*10 < 100){ + volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro + lcd.printf("%c", tecla); + } + else{ + volume = 0; + lcd.locate(2,2);} + } + else if(tecla == 'A'){ + continuar = 0; + volume_solta_7[programa]=volume; + } + } + } + else if(tecla=='8' && status_tela=="solta_vol_dif"){ + volume = 0; + continuar = 1; + multiplicador = 10; + lcd.locate(9,2); + while(continuar){ // Pega o valor imputado pelo usuário + printf("\n%c",pega_tecla()); + tecla = pega_tecla(); + wait(t_teclado); + if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ + if(volume*10 < 100){ + volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro + lcd.printf("%c", tecla); + } + else{ + volume = 0; + lcd.locate(9,2);} + } + else if(tecla == 'A'){ + continuar = 0; + volume_solta_8[programa]=volume; + } + } + } + else if(tecla=='9' && status_tela=="solta_vol_dif"){ + volume = 0; + continuar = 1; + multiplicador = 10; + lcd.locate(17,2); + while(continuar){ // Pega o valor imputado pelo usuário + printf("\n%c",pega_tecla()); + tecla = pega_tecla(); + wait(t_teclado); + if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ + if(volume*10 < 100){ + volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro + lcd.printf("%c", tecla); + } + else{ + volume = 0; + lcd.locate(17,2);} + } + else if(tecla == 'A'){ + continuar = 0; + volume_solta_9[programa]=volume; + } + } + } + else if(tecla == 'B' && status_tela == "solta_vol_dif"){ + funcao_solta_vol(); + status_tela = "solta_vol"; + cleber = 0; + } + }//fim do if (tecla !=A) + + else if(tecla == 'A'){ + printf("\nfalou clebao"); + cleber = 0; + } + }//fim do while(cleber) + confirmacao_vol_solta[programa]=1; + }//fim do else if(tecla =='B' && status_tela =="salvo_conf_vol_solta") - tecla=pega_tecla(); - if(tecla=='A' && status_tela=="solta_vol_igual"){ - 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); - } - else if(tecla=='B' && status_tela=="solta_vol_igual"){ - funcao_solta_vol(); - status_tela="solta_vol"; + if(tecla=='A' && status_tela=="solta_pos_y"){ + 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); } - - if(tecla=='A' && status_tela=="solta_vol_dif"){ - 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); + else if(tecla=='B' && status_tela=="solta_pos_y"){ + 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); } - else if(tecla =='B' && status_tela =="solta_vol_dif"){ - funcao_salvo_vol_solta_modifica(); - wait(5); - funcao_salvo_agree_solta_vol(); - lcd.locate(2,0);lcd.printf("%d",volume_solta_1[programa]); - lcd.locate(9,0);lcd.printf("%d",volume_solta_2[programa]); - lcd.locate(17,0);lcd.printf("%d",volume_solta_3[programa]); - - lcd.locate(2,1);lcd.printf("%d",volume_solta_4[programa]); - lcd.locate(9,1);lcd.printf("%d",volume_solta_5[programa]); - lcd.locate(17,1);lcd.printf("%d",volume_solta_6[programa]); - - lcd.locate(2,2);lcd.printf("%d",volume_solta_7[programa]); - lcd.locate(9,2);lcd.printf("%d",volume_solta_8[programa]); - lcd.locate(17,2);lcd.printf("%d",volume_solta_9[programa]); - bool cleber = 1; - while(cleber){ - tecla = pega_tecla(); - wait(t_teclado); - if(tecla != 'A'){ - if(tecla == '1' && status_tela=="solta_vol_dif"){ - printf("entrou if 1 salvo_conf"); - volume = 0; - continuar = 1; - lcd.locate(2,0); - while(continuar){ // Pega o valor imputado pelo usuário - printf("\n%c",pega_tecla()); + + //Ações para a tela acompanhamento (execução do programa) + //Matriz 3x3 (6x6cm) + int nome; + 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"){ + 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); + } + else if(tecla=='A' && status_tela=="nome_programa"){ + //!!!!!!!!!!!!!! colocar o códgio de pegar o valor do usuário + nome=1; + continuar=1; + while(continuar){ tecla = pega_tecla(); wait(t_teclado); if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ - if(volume*10 < 100) - { - volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro - lcd.printf("%c", tecla); - } - else{ - volume = 0; - lcd.locate(2,0);} + nome = multiplicador*nome + ((int)tecla - 48); + lcd.cls(); + lcd.printf("%d",nome); + lcd.locate(0,3); + lcd.printf("A-Confirmar B-Volta"); } else if(tecla == 'A'){ - tecla = 'k'; - continuar = 0; - volume_solta_1[programa]=volume; - } - } - } - else if(tecla=='2' && status_tela=="solta_vol_dif"){ - volume = 0; - continuar = 1; - multiplicador = 10; - lcd.locate(9,0); - while(continuar){ // Pega o valor imputado pelo usuário - printf("\n%c",pega_tecla()); - tecla = pega_tecla(); - wait(t_teclado); - if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ - if(volume*10 < 100){ - volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro - lcd.printf("%c", tecla); - } - else{ - volume = 0; - lcd.locate(9,0);} - } - else if(tecla == 'A'){ - continuar = 0; - volume_solta_2[programa]=volume; - } - } - } - else if(tecla=='3' && status_tela=="solta_vol_dif"){ - volume = 0; - continuar = 1; - multiplicador = 10; - lcd.locate(17,0); - while(continuar){ // Pega o valor imputado pelo usuário - printf("\n%c",pega_tecla()); - tecla = pega_tecla(); - wait(t_teclado); - if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ - if(volume*10 < 100){ - volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro - lcd.printf("%c", tecla); - } - else{ - volume = 0; - lcd.locate(17,0);} - } - else if(tecla == 'A'){ + printf("nome inserido"); + printf("nome: %d", nome); + funcao_acomp(); + est_ihm = "exec"; + status_tela="acompanhamento"; continuar = 0; - volume_solta_3[programa]=volume; - } - } - } - else if(tecla=='4' && status_tela=="solta_vol_dif"){ - volume = 0; - continuar = 1; - multiplicador = 10; - lcd.locate(2,1); - while(continuar){ // Pega o valor imputado pelo usuário - printf("\n%c",pega_tecla()); - tecla = pega_tecla(); - wait(t_teclado); - if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ - if(volume*10 < 100){ - volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro - lcd.printf("%c", tecla); - } - else{ - volume = 0; - lcd.locate(2,1);} - } - else if(tecla == 'A'){ - continuar = 0; - volume_solta_4[programa]=volume; + nome_programa[programa]=nome; + confirmacao_pos_pega[programa]=0; + confirmacao_pos_solta[programa]=0; + confirmacao_vol_pega[programa]=0; + confirmacao_pos_solta[programa]=0; } - } - } - else if(tecla=='5' && status_tela=="solta_vol_dif"){ - volume = 0; - continuar = 1; - multiplicador = 10; - lcd.locate(9,1); - while(continuar){ // Pega o valor imputado pelo usuário - printf("\n%c",pega_tecla()); - tecla = pega_tecla(); - wait(t_teclado); - if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ - if(volume*10 < 100){ - volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro - lcd.printf("%c", tecla); - } - else{ - volume = 0; - lcd.locate(9,1);} - } - else if(tecla == 'A'){ - continuar = 0; - volume_solta_5[programa]=volume; - } - } + } } - else if(tecla=='6' && status_tela=="solta_vol_dif"){ - volume = 0; - continuar = 1; - multiplicador = 10; - lcd.locate(17,1); - while(continuar){ // Pega o valor imputado pelo usuário - printf("\n%c",pega_tecla()); - tecla = pega_tecla(); - wait(t_teclado); - if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ - if(volume*10 < 100){ - volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro - lcd.printf("%c", tecla); - } - else{ - volume = 0; - lcd.locate(17,1);} - } - else if(tecla == 'A'){ - continuar = 0; - volume_solta_6[programa]=volume; - } - } - } - else if(tecla=='7' && status_tela=="solta_vol_dif"){ - volume = 0; - continuar = 1; - multiplicador = 10; - lcd.locate(2,2); - while(continuar){ // Pega o valor imputado pelo usuário - printf("\n%c",pega_tecla()); - tecla = pega_tecla(); - wait(t_teclado); - if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ - if(volume*10 < 100){ - volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro - lcd.printf("%c", tecla); - } - else{ - volume = 0; - lcd.locate(2,2);} - } - else if(tecla == 'A'){ - continuar = 0; - volume_solta_7[programa]=volume; - } - } - } - else if(tecla=='8' && status_tela=="solta_vol_dif"){ - volume = 0; - continuar = 1; - multiplicador = 10; - lcd.locate(9,2); - while(continuar){ // Pega o valor imputado pelo usuário - printf("\n%c",pega_tecla()); - tecla = pega_tecla(); - wait(t_teclado); - if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ - if(volume*10 < 100){ - volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro - lcd.printf("%c", tecla); - } - else{ - volume = 0; - lcd.locate(9,2);} - } - else if(tecla == 'A'){ - continuar = 0; - volume_solta_8[programa]=volume; - } - } - } - else if(tecla=='9' && status_tela=="solta_vol_dif"){ - volume = 0; - continuar = 1; - multiplicador = 10; - lcd.locate(17,2); - while(continuar){ // Pega o valor imputado pelo usuário - printf("\n%c",pega_tecla()); - tecla = pega_tecla(); - wait(t_teclado); - if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ - if(volume*10 < 100){ - volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro - lcd.printf("%c", tecla); - } - else{ - volume = 0; - lcd.locate(17,2);} - } - else if(tecla == 'A'){ - continuar = 0; - volume_solta_9[programa]=volume; - } - } - } - else if(tecla == 'B' && status_tela == "solta_vol_dif"){ - funcao_solta_vol(); - status_tela = "solta_vol"; - cleber = 0;} - }//fim do if (tecla !=A) - else if(tecla == 'A'){ - printf("\nfalou clebao"); - cleber = 0;} - }//fim do while(cleber) - confirmacao_vol_solta[programa]=1;}//fim do else if(tecla =='B' && status_tela =="salvo_conf_vol_solta") - - if(tecla=='A' && status_tela=="solta_pos_y"){ - 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); + }//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; + + //Aqui definimos a posição de cada solta a partir de um pinos. + float pos1[2] = {pos_x_solta[programa], pos_y_solta[programa]} ; //Pino referência + float pos2[2] = {pos_x_solta[programa]+2*medida_lado_pega[programa], pos_y_solta[programa]} ; + float pos3[2] = {pos_x_solta[programa]+4*medida_lado_pega[programa], pos_y_solta[programa]} ; + float pos4[2] = {pos_x_solta[programa], pos_y_solta[programa]+2*medida_lado_pega[programa]} ; + float pos5[2] = {pos_x_solta[programa]+2*medida_lado_pega[programa], pos_y_solta[programa]+2*medida_lado_pega[programa]} ; + float pos6[2] = {pos_x_solta[programa]+4*medida_lado_pega[programa], pos_y_solta[programa]+2*medida_lado_pega[programa]} ; + float pos7[2] = {pos_x_solta[programa], pos_y_solta[programa]+4*medida_lado_pega[programa]} ; + float pos8[2] = {pos_x_solta[programa]+2*medida_lado_pega[programa], pos_y_solta[programa]+4*medida_lado_pega[programa]} ; + float pos9[2] = {pos_x_solta[programa]+4*medida_lado_pega[programa], pos_y_solta[programa]+4*medida_lado_pega[programa]}; + + //Execução da rotina em cada pino + rotina_pino(volume_solta_1[programa], tipo_pega[programa], medida_lado_pega[programa], volume_pega[programa], cont_pipeta, pos1[0],pos1[1]); + rotina_pino(volume_solta_2[programa], tipo_pega[programa], medida_lado_pega[programa], volume_pega[programa], cont_pipeta, pos2[0],pos2[1]); + rotina_pino(volume_solta_3[programa], tipo_pega[programa], medida_lado_pega[programa], volume_pega[programa], cont_pipeta, pos3[0],pos3[1]); + rotina_pino(volume_solta_4[programa], tipo_pega[programa], medida_lado_pega[programa], volume_pega[programa], cont_pipeta, pos4[0],pos4[1]); + rotina_pino(volume_solta_5[programa], tipo_pega[programa], medida_lado_pega[programa], volume_pega[programa], cont_pipeta, pos5[0],pos5[1]); + rotina_pino(volume_solta_6[programa], tipo_pega[programa], medida_lado_pega[programa], volume_pega[programa], cont_pipeta, pos6[0],pos6[1]); + rotina_pino(volume_solta_7[programa], tipo_pega[programa], medida_lado_pega[programa], volume_pega[programa], cont_pipeta, pos7[0],pos7[1]); + rotina_pino(volume_solta_8[programa], tipo_pega[programa], medida_lado_pega[programa], volume_pega[programa], cont_pipeta, pos8[0],pos8[1]); + rotina_pino(volume_solta_9[programa], tipo_pega[programa], medida_lado_pega[programa], volume_pega[programa], cont_pipeta, pos9[0],pos9[1]); } - else if(tecla=='B' && status_tela=="solta_pos_y"){ - 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); - } - //Ações para a tela acompanhamento (execução do programa) - //MAtriz 3x3 (6x6cm) - int nome; - 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"){ - 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); - } - else if(tecla=='A' && status_tela=="nome_programa"){ - //!!!!!!!!!!!!!! colocar o códgio de pegar o valor do usuário - nome=1; - continuar=1; - while(continuar){ - tecla = pega_tecla(); - wait(t_teclado); - if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){ - nome = multiplicador*nome + ((int)tecla - 48); - lcd.cls(); - lcd.printf("%d",nome); - lcd.locate(0,3); - lcd.printf("A-Confirmar B-Volta"); - } - else if(tecla == 'A'){ - printf("nome inserido"); - printf("nome: %d", nome); - funcao_acomp(); - est_ihm = "exec"; - status_tela="acompanhamento"; - continuar = 0; - nome_programa[programa]=nome; - confirmacao_pos_pega[programa]=0; - confirmacao_pos_solta[programa]=0; - confirmacao_vol_pega[programa]=0; - confirmacao_pos_solta[programa]=0; - } - }} - }//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"){ - printf("Entrou em execucao"); - int cont_pipeta = 0; - 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}; - - - //Calcular a altura do pega com base no tipo do pega - rotina_pino(volume_solta_1[programa], tipo_pega[programa], medida_lado_pega[programa], volume_pega[programa], cont_pipeta, pos1[0],pos1[1]); - for(int i; i<volume_solta_2[programa];i++){ - altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta); - go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]); - wait(1); - go_to_z(altura); - wait(1); - pipeta = 0; - wait(1); - pipeta = 1; - wait(1); - go_to_z(normal_z); - wait(1); - go_to_posicao(pos2[0],pos2[1]); - wait(1); - go_to_z(altura_solta); - wait(1); - pipeta = 0; - wait(1); - pipeta = 1; - wait(1); - go_to_z(normal_z); - wait(1); - cont_pipeta+=1; - } - for(int i; i<volume_solta_3[programa];i++){ - altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta); - go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]); - wait(1); - go_to_z(altura); - wait(1); - pipeta = 0; - wait(1); - pipeta = 1; - wait(1); - go_to_z(normal_z); - wait(1); - go_to_posicao(pos3[0],pos3[1]); - wait(1); - go_to_z(altura_solta); - wait(1); - pipeta = 0; - wait(1); - pipeta = 1; - wait(1); - go_to_z(normal_z); - wait(1); - cont_pipeta+=1; - - } - for(int i; i<volume_solta_4[programa];i++){ - altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta); - go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]); - go_to_z(altura); - pipeta = 0; - wait(1); - pipeta = 1; - go_to_z(normal_z); - go_to_posicao(pos4[0],pos4[1]); - go_to_z(altura_solta); - pipeta = 0; - wait(1); - pipeta = 1; - go_to_z(normal_z); - cont_pipeta+=1; - } - for(int i; i<volume_solta_5[programa];i++){ - altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta); - go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]); - go_to_z(altura); - pipeta = 0; - wait(1); - pipeta = 1; - go_to_z(normal_z); - go_to_posicao(pos5[0],pos5[1]); - go_to_z(altura_solta); - pipeta = 0; - wait(1); - pipeta = 1; - go_to_z(normal_z); - cont_pipeta+=1; - - } - for(int i; i<volume_solta_6[programa];i++){ - altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta); - go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]); - go_to_z(altura); - pipeta = 0; - wait(1); - pipeta = 1; - go_to_z(normal_z); - go_to_posicao(pos6[0],pos6[1]); - go_to_z(altura_solta); - pipeta = 0; - wait(1); - pipeta = 1; - go_to_z(normal_z); - cont_pipeta+=1; - - } - for(int i; i<volume_solta_7[programa];i++){ - altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta); - go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]); - go_to_z(altura); - pipeta = 0; - wait(1); - pipeta = 1; - go_to_z(normal_z); - go_to_posicao(pos7[0],pos7[1]); - go_to_z(altura_solta); - pipeta = 0; - wait(1); - pipeta = 1; - go_to_z(normal_z); - cont_pipeta+=1; - - } - for(int i; i<volume_solta_8[programa];i++){ - altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta); - go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]); - go_to_z(altura); - pipeta = 0; - wait(1); - pipeta = 1; - go_to_z(normal_z); - go_to_posicao(pos8[0],pos8[1]); - go_to_z(altura_solta); - pipeta = 0; - wait(1); - pipeta = 1; - go_to_z(normal_z); - cont_pipeta+=1; - } - for(int i; i<volume_solta_9[programa];i++){ - altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta); - go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]); - go_to_z(altura); - pipeta = 0; - wait(1); - pipeta = 1; - go_to_z(normal_z); - go_to_posicao(pos9[0],pos9[1]); - go_to_z(altura_solta); - pipeta = 0; - wait(1); - pipeta = 1; - go_to_z(normal_z); - cont_pipeta+=1; - }} - - }//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 + }//fim do while(1) +}//fim do int main \ No newline at end of file