teste de publish

Dependencies:   DS1820 HighSpeedAnalogIn devices mbed

Revision:
2:55b7b466e742
Parent:
1:0e0967c88590
Child:
3:9598af355293
--- a/modem.cpp	Thu Mar 30 19:54:09 2017 +0000
+++ b/modem.cpp	Wed May 10 12:57:13 2017 +0000
@@ -97,7 +97,7 @@
     sprintf(aux,";imsi=%s}log",modemCom::status.MAC);    
     sdCardBuf.fill(aux,strlen(aux));
     
-    if((!modemCom::status.emComunicacao)&&(!sdCard::arquivoAberto())){
+    if(!sdCard::arquivoAberto()){
         sdCard::insereDadosArquivo(&sdCard::armazenamento,sdCardBuf.get(),sdCardBuf.getLength());
     }
 }
@@ -125,7 +125,7 @@
         case dadosArmazenados:
             if(!sdCard::preparaEnvio()){
                 pc.printf("Nao foi possivel preparar o envio.\n");
-                return false;
+                return false;                
             }
             if(sdCard::envio.bytes==0) {
                 sdCard::getFileTam(&sdCard::envio);
@@ -139,10 +139,10 @@
     
     switch(tipoDado) {
         case dadosArmazenados:
-                result = modemCom::postFileCommandMode("www.vitaesolucoes.com.br","/drome/Parser/",&sdCard::envio);                
+                result = modemCom::postFileCommandMode(serverAddress,"/drome/Parser/",&sdCard::envio);                
             break;
         case dadosStatus:
-                result = modemCom::postFileCommandMode("www.vitaesolucoes.com.br","/drome/Parser/",&sdCard::status);
+                result = modemCom::postFileCommandMode(serverAddress,"/drome/Parser/",&sdCard::status);
             break;
     }
     
@@ -301,7 +301,7 @@
     passaParaProximaParte = false;
     maxTentativas = maxRetentativasEnvioParteArquivo;
     while((maxTentativas)&&(!passaParaProximaParte)) {
-        sprintf(aux,"AT+CIPSEND=1,%u\r\n",restoDoEnvio+19); //Para incluir "\n--xxBOUNDARYxx--\n\n" no fim da msg http
+        sprintf(aux,"AT+CIPSEND=1,%u\r\n",restoDoEnvio+strlen("\n--xxBOUNDARYxx--\n\n")); //Para incluir "\n--xxBOUNDARYxx--\n\n" no fim da msg http
         if(modemCom::sendToModem(aux,1,&modemCom::status.PROMPT_ENVIO_COMMAND_MODE,100,3)) {
             for(numeroByteSendoEnviado=0; numeroByteSendoEnviado<restoDoEnvio; numeroByteSendoEnviado++) {
                 //Envio os bytes aqui! Menos o ultimo para ter o check;
@@ -443,6 +443,17 @@
     
     
     
+    if(strstr(bufInPtr,"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://vitaesolucoes.com.br/drome/assets/local/images/favicon/favicon.ico\" type=\"image/x-icon\"></html>");
+        if(cipSend(connID,buf,0)==1){
+            printf("Requisicao enviada!\n");    
+        }else{
+            printf("Requisicao nao enviada 1!!\n");
+        }        
+        encontrado = 1;
+    }
+    
     if(strstr(bufInPtr,"comandos.htm")){
         
         //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>");
@@ -485,11 +496,11 @@
         strcpy(modemCom::status.port,strtok(NULL," ")); //pegando port        
         
         if(strlen(modemCom::status.ssid) && strlen(modemCom::status.password)){
-            sprintf(buf,"Novos parametros: ssid = %s, password = %s, port = %s.\n",modemCom::status.ssid,modemCom::status.password,modemCom::status.port);
+            sprintf(buf,"HTTP/1.1 200 OK\n\nACK",modemCom::status.ssid,modemCom::status.password,modemCom::status.port);
             cipSend(connID,buf,0);            
             mudaRede = true;
         }else{
-            sprintf(buf,"Erro nos parametros.\n");
+            sprintf(buf,"HTTP/1.1 200 OK\n\nNACK");
             cipSend(connID,buf,0);                
         }        
         encontrado = 1;
@@ -540,7 +551,7 @@
         if(IrDetect.read_ms()<timeout){
             serializaPacoteIR(connID);            
         }else{
-            sprintf(buf,"callback({\"response\": \"ERROR\"})");   
+            sprintf(buf,"erro");   
             if(cipSend(connID,buf,0)==1){
                 printf("Requisicao enviada!\n");    
             }
@@ -550,8 +561,7 @@
         led2=0;
     }
     
-    if(!encontrado){
-        
+    if(!encontrado){        
         sprintf(buf,"Pagina Nao Encontrada.");
         if(cipSend(connID,buf,0)==1){
             printf("Requisicao enviada!\n");    
@@ -560,8 +570,9 @@
         }         
     }
     
-    sprintf(buf,"AT+CIPCLOSE=%u\r\n",connID);
-    sendToModem(buf,1,&modemCom::status.OK,2000,1);        
+    modemCom::closeConnection(connID);
+    /*sprintf(buf,"AT+CIPCLOSE=%u\r\n",connID);
+    sendToModem(buf,1,&modemCom::status.OK,300,1);*/
     
     if(mudaRede){            
         mudaRede = false;
@@ -577,9 +588,9 @@
 }
 
 int16_t modemCom::getRSSI(void){
-    char *ptr;
+    /*char *ptr;
     int16_t RSSI = 0;
-    if(modemCom::sendToModem("modem:AT+CWLAP\r\n",1,&modemCom::status.OK,1000,1)){        
+    if(modemCom::sendToModem("AT+CWLAP\r\n",1,&modemCom::status.OK,1000,1)){        
         ptr = strstr(modemCom::bufIn,(const char*)modemCom::status.ssid);
         if(ptr){
             ptr = strtok(ptr,",");            
@@ -587,7 +598,8 @@
             RSSI = atoi(ptr);
         }
     }
-    return RSSI;
+    return RSSI;*/
+    return -50;
 }
     
 void modemCom::conectaWiFi(void){
@@ -600,26 +612,47 @@
         
         //Pegando SSID        
         fgets(modemCom::status.ssid,40,sdCard::config.fp);
-        ptr = strtok(modemCom::status.ssid,":");
-        ptr = strtok(NULL,"\r\n");
-        strcpy(modemCom::status.ssid,ptr);
-        
-        //Pegando PASSWORD
-        fgets(modemCom::status.password,50,sdCard::config.fp);
-        ptr = strtok(modemCom::status.password,":");
-        ptr = strtok(NULL,"\r\n");
-        strcpy(modemCom::status.password,ptr);
-        
-        //Pegando PORT
-        fgets(modemCom::status.port,20,sdCard::config.fp);
-        ptr = strtok(modemCom::status.port,":");
-        ptr = strtok(NULL,"\r\n");
-        strcpy(modemCom::status.port,ptr);
-        
+        ptr = strstr(modemCom::status.ssid,"SSID");
+        if(ptr!=NULL){
+            ptr = strtok(modemCom::status.ssid,":");        
+            ptr = strtok(NULL,"\r\n");
+            strcpy(modemCom::status.ssid,ptr);
+            
+            //Pegando PASSWORD
+            fgets(modemCom::status.password,50,sdCard::config.fp);
+            ptr = strtok(modemCom::status.password,":");
+            ptr = strtok(NULL,"\r\n");
+            strcpy(modemCom::status.password,ptr);
+            
+            //Pegando PORT
+            fgets(modemCom::status.port,20,sdCard::config.fp);
+            ptr = strtok(modemCom::status.port,":");
+            ptr = strtok(NULL,"\r\n");        
+            strcpy(modemCom::status.port,ptr);
+        }else{
+            strcpy(modemCom::status.ssid,"VSA");
+            strcpy(modemCom::status.password,"vitaeBBYP");
+            strcpy(modemCom::status.port,"80");
+         }
         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\n\r\n",modemCom::status.ssid,modemCom::status.password,modemCom::status.port);        
-        pc.printf("Iniciando conexao wifi.\r\n");
+        pc.printf("Iniciando conexao wifi.\r\n");        
+    }else{
+            strcpy(modemCom::status.ssid,"VSA");
+            strcpy(modemCom::status.password,"vitaeBBYP");
+            strcpy(modemCom::status.port,"80");
+         }           
         
+        //Mudando mode para AP e Station
+        if(modemCom::sendToModem("AT+CWMODE=3\r\n",1,&modemCom::status.OK,10000,1)) {
+            pc.printf("Modo AP+STATION aceito.\n");
+        }
+        
+        //AT+CWJAP=\"\",\"\"\r\n
+        sprintf(aux,"AT+CWJAP=\"%s\",\"%s\"\r\n",modemCom::status.ssid,modemCom::status.password);
+        if(modemCom::sendToModem(aux,1,&modemCom::status.OK,10000,1)) {
+            pc.printf("WiFi Conectado.\n");
+        }
             
         //AT+CIPSERVER=1,80
         if(modemCom::sendToModem("AT+CIPMUX=1\r\n",1,&modemCom::status.OK,250,4)) {
@@ -634,7 +667,7 @@
     
         if(modemCom::sendToModem("AT+CIPSTO=60\r\n",1,&modemCom::status.OK,250,4)) {
             pc.printf("Recebeu o comando AT+CIPSTO=60.\n");
-        }
+        }        
         
         sprintf(aux,"AT+CWSAP_CUR=\"DROME_WIFI_%s\",\"VsaDROME\",5,3\r\n",modemCom::status.MAC);
         if(modemCom::sendToModem(aux,1,&modemCom::status.OK,250,4)) {
@@ -648,14 +681,7 @@
         
         if(modemCom::sendToModem("AT+CWDHCP_CUR=2,1\r\n",1,&modemCom::status.OK,250,4)) {
             pc.printf("Recebeu o comando AT+CWDHCP_CUR=2,1.\n");
-        }   
-
-        //AT+CWJAP=\"\",\"\"\r\n
-        sprintf(aux,"AT+CWJAP=\"%s\",\"%s\"\r\n",modemCom::status.ssid,modemCom::status.password);
-        if(modemCom::sendToModem(aux,1,&modemCom::status.OK,10000,1)) {
-            pc.printf("WiFi Conectado.\n");
-        }        
-    }
+        }
 
 }