teste de publish

Dependencies:   DS1820 HighSpeedAnalogIn devices mbed

Revision:
18:1eefda1f7736
Parent:
16:9a19ac33957e
Child:
19:5559f7570e6f
--- a/modem.cpp	Tue Jan 09 13:45:17 2018 +0000
+++ b/modem.cpp	Thu Jan 25 16:15:03 2018 +0000
@@ -143,7 +143,7 @@
                     sdCard::modificaCurrentBank(0,1);
                 }else{                
                    pc.printf("modemCom::enviaDados[11].\r\n");                   
-                   if(modemCom::postFileCommandMode(modemCom::status.host,"/drome/Parser/",&sdCard::bank0)){
+                   if(modemCom::postFileCommandMode(modemCom::status.serverIP,modemCom::status.host,"/drome/Parser/",&sdCard::bank0)){
                     pc.printf("Enviado o bank0.\r\n");
                     result = true;                    
                    }
@@ -159,7 +159,7 @@
                    sdCard::modificaCurrentBank(1,0);
                 }else{
                    pc.printf("modemCom::enviaDados[12].\r\n");                   
-                   if(modemCom::postFileCommandMode(modemCom::status.host,"/drome/Parser/",&sdCard::bank1)){
+                   if(modemCom::postFileCommandMode(modemCom::status.serverIP,modemCom::status.host,"/drome/Parser/",&sdCard::bank1)){
                     pc.printf("Enviado o bank1.\r\n");
                     result = true;
                    }
@@ -176,7 +176,7 @@
 
 
 
-uint8_t modemCom::postFileCommandMode(char *host, char *uri, arquivoSD *arquivo)
+uint8_t modemCom::postFileCommandMode(char *serverIP, char *host, char *uri, arquivoSD *arquivo)
 {
     #define maxRetentativasEnvioParteArquivo 20
     uint32_t numeroDePartes;
@@ -216,8 +216,8 @@
         }
     }
     
-    pc.printf("Abrindo o socket em <%s>.\n",host);
-    sprintf(header,"AT+CIPSTART=1,\"TCP\",\"%s\",80\r\n",host);
+    pc.printf("Abrindo o socket em <%s>.\n",serverIP);
+    sprintf(header,"AT+CIPSTART=1,\"TCP\",\"%s\",80\r\n",serverIP);
     if(modemCom::sendToModem(header,1,&modemCom::status.OK,NULL,20000,3,1000)){
         modemCom::status.NO_CARRIER=0; //Socket Aberto!
         pc.printf("Aberto o socket em command mode.\n");
@@ -493,12 +493,12 @@
 void modemCom::webServer(uint8_t id){    
     //char auxMsg[50];
     bool encontrado=0;
-    char buf[512];
+    char buf[1024];
     //uint32_t aux_int;    
     
     if(strstr(webServerBuff,"favicon.ico")){        
         //sprintf(buf,"<!DOCTYPE html><html><body><h1>DROME-Seu processo na palma da sua mao!</h1><img src='http://criandoriquezaimagens.s3.amazonaws.com/wp-content/uploads/2014/12/casaPropria.png' width='200' height='210'><br><p><a href='/lecomandocontrole.htm'>Ler comando do controle.</a></p><br></body></html>");
-        sprintf(buf,"<!DOCTYPE html><html><link rel=\"icon\" href=\"http://%s/drome/assets/local/images/favicon/favicon.ico\" type=\"image/x-icon\"></html>",modemCom::status.host);
+        sprintf(buf,"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE html><html><body><link rel=\"icon\" href=\"http://%s/drome/assets/local/images/favicon/favicon.ico\" type=\"image/x-icon\"></body></html>",modemCom::status.host);
         if(cipSend(id,buf,0)==1){
             printf("Requisicao enviada!\n");    
         }else{
@@ -510,7 +510,7 @@
     if(strstr(webServerBuff,"comandos.htm")&&(!encontrado)){
         
         //sprintf(buf,"<!DOCTYPE html><html><body><h1>DROME-Seu processo na palma da sua mao!</h1><img src='http://criandoriquezaimagens.s3.amazonaws.com/wp-content/uploads/2014/12/casaPropria.png' width='200' height='210'><br><p><a href='/lecomandocontrole.htm'>Ler comando do controle.</a></p><br></body></html>");
-        sprintf(buf,"<!DOCTYPE html><html><body><h1>DROME-Dispositivo Remoto de Operacao e Monitoramento de Equipamentos</h1><br><p><a href='/lecomandocontrole.htm'>Ler comando do controle.</a><a href='/configRede.htm'><br>Configurar rede.</a></p><br></body></html>");
+        sprintf(buf,"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE html><html><head><title>ConfigRede DROME</title></head><body><h1>DROME-Dispositivo Remoto de Operacao e Monitoramento de Equipamentos</h1><br><p><a href='/lecomandocontrole.htm'>Ler comando do controle.</a><a href='/configRede.htm'><br>Configurar rede.</a></p><br></body></html>");
         if(cipSend(id,buf,0)==1){
             printf("Requisicao enviada!\n");    
         }else{
@@ -523,7 +523,7 @@
         //Pegando o IP
         modemCom::leIP();
         //sprintf(buf,"<!DOCTYPE html><form action='cwjap.htm' method='GET'><fieldset><legend>Parametros de Configuracao da rede:</legend>SSID WiFi:<br><input type='text' name='ssid' value=''><br>Senha WiFi:<br><input type='text' name='password' value=''><br>IP:(0 para DHCP)<br><input type='text' name='ip' value='0'><br>Porta:<br><input type='text' name='port' value=''><br><input type='submit' value='Configurar'></fieldset></form>");
-        sprintf(buf,"<!DOCTYPE html>IP Atual = %s.<br><form action='cwjap.htm' method='GET'><fieldset><legend>Parametros de Configuracao da rede:</legend>SSID WiFi:<br><input type='text' name='ssid' value='%s'><br>Senha WiFi:<br><input type='text' name='password' value='%s'><br>PORTA:<br><input type='text' name='porta' value='%s'><br>Host:<br><input type='text' name='host' value='%s'><br>Periodo<br><input type='text' name='periodo' value='%lu'><br><input type='submit' value='Configurar'></fieldset></form>",modemCom::status.STAIP,modemCom::status.ssid,modemCom::status.password,modemCom::status.port,modemCom::status.host,modemCom::status.periodo);        
+        sprintf(buf,"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE html><html><head><title>ConfigRede DROME</title></head><body>IP Atual = %s.<br><form action='cwjap.htm' method='GET'><fieldset><legend>Parametros de Configuracao da rede:</legend>SSID WiFi:<br><input type='text' name='ssid' value='%s'><br>Senha WiFi:<br><input type='text' name='password' value='%s'><br>PORTA:<br><input type='text' name='porta' value='%s'><br>ServerIP:<br><input type='text' name='serverIP' value='%s'><br>Host:<br><input type='text' name='host' value='%s'><br>Periodo<br><input type='text' name='periodo' value='%lu'><br><input type='submit' value='Configurar'></fieldset></form></body>",modemCom::status.STAIP,modemCom::status.ssid,modemCom::status.password,modemCom::status.port,modemCom::status.serverIP,modemCom::status.host,modemCom::status.periodo);        
         cipSend(id,buf,0);
         encontrado = 1;
     }
@@ -540,7 +540,7 @@
         if(IrDetect.read_ms()<timeout){
             serializaPacoteIR(modemCom::status.connIDWebServer);            
         }else{
-            sprintf(buf,"erro");   
+            sprintf(buf,"HTTP/1.1 200 OK\r\nContent-Type: text\r\n\r\nerro");   
             if(cipSend(id,buf,0)==1){
                 printf("Requisicao enviada!\n");    
             }
@@ -550,19 +550,21 @@
     }
     
     if(strstr(webServerBuff,"cwjap.htm")&&(!encontrado)){
-        //cwjap.htm?ssid=VSA&password=vitaeBBYP&porta=4000&host=www.vitaesolucoes.com.br&periodo=60
+        //cwjap.htm?ssid=VSE&password=vitaeBBYP&porta=4010&serverIP=191.252.142.51&host=www.vitaesolucoes.com.br&periodo=900
+        
+        pc.printf("Lido de cwjap <%s>.\r\n\r\n",webServerBuff);
         
         strtok(webServerBuff,"=");
         strcpy(modemCom::status.ssid,strtok(NULL,"&")); //pegando ssid        
         
         strtok(NULL,"=");
         strcpy(modemCom::status.password,strtok(NULL,"&")); //pegando password
-        
-        //strtok(NULL,"=");
-        //strcpy(modemStatus.STAIP,strtok(NULL,"&")); //pegando ip
+                
+        strtok(NULL,"=");
+        strcpy(modemCom::status.port,strtok(NULL,"&")); //pegando port
         
         strtok(NULL,"=");
-        strcpy(modemCom::status.port,strtok(NULL,"&")); //pegando port
+        strcpy(modemCom::status.serverIP,strtok(NULL,"&")); //pegando serverIP
         
         strtok(NULL,"=");
         strcpy(modemCom::status.host,strtok(NULL,"&")); //pegando host
@@ -570,6 +572,7 @@
         strtok(NULL,"=");
         strcpy(buf,strtok(NULL," ")); //pegando periodo
         modemCom::status.periodo = atoi(buf);
+        modemCom::status.periodoConfiguracao = modemCom::status.periodo;
         
         pc.printf("Antes <%s>.\r\n",modemCom::status.ssid);
         diversos::strReplace(modemCom::status.ssid,"%20"," ");
@@ -600,10 +603,10 @@
     if(mudaRede){            
         mudaRede = false;
         modemCom::sendToModem("AT+CIPSERVER=0\r\n",1,&modemCom::status.OK,NULL,2000,1,1);        
-        pc.printf("Mudando para rede:\r\nSSID:%s\r\nPASSWORD:%S\r\nPORTA:%s\r\nHOST:%s\r\nPERIODO:%lu\r\n\r\n",modemCom::status.ssid,modemCom::status.password,modemCom::status.port,modemCom::status.host,modemCom::status.periodo);
+        pc.printf("Mudando para rede:\r\nSSID:%s\r\nPASSWORD:%S\r\nPORTA:%s\r\nserverIP:%s\r\nHOST:%s\r\nPERIODO:%lu\r\n\r\n",modemCom::status.ssid,modemCom::status.password,modemCom::status.port,modemCom::status.serverIP,modemCom::status.host,modemCom::status.periodo);
         if(sdCard::abreArquivo(&sdCard::config,"w")){
             pc.printf("Guardando config.\r\n");
-            fprintf(sdCard::config.fp,"SSID:%s\r\nPASSWORD:%s\r\nPORT:%s\r\nHOST:%s\r\nPERIODO:%lu",modemCom::status.ssid,modemCom::status.password,modemCom::status.port,modemCom::status.host,modemCom::status.periodo);
+            fprintf(sdCard::config.fp,"SSID:%s\r\nPASSWORD:%s\r\nPORT:%s\r\nserverIP:%s\r\nHOST:%s\r\nPERIODO:%lu",modemCom::status.ssid,modemCom::status.password,modemCom::status.port,modemCom::status.serverIP,modemCom::status.host,modemCom::status.periodo);
             sdCard::fechaArquivo(&sdCard::config);
             modemCom::inicializaModem();
             modemCom::conectaWiFi();
@@ -614,6 +617,7 @@
 bool modemCom::leIP(void){    
     char *ptr;    
     sendToModem("AT+CIFSR\r\n",1,NULL,"+CIFSR:STAIP,",200,1,1);
+    pc.printf("Lido de leIP <%s>.\r\n",modemCom::bufIn);
     ptr=strstr(modemCom::bufIn,"+CIFSR:STAIP,");
     if(ptr) {        
         ptr = strtok(ptr,"\"");
@@ -863,6 +867,12 @@
             ptr = strtok(NULL,"\r\n");        
             strcpy(modemCom::status.port,ptr);            
             
+            //Pegando serverIP
+            fgets(modemCom::status.host,50,sdCard::config.fp);  //Usando host como buffer
+            ptr = strtok(modemCom::status.host,":");            //Usando host como buffer
+            ptr = strtok(NULL,"\r\n");
+            strcpy(modemCom::status.serverIP,ptr);
+                        
             //Pegando host
             fgets(modemCom::status.host,50,sdCard::config.fp);
             ptr = strtok(modemCom::status.host,":");
@@ -878,17 +888,19 @@
             strcpy(modemCom::status.ssid,"VSE");
             strcpy(modemCom::status.password,"vitaeBBYP");
             strcpy(modemCom::status.port,"80");
+            strcpy(modemCom::status.serverIP,"191.252.142.51");
             strcpy(modemCom::status.host,"www.vitaesolucoes.com.br");
             modemCom::status.periodo = 900;
          }
         sdCard::fechaArquivo(&sdCard::config);
-        pc.printf("Lidos os parametros de configuracao de wifi como sendo:\r\nSSID:<%s>\r\nPASSWORD:<%s>\r\nPORT:<%s>\r\nHOST:<%s>\r\nPERIODO:%lu\r\n",modemCom::status.ssid,modemCom::status.password,modemCom::status.port,modemCom::status.host,modemCom::status.periodo);
+        pc.printf("Lidos os parametros de configuracao de wifi como sendo:\r\nSSID:<%s>\r\nPASSWORD:<%s>\r\nPORT:<%s>\r\nserverIP:<%s>\r\nHOST:<%s>\r\nPERIODO:%lu\r\n",modemCom::status.ssid,modemCom::status.password,modemCom::status.port,modemCom::status.serverIP,modemCom::status.host,modemCom::status.periodo);
         pc.printf("Iniciando conexao wifi.\r\n");
         return true;        
     }else{
             strcpy(modemCom::status.ssid,"VSE");
             strcpy(modemCom::status.password,"vitaeBBYP");
-            strcpy(modemCom::status.port,"4000");
+            strcpy(modemCom::status.port,"80");
+            strcpy(modemCom::status.serverIP,"191.252.142.51");
             strcpy(modemCom::status.host,"www.vitaesolucoes.com.br");
             modemCom::status.periodo = 900;
             return false;