Teste de Tela

Dependencies:   BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG mbed

Revision:
2:ae8636da1252
Parent:
1:c04c41de6eef
--- a/main.cpp	Fri Jun 30 20:22:56 2017 +0000
+++ b/main.cpp	Fri Dec 08 19:17:27 2017 +0000
@@ -1,193 +1,883 @@
+#if !FEATURE_LWIP
+    #error [NOT_SUPPORTED] LWIP not supported for this target
+#endif
+
 #include "mbed.h"
-#include "TS_DISCO_F746NG.h"
-#include "LCD_DISCO_F746NG.h"
-#include "codigoBotaoReset.h"
-#include "logo.h"
-#define TEMPO_PRESSIONADO_BOTAO 0.01000f
+#include "image.h"
+#include "stdlib.h"
+#include "EthernetInterface.h"
+#include "TCPServer.h"
+#include "TCPSocket.h"
+#include "tela.h"
+#include "hardware.h"
+#include <string> 
+//@Início includes do http-exampleNew
+#include "http_request.h"
+#include "mbed_stats.h"
+//@Início constantes
+const char*          mbedIp       = "192.168.0.130";  //IP
+const char*          mbedMask     = "255.255.255.0";  // Mask
+const char*          mbedGateway  = "192.168.0.1";    //Gateway
+//@Fim Pinos Globais
 
-LCD_DISCO_F746NG lcd;
+//@Início Variáveis MBED
+
+
 TS_DISCO_F746NG ts;
 TS_StateTypeDef TS_State;
-Serial pc (USBTX, USBRX);
+LCD_DISCO_F746NG lcd;
+Serial pc(USBTX, USBRX); // tx, rx
+Thread thread;
+EthernetInterface eth;
+TCPServer srv;
+TCPSocket clt_sock;
+SocketAddress clt_addr;
+//@Fim Variáveis MBED
+//Funcoes de controle de tela
+void desenhaTelaInicial(void);
+//Funcoes CallBack
+void botaoSetVoltasTopo_callback(void);
+void botaoSetNumeroCantos_callback(void);
+void botaoSetAlturaCamada_callback(void);
+void botaoSetVoltasBase_callback(void);
+void botao0_callback(void);
+void botao1_callback(void);
+void botao2_callback(void);
+void botao3_callback(void);
+void botao4_callback(void);
+void botao5_callback(void);
+void botao6_callback(void);
+void botao7_callback(void);
+void botao8_callback(void);
+void botao9_callback(void);
+void botaoPonto_callback(void);
+void botaoBackspace_callback(void);
+void botaoSave_callback(void);
+void botaoErase_callback(void);
+void botaoBack_callback(void);
+void botaoResetCargaBateria_callback(void);
+void postValor(string campo, string valor);
+void postValores(string campo1, string valor1,string campo2, string valor2);
+void desenrola(int comando);
+void upDown(int comando);
+//@Início Variáveis Globais
 
-typedef struct{
-    uint16_t x;
-    uint16_t y;
-    uint16_t largura;
-    uint16_t altura;
-}dadosRetanguloBase;
+//Variáveis de controle
+//Guarda o estado do processo da tela inicial
+int status = 0;
+//Tela corrente
+int tela = 0;
+int comandoAnteriorUpDown = 0;
+int comandoAnteriorDesenrola = 0;
+bool atualizarTela = false;
+bool redeOnline = false;
+bool paginaOnline = false;
+bool telaRedeOnline = false;
+bool atualizarValores = true;
+bool mostrarValores = true;
+string estado = "0";
+string set_voltas_topo = "0";
+string set_numero_cantos = "0";
+string set_altura_camada = "0";
+string set_voltas_base = "0";
+string disp_num_cantos = "0";
+string disp_altura_camada = "0";
+string sobe_elevador = "0";
+string desce_elevador = "0";
+string reset_bateria = "0";
+string libera_filme = "0";
+string leitura = "";
+string valorTemporario = "";
+string cookie = "";
+//Estrutura das imagens (Tamanho e cor de fundo para Key)
+dadosImagem imgBotaoResetCargaBateria = {158, 12, 0xffffffff};
+dadosImagem imgBotaoResetCargaBateriaClk = {158, 12, 0xff1c7d5a};
+dadosImagem imgBotaoBackspace = {24, 24, 0xffffffff};
+dadosImagem imgWarning = {24, 24, 0xffffffff};
+dadosImagem imgTxt0 = {16, 23, 0xffffffff};
+dadosImagem imgTxt1 = {16, 23, 0xffffffff};
+dadosImagem imgTxt2 = {16, 23, 0xffffffff};
+dadosImagem imgTxt3 = {16, 23, 0xffffffff};
+dadosImagem imgTxt4 = {16, 23, 0xffffffff};
+dadosImagem imgTxt5 = {16, 23, 0xffffffff};
+dadosImagem imgTxt6= {16, 23, 0xffffffff};
+dadosImagem imgTxt7 = {16, 23, 0xffffffff};
+dadosImagem imgTxt8 = {16, 23, 0xffffffff};
+dadosImagem imgTxt9 = {16, 23, 0xffffffff};
+dadosImagem imgTxtPonto = {8, 7, 0xffffffff};
+dadosImagem imgBotaoBackspaceClk = {24, 24, 0xff1c7d5a};
+dadosImagem imgBotaoSave = {24, 24, 0xffffffff};
+dadosImagem imgBotaoErase = {24, 24, 0xffffffff};
+dadosImagem imgBotaoBack = {24, 24, 0xffffffff};
+dadosImagem imgBotaoDesenrolar = {32, 32, 0xffffffff};
+dadosImagem imgBotaoUp = {24, 32, 0xffffffff};
+dadosImagem imgBotaoDown = {24, 32, 0xffffffff};
+dadosImagem imgTxt0Clk = {16, 23, 0xff1c7d5a};
+dadosImagem imgTxt1Clk = {16, 23, 0xff1c7d5a};
+dadosImagem imgTxt2Clk = {16, 23, 0xff1c7d5a};
+dadosImagem imgTxt3Clk = {16, 23, 0xff1c7d5a};
+dadosImagem imgTxt4Clk = {16, 23, 0xff1c7d5a};
+dadosImagem imgTxt5Clk = {16, 23, 0xff1c7d5a};
+dadosImagem imgTxt6Clk = {16, 23, 0xff1c7d5a};
+dadosImagem imgTxt7Clk = {16, 23, 0xff1c7d5a};
+dadosImagem imgTxt8Clk = {16, 23, 0xff1c7d5a};
+dadosImagem imgTxt9Clk = {16, 23, 0xff1c7d5a};
+dadosImagem imgTxtPontoClk = {8, 7, 0xff1c7d5a};
 
