teste de publish
Dependencies: DS1820 HighSpeedAnalogIn devices mbed
Diff: modem.cpp
- 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;