-   
-typedef struct{
-    dadosRetanguloBase retanguloObjeto;
-    uint16_t valor;
-    bool updateFlag;
-}barra;
+
+//Estrutura da área de Mensagem(Localização e tamanho)
 
-typedef struct{
-    dadosRetanguloBase retanguloObjeto;
-    bool isPressed;
-    bool updateFlag;
-    Timer depressTime;
-}botao;
+//Estrutura dos botões(Localização e tamanho)
+dadosRetanguloBase baseBotaoResetCargaBateria = { 120, 210, 230, 40};
+dadosRetanguloBase baseBotaoSetVoltasTopo = { 20, 60, 90, 30};
+dadosRetanguloBase baseBotaoSetNumeroCantos = { 20, 95, 90, 30};
+dadosRetanguloBase baseBotaoSetAlturaCamada = { 20, 130, 90, 30};
+dadosRetanguloBase baseBotaoSetVoltasBase = { 20, 165, 90, 30};
+dadosRetanguloBase baseBotaoSave = {381, 171, 79, 79};
+dadosRetanguloBase baseBotaoDown = {381, 111, 79, 39};
+dadosRetanguloBase baseBotaoBack = {381, 61, 79, 39};
+dadosRetanguloBase baseBotaoBackPrincipal = {381, 61, 79, 39};
+dadosRetanguloBase baseBotao1 = { 26, 206, 75, 42};
+dadosRetanguloBase baseBotao2 = { 107, 206, 75, 42};
+dadosRetanguloBase baseBotao3 = { 189, 206, 75, 42};
+dadosRetanguloBase baseBotao0 = { 270, 206, 75, 42};
+dadosRetanguloBase baseBotao4 = { 26, 156, 75, 44};
+dadosRetanguloBase baseBotao5 = { 107, 156, 75, 44};
+dadosRetanguloBase baseBotao6 = { 189, 156, 75, 44};
+dadosRetanguloBase baseBotaoPonto = { 270, 156, 75, 44};
+dadosRetanguloBase baseBotao7 = { 26, 106, 75, 44};
+dadosRetanguloBase baseBotao8 = { 107, 106, 75, 44};
+dadosRetanguloBase baseBotao9 = { 189, 106, 75, 44};
+//dadosRetanguloBase baseBotaoVoltarTelaInicial = { 270, 106, 75, 44};
+dadosRetanguloBase baseBotaoBackspace = { 270, 106, 75, 44};
+//Declaração das Variáveis Botão
+botao botaoResetCargaBateria = {baseBotaoResetCargaBateria, 0, 0};
+botao botaoSetVoltasTopo = {baseBotaoSetVoltasTopo, 0, 0};
+botao botaoSetNumeroCantos = {baseBotaoSetNumeroCantos, 0, 0};
+botao botaoSetAlturaCamada = {baseBotaoSetAlturaCamada, 0, 0};
+botao botaoSetVoltasBase = {baseBotaoSetVoltasBase, 0, 0};
+botao botao0 = {baseBotao0, 0, 0};
+botao botao1 = {baseBotao1, 0, 0};
+botao botao2 = {baseBotao2, 0, 0};
+botao botao3 = {baseBotao3, 0, 0};
+botao botao4 = {baseBotao4, 0, 0};
+botao botao5 = {baseBotao5, 0, 0};
+botao botao6 = {baseBotao6, 0, 0};
+botao botao7 = {baseBotao7, 0, 0};
+botao botao8 = {baseBotao8, 0, 0};
+botao botao9 = {baseBotao9, 0, 0};
+botao botaoPonto = {baseBotaoPonto, 0, 0};
+botao botaoSave = {baseBotaoSave, 0, 0};
+botao botaoDesenrolar  = {baseBotaoSave, 0, 0};
+botao botaoDown = {baseBotaoDown, 0, 0};
+botao botaoUp = {baseBotaoBackPrincipal, 0, 0};
+botao botaoBackPrincipal = {baseBotaoBackPrincipal, 0, 0};
+//botao botaoVoltarTelaInicial = {baseBotaoVoltarTelaInicial, 0, 0};
+botao botaoBackspace = {baseBotaoBackspace, 0, 0};
+botao botaoBack = {baseBotaoBack, 0, 0};
 
-//Base do botão que é um retângulo desenhado
-dadosRetanguloBase baseBotaoReset = {24, 180, 125, 70};
-dadosRetanguloBase baseBotaoAprender = {170, 180, 125, 70};
-dadosRetanguloBase baseBotaoConfigurarVoltar = {436, 4, 40, 40};
+void resetTela(){
+    tela = 0;
+    lcd.Clear(LCD_COLOR_WHITE);
+}
+void limparCampoValor(){
+    lcd.SetTextColor(LCD_COLOR_WHITE);
+    lcd.FillRect(171, 61, 179, 29);
+}
 
-//Criado cada botão com sua base/localização correspondente
-botao botaoReset = {baseBotaoReset, 0, 0};
-botao botaoAprender = {baseBotaoAprender, 0, 0};
-botao botaoConfigurarVoltar = {baseBotaoConfigurarVoltar, 0, 0};
+void desenhaTeclado(int opcao){
+    lcd.SetTextColor(LCD_COLOR_WHITE);
+    lcd.FillRect(10, 50, 350, 212);
+    lcd.FillRect(370, 50, 100, 212);
+    lcd.SetTextColor((uint32_t)0xFFEBE7DE);
+    lcd.FillRect(20, 100, 330, 152);
+    lcd.SetTextColor((uint32_t)0xFFDED8CC);
+    lcd.DrawRect(170, 60, 180, 30);
+    lcd.DrawRect(380, 60, 80, 40);
+    lcd.DrawRect(380, 170, 80, 80);
+    lcd.SetTextColor(LCD_COLOR_WHITE);
+    lcd.FillRect(25, 105, 76, 45);
+    lcd.FillRect(106, 105, 76, 45);
+    lcd.FillRect(188, 105, 76, 45);
+    lcd.FillRect(269, 105, 76, 45);
+    lcd.FillRect(25, 155, 76, 45);
+    lcd.FillRect(106, 155, 76, 45);
+    lcd.FillRect(188, 155, 76, 45);
+    lcd.FillRect(269, 155, 76, 45);
+    lcd.FillRect(25, 205, 76, 43);
+    lcd.FillRect(106, 205, 76, 43);
+    lcd.FillRect(188, 205, 76, 43);
+    lcd.FillRect(269, 205, 76, 43);
+    desenhaBotaoComImagem (TXT0, imgTxt0, LCD_COLOR_WHITE, &botao0);
+    desenhaBotaoComImagem (TXT1, imgTxt1, LCD_COLOR_WHITE, &botao1);
+    desenhaBotaoComImagem (TXT2, imgTxt2, LCD_COLOR_WHITE, &botao2);
+    desenhaBotaoComImagem (TXT3, imgTxt3, LCD_COLOR_WHITE, &botao3);
+    desenhaBotaoComImagem (TXT4, imgTxt4, LCD_COLOR_WHITE, &botao4);
+    desenhaBotaoComImagem (TXT5, imgTxt5, LCD_COLOR_WHITE, &botao5);
+    desenhaBotaoComImagem (TXT6, imgTxt6, LCD_COLOR_WHITE, &botao6);
+    desenhaBotaoComImagem (TXT7, imgTxt7, LCD_COLOR_WHITE, &botao7);
+    desenhaBotaoComImagem (TXT8, imgTxt8, LCD_COLOR_WHITE, &botao8);
+    desenhaBotaoComImagem (TXT9, imgTxt9, LCD_COLOR_WHITE, &botao9);
+    desenhaBotaoComImagem (TXTPONTO, imgTxtPonto, LCD_COLOR_WHITE, &botaoPonto);
+    desenhaBotaoComImagem (IMGBACKSPACE, imgBotaoBackspace, LCD_COLOR_WHITE, &botaoBackspace);
+    desenhaBotaoComImagem (IMGSAVE, imgBotaoSave, LCD_COLOR_WHITE, &botaoSave);
+    desenhaBotaoComImagem (IMGBACK, imgBotaoBack, LCD_COLOR_WHITE, &botaoBack);
+    switch (opcao){
+        case 1:
+            desenharImagem(TXTVOLTASTOPO, 109,17, 20,70);
+            lcd.SetTextColor(LCD_COLOR_BLACK);
+        break;
+        case 2:
+            desenharImagem(TXTNUMEROCANTOS, 134,14, 20,70);
+            lcd.SetTextColor(LCD_COLOR_BLACK);
+        break;
+        case 3:
+            desenharImagem(TXTALTURACAMADA, 130,14, 20,70);
+            lcd.SetTextColor(LCD_COLOR_BLACK);
+        break;
+        case 4:
+            desenharImagem(TXTVOLTASBASE, 110,14, 20,70);
+            lcd.SetTextColor(LCD_COLOR_BLACK);
+        break;
+    }
+}
 
-void iniciarBotao(botao *botaoObjeto, TS_StateTypeDef *toqueTela){
-    bool isDentroBotaoX = 0;
-    bool isDentroBotaoY = 0;
-    
-    uint16_t cliqueX = toqueTela->touchX[0];
-    uint16_t cliqueY = toqueTela->touchY[0];
-    
-    //Testar se foi na área do botão em x e marca o flag
-    if((cliqueX > botaoObjeto->retanguloObjeto.x) && (cliqueX < ( botaoObjeto->retanguloObjeto.x + botaoObjeto->retanguloObjeto.largura))){
-        isDentroBotaoX = 1;
+void desenhaTelaInicial(){
+    lcd.Clear((uint32_t)0xFFEBE7DE);
+    lcd.SetTextColor((uint32_t)0xFF1C7D5A);
+    lcd.FillRect(0, 0, 480, 40);
+    lcd.SetTextColor(LCD_COLOR_WHITE);
+    lcd.FillRect(10, 50, 350, 212);
+    lcd.FillRect(370, 50, 100, 212);
+    lcd.SetTextColor((uint32_t)0xFFDED8CC);
+    desenharImagem(TXTVOLTASTOPO, 109,17, 120,70);
+    desenharImagem(TXTNUMEROCANTOS, 134,14, 120,105);
+    desenharImagem(TXTALTURACAMADA, 130,14, 120,140);
+    desenharImagem(TXTVOLTASBASE, 110,14, 120,175);
+    desenharImagem(IMGBATTERY, 32,32, 20,215);
+    desenharImagem(LOGOINT, 102,20, 10,10);
+    lcd.SetTextColor((uint32_t)0xFFDED8CC);
+    lcd.DrawRect(20, 60, 90, 30);
+    lcd.DrawRect(20, 95, 90, 30);
+    lcd.DrawRect(260, 95, 90, 30);
+    lcd.DrawRect(20, 130, 90, 30);
+    lcd.DrawRect(260, 130, 90, 30);
+    lcd.DrawRect(20, 165, 90, 30);
+    lcd.DrawRect(119, 209, 231, 41);
+    lcd.DrawCircle(70,235,10);
+    lcd.DrawRect(380, 60, 80, 40);
+    lcd.DrawRect(380, 110, 80, 40);
+    lcd.DrawRect(380, 170, 80, 80);
+    desenhaBotaoComImagem (BTNRESETBATERIA, imgBotaoResetCargaBateria, LCD_COLOR_WHITE, &botaoResetCargaBateria);
+    desenhaBotaoComImagem (IMGDESENROLAR, imgBotaoDesenrolar, LCD_COLOR_WHITE, &botaoSave);
+    desenhaBotaoComImagem (IMGUP, imgBotaoUp, LCD_COLOR_WHITE, &botaoUp);
+    desenhaBotaoComImagem (IMGDOWN, imgBotaoDown, LCD_COLOR_WHITE, &botaoDown);
+    lcd.SetFont(&Font12);
+    lcd.SetTextColor((uint32_t)0xFFDED8CC);
+    lcd.SetBackColor((uint32_t)0xFF1C7D5A);
+    lcd.DisplayStringAt(40, 15, (uint8_t *) eth.get_ip_address(), RIGHT_MODE);
+    if (redeOnline){
+        desenharImagem(IMGREDEON, 24,24, 440,10);
+    }
+    else{
+        desenharImagem(IMGREDEOFF, 24,24, 440,10);
+    }
+}
+void comandosPrincipal(){
+    iniciarBotaoArea(&botaoSetVoltasTopo, &TS_State);
+    iniciarBotaoArea(&botaoSetNumeroCantos, &TS_State);
+    iniciarBotaoArea(&botaoSetAlturaCamada, &TS_State);
+    iniciarBotaoArea(&botaoSetVoltasBase, &TS_State);
+    iniciarBotaoComImagem(IMGUP, imgBotaoUp, 0xffffffff, 0xff1c7d5a, &botaoUp, &TS_State);
+    iniciarBotaoComImagem(IMGDOWN, imgBotaoDown, 0xffffffff, 0xff1c7d5a, &botaoDown, &TS_State);
+    iniciarBotaoComImagem(IMGDESENROLAR, imgBotaoDesenrolar, 0xffffffff, 0xff1c7d5a, &botaoDesenrolar, &TS_State);
+    iniciarBotaoComImagemClick(BTNRESETBATERIA,BTNRESETBATERIACLK, imgBotaoResetCargaBateria, imgBotaoResetCargaBateriaClk, 0xffffffff, 0xff1c7d5a, &botaoResetCargaBateria, &TS_State);
+    if(reset_bateria == "1"){
+        lcd.SetTextColor((uint32_t)0xFF1C7D5A);
+        lcd.SetBackColor((uint32_t)0xFF1C7D5A);
+        lcd.FillCircle(70, 235, 7);
+    }
+    else{
+        lcd.SetTextColor(LCD_COLOR_WHITE);
+        lcd.SetBackColor(LCD_COLOR_WHITE);
+        lcd.FillCircle(70, 235, 7);
     }
     
-    //Testar se foi na área do botão em y e marca o flag
-    if((cliqueY > botaoObjeto->retanguloObjeto.y) && (cliqueY < ( botaoObjeto->retanguloObjeto.y + botaoObjeto->retanguloObjeto.altura))){
-        isDentroBotaoY = 1;
+    if(botaoUp.isPressed){
+        upDown(1);
+    }else if(botaoDown.isPressed){
+        upDown(2);
+    }else{
+        upDown(0);
+    }
+    if(botaoDesenrolar.isPressed){
+        desenrola(1);
+    }
+    else{
+        desenrola(0);
+    }
+                
+    if(botaoSetVoltasTopo.updateFlag){
+        botaoSetVoltasTopo_callback();
+    }
+    if(botaoSetNumeroCantos.updateFlag){
+        botaoSetNumeroCantos_callback();
     }
+    if(botaoSetAlturaCamada.updateFlag){
+        botaoSetAlturaCamada_callback();
+    }
+    if(botaoSetVoltasBase.updateFlag){
+        botaoSetVoltasBase_callback();
+    }
+    if(botaoResetCargaBateria.updateFlag){
+        botaoResetCargaBateria_callback();
+    }
+    if (redeOnline && !telaRedeOnline && paginaOnline){
+        desenharImagem(IMGREDEON, 24,24, 440,10);
+        telaRedeOnline = true;
+    }
+    else if (redeOnline && !telaRedeOnline && !paginaOnline){
+        desenharImagem(IMGWARNING, 24,24, 440,10);
+        telaRedeOnline = true;
+    }
+    else if (!redeOnline && telaRedeOnline){
+        desenharImagem(IMGREDEOFF, 24,24, 440,10);
+        telaRedeOnline = false;
+    }
+    lcd.SetFont(&Font24);
+    lcd.SetTextColor((uint32_t)0xFFDED8CC);
+    lcd.SetBackColor((uint32_t)0xFF1C7D5A);
     
-    //Testa se está dentro da área do botão XY
-    if(isDentroBotaoX && isDentroBotaoY){
-        //Se ele não estava pressionado
-        if(!(botaoObjeto->isPressed)){
-            botaoObjeto->depressTime.start();
-            botaoObjeto->isPressed = 1;
-            lcd.SetTextColor(LCD_COLOR_DARKBLUE);
-            lcd.FillRect(botaoObjeto->retanguloObjeto.x, botaoObjeto->retanguloObjeto.y, botaoObjeto->retanguloObjeto.largura, botaoObjeto->retanguloObjeto.altura);
-            lcd.SetTextColor(LCD_COLOR_BLACK);
-            lcd.DrawRect(botaoObjeto->retanguloObjeto.x, botaoObjeto->retanguloObjeto.y, botaoObjeto->retanguloObjeto.largura, botaoObjeto->retanguloObjeto.altura);
-            }
-     }else{
-        //Se ele estava pressionado
-        if((botaoObjeto->isPressed)){
-            botaoObjeto->depressTime.stop();
-            botaoObjeto->isPressed = 0;
-            if(botaoObjeto->depressTime.read() > TEMPO_PRESSIONADO_BOTAO){
-                botaoObjeto->updateFlag = 1;
-            }
-            lcd.SetTextColor(LCD_COLOR_BLUE);
-            lcd.FillRect(botaoObjeto->retanguloObjeto.x, botaoObjeto->retanguloObjeto.y, botaoObjeto->retanguloObjeto.largura, botaoObjeto->retanguloObjeto.altura);
-            lcd.SetTextColor(LCD_COLOR_BLACK);
-            lcd.DrawRect(botaoObjeto->retanguloObjeto.x, botaoObjeto->retanguloObjeto.y, botaoObjeto->retanguloObjeto.largura, botaoObjeto->retanguloObjeto.altura);
+    if(mostrarValores){
+        lcd.SetFont(&Font20);
+        lcd.SetTextColor(LCD_COLOR_BLACK);
+        lcd.SetBackColor(LCD_COLOR_WHITE);
+        lcd.DisplayStringAt(370, 70, (uint8_t *) set_voltas_topo.c_str(), RIGHT_MODE);
+        lcd.DisplayStringAt(370, 105, (uint8_t *) set_numero_cantos.c_str(), RIGHT_MODE);
+        //lcd.DisplayStringAt(130, 105, (uint8_t *) disp_num_cantos.c_str(), RIGHT_MODE);
+        lcd.DisplayStringAt(370, 140, (uint8_t *) set_altura_camada.c_str(), RIGHT_MODE);
+        //lcd.DisplayStringAt(130, 140, (uint8_t *) disp_altura_camada.c_str(), RIGHT_MODE);
+        lcd.DisplayStringAt(370, 175, (uint8_t *) set_voltas_base.c_str(), RIGHT_MODE);
+        mostrarValores = false;
+    }
+}
+
+void comandosTeclado(){
+    iniciarBotaoComImagemClick(TXT0,TXT0CLK, imgTxt0, imgTxt0Clk, 0xffffffff, 0xff1c7d5a, &botao0, &TS_State);
+    iniciarBotaoComImagemClick(TXT1,TXT1CLK, imgTxt1, imgTxt1Clk, 0xffffffff, 0xff1c7d5a, &botao1, &TS_State);
+    iniciarBotaoComImagemClick(TXT2,TXT2CLK, imgTxt2, imgTxt2Clk, 0xffffffff, 0xff1c7d5a, &botao2, &TS_State);
+    iniciarBotaoComImagemClick(TXT3,TXT3CLK, imgTxt3, imgTxt3Clk, 0xffffffff, 0xff1c7d5a, &botao3, &TS_State);
+    iniciarBotaoComImagemClick(TXT4,TXT4CLK, imgTxt4, imgTxt4Clk, 0xffffffff, 0xff1c7d5a, &botao4, &TS_State);
+    iniciarBotaoComImagemClick(TXT5,TXT5CLK, imgTxt5, imgTxt5Clk, 0xffffffff, 0xff1c7d5a, &botao5, &TS_State);
+    iniciarBotaoComImagemClick(TXT6,TXT6CLK, imgTxt6, imgTxt6Clk, 0xffffffff, 0xff1c7d5a, &botao6, &TS_State);
+    iniciarBotaoComImagemClick(TXT7,TXT7CLK, imgTxt7, imgTxt7Clk, 0xffffffff, 0xff1c7d5a, &botao7, &TS_State);
+    iniciarBotaoComImagemClick(TXT8,TXT8CLK, imgTxt8, imgTxt8Clk, 0xffffffff, 0xff1c7d5a, &botao8, &TS_State);
+    iniciarBotaoComImagemClick(TXT9,TXT9CLK, imgTxt9, imgTxt9Clk, 0xffffffff, 0xff1c7d5a, &botao9, &TS_State);
+    iniciarBotaoComImagemClick(TXTPONTO,TXTPONTOCLK, imgTxtPonto, imgTxtPontoClk, 0xffffffff, 0xff1c7d5a, &botaoPonto, &TS_State);
+    iniciarBotaoComImagemClick(IMGBACKSPACE,IMGBACKSPACECLK, imgBotaoBackspace, imgBotaoBackspaceClk, 0xffffffff, 0xff1c7d5a, &botaoBackspace, &TS_State);
+    iniciarBotaoComImagem(IMGSAVE, imgBotaoSave, 0xffffffff, 0xff1c7d5a, &botaoSave, &TS_State);
+    iniciarBotaoComImagem(IMGBACK, imgBotaoBack, 0xffffffff, 0xff1c7d5a, &botaoBack, &TS_State);
+    lcd.SetFont(&Font20);
+    lcd.SetBackColor(LCD_COLOR_WHITE);
+    lcd.SetTextColor(LCD_COLOR_BLACK);
+    lcd.DisplayStringAt(130, 70, (uint8_t *) valorTemporario.c_str(), RIGHT_MODE);
+    if(botao0.updateFlag){
+        botao0_callback();
+    }
+    if(botao1.updateFlag){
+        botao1_callback();
+    }
+    if(botao2.updateFlag){
+        botao2_callback();
+}
+    if(botao3.updateFlag){
+        botao3_callback();
+    }
+    if(botao4.updateFlag){
+        botao4_callback();
+    }
+    if(botao5.updateFlag){
+        botao5_callback();
+    }
+    if(botao6.updateFlag){
+        botao6_callback();
+    }
+    if(botao7.updateFlag){
+        botao7_callback();
+    }
+    if(botao8.updateFlag){
+        botao8_callback();
+    }
+    if(botao9.updateFlag){
+        botao9_callback();
+    }
+    if(botaoPonto.updateFlag){
+        botaoPonto_callback();
+    }
+    if(botaoBackspace.updateFlag){
+        botaoBackspace_callback();
+    }
+    if(botaoSave.updateFlag){
+        botaoSave_callback();
+    }
+    if(botaoBack.updateFlag){
+        botaoBack_callback();
+    }
+}
+void upDown(int comando){
+    if(comando != comandoAnteriorUpDown){
+        switch(comando){
+            case 1:
+                postValor("sobe_elevador","1");
+                pc.printf("Sobe\r\n");
+                comandoAnteriorUpDown = 1;
+            break;
+            case 2:
+                postValor("desce_elevador","1");
+                pc.printf("Desce\r\n");
+                comandoAnteriorUpDown = 2;
+            break;
+            default:
+                postValores("sobe_elevador","0","desce_elevador","0");
+                pc.printf("Parado\r\n");
+                comandoAnteriorUpDown = 0;
+            break;
         }
     }
 }
 
-void resetTela(){
-    lcd.SetFont(&Font24);
-    lcd.Clear(LCD_COLOR_WHITE);
-    lcd.SetBackColor(LCD_COLOR_WHITE);
-    lcd.SetTextColor(LCD_COLOR_BLACK);
-    lcd.DrawRect(22, 18, 272, 147);
-    lcd.SetTextColor(LCD_COLOR_RED);
-    lcd.FillRect(baseBotaoReset.x, baseBotaoReset.y, baseBotaoReset.largura, baseBotaoReset.altura);
-    lcd.SetTextColor(LCD_COLOR_GREEN);
-    lcd.FillRect(baseBotaoAprender.x, baseBotaoAprender.y, baseBotaoAprender.largura, baseBotaoAprender.altura);
-    lcd.SetTextColor(LCD_COLOR_GRAY);
-    lcd.FillRect(baseBotaoConfigurarVoltar.x, baseBotaoConfigurarVoltar.y, baseBotaoConfigurarVoltar.largura, baseBotaoConfigurarVoltar.altura);
-    lcd.SetTextColor(LCD_COLOR_BLACK);
-    lcd.DrawRect(baseBotaoReset.x, baseBotaoReset.y, baseBotaoReset.largura, baseBotaoReset.altura);
-    lcd.DrawRect(baseBotaoAprender.x, baseBotaoAprender.y, baseBotaoAprender.largura, baseBotaoAprender.altura);
-    lcd.DrawRect(baseBotaoConfigurarVoltar.x, baseBotaoConfigurarVoltar.y, baseBotaoConfigurarVoltar.largura, baseBotaoConfigurarVoltar.altura);
+void desenrola(int comando){
+    if(comando != comandoAnteriorDesenrola){
+        switch(comando){
+            case 1:
+                postValor("libera_filme","1");
+                pc.printf("Desenrola\r\n");
+                comandoAnteriorDesenrola = 1;
+            break;
+            default:
+                postValor("libera_filme","0");
+                pc.printf("Parado Rolo\r\n");
+                comandoAnteriorDesenrola = 0;
+            break;
+        }
+    }
+}
+
+void led2_thread() {
+    while (true) {
+        //Habilita a leitura do touch de tela
+        ts.ResetTouchData(&TS_State);
+        ts.GetState(&TS_State);
+        switch (tela){
+            case 0:
+                desenhaTelaInicial();
+                tela = 10;
+            break;
+            case 1:
+                comandosTeclado();
+                if(atualizarTela){
+                    desenhaTeclado(1);
+                    atualizarTela = false;
+                }
+            break;
+            case 2:
+                comandosTeclado();
+                if(atualizarTela){
+                    desenhaTeclado(2);
+                    atualizarTela = false;
+                }
+            break;
+            case 3:
+                comandosTeclado();
+                if(atualizarTela){
+                    desenhaTeclado(3);
+                    atualizarTela = false;
+                }
+            break;
+            case 4:
+                comandosTeclado();
+                if(atualizarTela){
+                    desenhaTeclado(4);
+                    atualizarTela = false;
+                }
+            break;
+            default:
+                comandosPrincipal();
+            break;
+        }
+    }
+}
+
+string retiraValor(string respostaCompleta, int posicao, int quantidade){
+     string temporario = respostaCompleta;
+     return temporario.substr(posicao + 1,quantidade);
+}
+ 
+void dump_Post (HttpResponse* res) {
+    printf("Status: %d - %s\r\n", res->get_status_code(), res->get_status_message().c_str());
+    string referencia = "Set-cookie";
+    printf("Headers:\r\n");
+    for (size_t ix = 0; ix < res->get_headers_length(); ix++) {
+        printf("\t%s: %s\r\n", res->get_headers_fields()[ix]->c_str(), res->get_headers_values()[ix]->c_str());
+        string resposta = res->get_headers_fields()[ix]->c_str();
+        if(resposta.compare(referencia) == 0){
+            cookie = res->get_headers_values()[ix]->c_str();
+        }
+    }
+    
+    printf("\nBody (%d bytes):\n\n%s\r\n", res->get_body_length(), res->get_body_as_string().c_str());
+}
+
+void postValor(string campo, string valor) {
+        pc.printf("Tentando Post");
+        HttpRequest* post_req = new HttpRequest(&eth, HTTP_POST, "http://192.168.0.131/awp/disp_all.htm");
+        post_req->set_header("Content-Type","application/x-www-form-urlencoded");
+        post_req->set_header("Set-cookie",cookie);
+        char body[100];
+        sprintf(body, "\"webdata\".%s=%s", campo.c_str(), valor.c_str());
+        HttpResponse* post_res = post_req->send(body, strlen(body));
+        if(!post_res){
+            pc.printf("Falha no Post - erro codigo %d\r\n", post_req->get_error());
+        }
+        else{
+            pc.printf("Post ok!");
+        }
+        //pc.printf("Token %s e body %s\r\n",cookie,body);
+        delete post_req;
+}
+
+void postValores(string campo1, string valor1,string campo2, string valor2) {
+        pc.printf("Tentando Post");
+        HttpRequest* post_req = new HttpRequest(&eth, HTTP_POST, "http://192.168.0.131/awp/disp_all.htm");
+        post_req->set_header("Content-Type","application/x-www-form-urlencoded");
+        post_req->set_header("Set-cookie",cookie);
+        char body[100];
+        sprintf(body, "\"webdata\".%s=%s&\"webdata\".%s=%s", campo1.c_str(), valor1.c_str(),campo2.c_str(), valor2.c_str());
+        HttpResponse* post_res = post_req->send(body, strlen(body));
+        if(!post_res){
+            pc.printf("Falha no Post - erro codigo %d\r\n", post_req->get_error());
+        }
+        else{
+            pc.printf("Post ok!");
+        }
+        //pc.printf("Token %s e body %s\r\n",cookie,body);
+        delete post_req;
+}
+
+void login(string login, string senha) {
+        pc.printf("Tentando Login");
+        HttpRequest* post_req = new HttpRequest(&eth, HTTP_POST, "http://192.168.0.131/FormLogin");
+        post_req->set_header("Content-Type","application/x-www-form-urlencoded");
+        char body[100];
+        sprintf(body, "Login=admin&Password=");
+        HttpResponse* post_res = post_req->send(body, strlen(body));
+        if(!post_res){
+            pc.printf("Falha no Post - erro codigo %d\r\n", post_req->get_error());
+        }
+        else{
+            printf("Efetuou post\r\n");
+            pc.printf(post_res->get_body_as_string().c_str());
+            dump_Post(post_res);
+        }
+        HttpRequest* redir_req = new HttpRequest(&eth, HTTP_GET, "http://192.168.0.131/Portal/Portal.mwsl?PriNav=Start");
+        redir_req->set_header("Set-cookie",cookie);
+        post_res = redir_req->send();
+        
+        if(!post_res){
+            pc.printf("Falha no Request - erro codigo %d\r\n", redir_req->get_error());
+        }
+        else{
+            pc.printf(post_res->get_body_as_string().c_str());
+        }
+        delete post_req;
+        delete redir_req;
 }
 
-void aprender(uint8_t status){
-    uint8_t text[30];
-    sprintf((char*)text, "Aprender: %d", status + 1);
-    lcd.DisplayStringAt(37, 83, (uint8_t *)text, LEFT_MODE);
+void dump_response(HttpResponse* res){
+    int posicaochar[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+    int posposi = 0;
+    std::string resposta = res->get_body_as_string();
+    for (int i = 0; i < res->get_body_length(); i++)
+    {
+        if (resposta[i] == '#'){
+          posicaochar[posposi] = i;
+          posposi++;
+        }
+    }
+    int tamanhoStatus = posicaochar[1] - posicaochar[0] - 1;
+    int tamanhoSetVoltasTopo = posicaochar[3] - posicaochar[2] - 1;
+    int tamanhoSetNumCantos = posicaochar[5] - posicaochar[4] - 1;
+    int tamanhoSetAlturaCamada = posicaochar[7] - posicaochar[6] - 1;
+    int tamanhoSetVoltasBase = posicaochar[9] - posicaochar[8] - 1;
+    int tamanhoDispNumCantos = posicaochar[11] - posicaochar[10] - 1;
+    int tamanhoDispAlturaCamada = posicaochar[13] - posicaochar[12] - 1;
+    int tamanhoStatusBateria = posicaochar[15] - posicaochar[14] - 1;
+    if(tamanhoSetVoltasTopo < set_voltas_topo.size()){
+        lcd.SetTextColor(LCD_COLOR_WHITE);
+        lcd.FillRect(21, 61, 89, 29);
+    }
+    if(tamanhoSetNumCantos < set_numero_cantos.size()){
+        lcd.SetTextColor(LCD_COLOR_WHITE);
+        lcd.FillRect(21, 96, 89, 29);
+    }
+    if(tamanhoDispNumCantos < disp_num_cantos.size()){
+        lcd.SetTextColor(LCD_COLOR_WHITE);
+        lcd.FillRect(261, 96, 89, 29);
+    }
+    if(tamanhoSetAlturaCamada < set_altura_camada.size()){
+        lcd.SetTextColor(LCD_COLOR_WHITE);
+        lcd.FillRect(21, 131, 89, 29);
+    }
+    if(tamanhoDispAlturaCamada < disp_altura_camada.size()){
+        lcd.SetTextColor(LCD_COLOR_WHITE);
+        lcd.FillRect(261, 131, 89, 29);
+    }
+    if(tamanhoSetVoltasBase < set_voltas_base.size()){
+        lcd.SetTextColor(LCD_COLOR_WHITE);
+        lcd.FillRect(21, 166, 89, 29);
+    }
+    estado = resposta.substr(posicaochar[0] + 1,tamanhoStatus);
+    set_voltas_topo = resposta.substr(posicaochar[2] + 1,tamanhoSetVoltasTopo);
+    set_numero_cantos = resposta.substr(posicaochar[4] + 1,tamanhoSetNumCantos);
+    set_altura_camada = resposta.substr(posicaochar[6] + 1,tamanhoSetAlturaCamada);
+    set_voltas_base = resposta.substr(posicaochar[8] + 1,tamanhoSetVoltasBase);
+    disp_num_cantos = resposta.substr(posicaochar[10] + 1,tamanhoDispNumCantos);
+    disp_altura_camada = resposta.substr(posicaochar[12] + 1,tamanhoDispAlturaCamada);
+    reset_bateria = resposta.substr(posicaochar[14] + 1,tamanhoStatusBateria);
+    mostrarValores = true;
 }
 
-//Funções chamadas pelo clique do botão(callback)
-void botaoReset_callback(){
-    lcd.DisplayStringAt(37, 83,(uint8_t *)"Reset      ", LEFT_MODE);
-    botaoReset.updateFlag = 0;
+int main()
+{
+    pc.printf("Iniciando a Tela\r\n");
+    lcd.Clear(LCD_COLOR_WHITE);
+    desenharImagem(LOGO,315,22,82,125);
+    lcd.SetFont(&Font16);
+    lcd.SetTextColor(LCD_COLOR_DARKGRAY);
+    lcd.DisplayStringAt(10, 255, (uint8_t *) "Buscando IP ...", RIGHT_MODE);
+    wait(3);
+    printf("IHM Robopack\r\n");
+    //EthernetInterface eth;
+    eth.set_network(mbedIp,mbedMask,mbedGateway); //Use  these parameters for static IP
+    printf("IFoi o Ip Estatico k\r\n");
+    eth.connect();
+    lcd.DisplayStringAt(10, 255, (uint8_t *) "IP configurado ...", RIGHT_MODE);
+    wait(2);
+    pc.printf("O IP que temos: '%s'\r\n", eth.get_ip_address());
+    printf("The target IP address is '%s'\r\n", eth.get_ip_address());
+    lcd.DisplayStringAt(10, 255, (uint8_t *) "Logando no Hardware ...", RIGHT_MODE);
+    wait(5);
+    //login("admin","");
+    //Inicia as Variáveis
+    status = 0;
+    tela = 0;
+    atualizarTela = true;
+    //Limpa Tela
+    resetTela();
+    //Desenha tela Inicial
+    desenhaTelaInicial();
+    thread.start(led2_thread);
+
+    HttpResponse* get_res;
+    
+    while (true) {
+        if(atualizarValores){
+            HttpRequest* get_req = new HttpRequest(&eth, HTTP_GET, "http://192.168.0.131/awp/disp_all.htm");
+            get_res = get_req->send();
+            if(!get_res){
+                redeOnline = false;
+                pc.printf("Falha no Request - erro codigo %d\r\n", get_req->get_error());
+            }
+            else if (get_res->get_status_code() != 0){
+                redeOnline = true;
+                paginaOnline = true;
+                dump_response(get_res);
+            }
+            else{
+                redeOnline = true;
+                paginaOnline = false;
+            }
+            delete get_req;
+            atualizarValores = false;
+        }
+   }
 }
 
-void botaoAprender_callback(){
-    lcd.DisplayStringAt(37, 83, (uint8_t *)"Aprender  ", LEFT_MODE);
-    botaoAprender.updateFlag = 0;
-    //lcd.DrawBitmap(0,0,(uint8_t *)img);
+//Funções CallBack
+void botaoSetVoltasTopo_callback(){
+    botaoSetVoltasTopo.updateFlag = 0;
+    tela = 1;
+    valorTemporario = set_voltas_topo;
+    atualizarTela = true;
+    pc.printf("Set Voltas Topo \r\n");
+}
+
+void botaoSetNumeroCantos_callback(){
+    botaoSetNumeroCantos.updateFlag = 0;
+    tela = 2;
+    valorTemporario = set_numero_cantos;
+    atualizarTela = true;
+    pc.printf("Set Numero Cantos \r\n");
 }
 
-void botaoConfigurarVoltar_callback(){
-    lcd.DisplayStringAt(37, 83, (uint8_t *)"Configurar", LEFT_MODE);
-    botaoConfigurarVoltar.updateFlag = 0;
+void botaoSetAlturaCamada_callback(){
+    botaoSetAlturaCamada.updateFlag = 0;
+    tela = 3;
+    valorTemporario = set_altura_camada;
+    atualizarTela = true;
+    pc.printf("Set Altura Camada \r\n");
+}
+
+void botaoSetVoltasBase_callback(){
+    botaoSetVoltasBase.updateFlag = 0;
+    tela = 4;
+    valorTemporario = set_voltas_base;
+    atualizarTela = true;
+    pc.printf("Set Voltas Base \r\n");
+}
+
+void botao0_callback(){
+    botao0.updateFlag = 0;
+    if(valorTemporario == "0"){
+        valorTemporario = "0";
+    }
+    else if(strlen(valorTemporario.c_str()) < 4){
+        valorTemporario += "0";
+    }
     
 }
 
-void desenharImagem(){
-    uint16_t larg = 100;
-    uint16_t alt = 32;
-    int i;
-    int j;
-    int contador = 0;
-    for (i=0; i<alt; i++){
-        for (j=0; j<larg; j++){
-            lcd.DrawPixel(j,i,LOGOSOLID[contador]);
-            //pc.printf("%d;",LOGOSOLID[contador]);
-            contador++;
-        }
+void botao1_callback(){
+    botao1.updateFlag = 0;
+    if(valorTemporario == "0"){
+        valorTemporario = "1";
+    }
+    else if(strlen(valorTemporario.c_str()) < 4){
+        valorTemporario += "1";
+    }
+}
+
+void botao2_callback(){
+    botao2.updateFlag = 0;
+    if(valorTemporario == "0"){
+        valorTemporario = "2";
+    }
+    else if(strlen(valorTemporario.c_str()) < 4){
+        valorTemporario += "2";
+    }
+}
+
+void botao3_callback(){
+    botao3.updateFlag = 0;
+    if(valorTemporario == "0"){
+        valorTemporario = "3";
+    }
+    else if(strlen(valorTemporario.c_str()) < 4){
+        valorTemporario += "3";
+    }
+}
+
+void botao4_callback(){
+    botao4.updateFlag = 0;
+    if(valorTemporario == "0"){
+        valorTemporario = "4";
+    }
+    else if(strlen(valorTemporario.c_str()) < 4){
+        valorTemporario += "4";
+    }
+}
+
+void botao5_callback(){
+    botao5.updateFlag = 0;
+    if(valorTemporario == "0"){
+        valorTemporario = "5";
+    }
+    else if(strlen(valorTemporario.c_str()) < 4){
+        valorTemporario += "5";
+    }
+}
+
+void botao6_callback(){
+    botao6.updateFlag = 0;
+    if(valorTemporario == "0"){
+        valorTemporario = "6";
+    }
+    else if(strlen(valorTemporario.c_str()) < 4){
+        valorTemporario += "6";
     }
 }
-    
 
-int main()
-{
-    uint16_t x, y;
-    uint8_t text[30];
-    uint8_t status = 0;
-    uint8_t idx;
-    uint8_t cleared = 0;
-    uint8_t prev_nb_touches = 0;
+void botao7_callback(){
+    botao7.updateFlag = 0;
+    if(valorTemporario == "0"){
+        valorTemporario = "7";
+    }
+    else if(strlen(valorTemporario.c_str()) < 4){
+        valorTemporario += "7";
+    }
+}
 
-    lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"CFM SOLIDTEC", CENTER_MODE);
-    wait(1);
+void botao8_callback(){
+    botao8.updateFlag = 0;
+    if(valorTemporario == "0"){
+        valorTemporario = "8";
+    }
+    else if(strlen(valorTemporario.c_str()) < 4){
+        valorTemporario += "8";
+    }
+}
 
-    //Desenha tela Inicial
-    resetTela();
-    lcd.Clear(LCD_COLOR_RED);
-    desenharImagem();
-    pc.printf("%d",LCD_COLOR_WHITE);
-    
-    while(1) {
-        //Inicia os controles
-        ts.ResetTouchData(&TS_State);
-        ts.GetState(&TS_State);
-        iniciarBotao(&botaoReset, &TS_State);
-        iniciarBotao(&botaoAprender, &TS_State);
-        iniciarBotao(&botaoConfigurarVoltar, &TS_State);
-        
-        if(status < 3){
-            aprender(status);
-        
-        }
-        
-        
-        //Ação caso tenha clicado no botão
-        if(botaoReset.updateFlag){
-            botaoReset_callback();
-            pc.printf("Botao Reset");
-        }
-        if(botaoAprender.updateFlag){
-            botaoAprender_callback();
-            pc.printf("Botao Aprender");
-        }
-        if(botaoConfigurarVoltar.updateFlag){
-            status++;
-            botaoConfigurarVoltar_callback();
-            pc.printf("Botao Configurar/Voltar");
+void botao9_callback(){
+    botao9.updateFlag = 0;
+    if(valorTemporario == "0"){
+        valorTemporario = "9";
+    }
+    else if(strlen(valorTemporario.c_str()) < 4){
+        valorTemporario += "9";
+    }
+}
+
+void botaoPonto_callback(){
+    botaoPonto.updateFlag = 0;
+    //valorTemporario += ".";
+}
+
+void botaoBackspace_callback(){
+    botaoBackspace.updateFlag = 0;
+    string valorRetirado = valorTemporario.substr(0,(strlen(valorTemporario.c_str())-1));
+    limparCampoValor();
+    valorTemporario = valorRetirado;
+}
+
+void botaoSave_callback(){
+    botaoSave.updateFlag = 0;
+    if(redeOnline && paginaOnline){
+        switch(tela){
+            case 1:
+                postValor("set_voltas_topo",valorTemporario);
+            break;
+            case 2:
+                postValor("set_num_cantos",valorTemporario);
+            break;
+            case 3:
+                postValor("set_altura_camada",valorTemporario);
+            break;
+            case 4:
+                postValor("set_voltas_base",valorTemporario);
+            break;
         }
     }
+    tela = 0;
+    atualizarValores = true;
 }
+
+void botaoBack_callback(){
+    botaoBack.updateFlag = 0;
+    tela = 0;
+    atualizarValores = true;
+}
+
+void botaoResetCargaBateria_callback(){
+    botaoResetCargaBateria.updateFlag = 0;
+    postValor("reset_bateria","1");
+}
\ No newline at end of file