Помогите с inet.httpGET через GPRS для платы Arduino Mega gBoard GSM/GPRS

pasha
Offline
Зарегистрирован: 15.10.2014

Здравствуйте, есть вроде простая задача, но с другой стороны, уже пытаюсь решить ее неделю и ничего не выходит.

Есть веб сервер, который обрабатывает GET и POST запросы с моей арнуины.

Я и использую inet.httpGET функцию из библиотеки http://www.gsmlib.org

Когда я делаю POST запрос, я могу нормально передать запрос на веб сервер.
Но у меня есть также задача получить данные с сервера. Я делаю:
 
  qq=inet.httpGET("mysite", 80, "/get?name=temperature", msg, 1023);  
 
В идеале, я долен в переменную msg получить ответ сервера. Но ничего не происходит.
Значение qq - 0; msg - пусто.
 
Помогите пожалуйста. Не смог найти ответы в инете.

 

Araris
Offline
Зарегистрирован: 09.11.2012

Здесь принято выкладывать скетчи, о которых идет речь в вопросе/просьбе.

pasha
Offline
Зарегистрирован: 15.10.2014

Sorry,

-----------

#include "SIM900.h"
#include <SoftwareSerial.h>
#include "inetGSM.h"
#include "DHT.h"
 
InetGSM inet;
 
char msg[50];
int numdata;
 
 
void setup()
{
     //Serial connection.
     Serial.begin(9600);
     Serial.println("GSM Shield testing.");
     //Start configuration of shield with baudrate.
     //For http uses is raccomanded to use 4800 or slower.
     if (gsm.begin(9600)) {
          Serial.println("\nstatus=READY");
          started=true;
     } else Serial.println("\nstatus=IDLE");
 
     if(started) {
          //GPRS attach, put in order APN, username and password.
          //If no needed auth let them blank.
          if (inet.attachGPRS("internet", "", ""))
               Serial.println("status=ATTACHED");
          else Serial.println("status=ERROR");
          delay(1000);
 
          //Read IP address.
          gsm.SimpleWriteln("AT+CIFSR");
          delay(5000);
          //Read until serial buffer is empty.
          gsm.WhileSimpleRead();
 
          //TCP Client GET, send a GET request to the server and
          //save the reply.
 
          numdata=inet.httpGET("127.0.0.1", 80, "/get?name=temperature", msg, 50);
          //Print the results.
          Serial.println("\nNumber of data received:");
          Serial.println(numdata);
          Serial.println("\nData received:");
          Serial.println(msg);
     }
};
 
void loop()
{
     //Read for new byte on serial hardware,
     //and write them on NewSoftSerial.
     serialhwread();
     //Read for new byte on NewSoftSerial.
     serialswread();
};
 
void serialhwread()
{
     i=0;
     if (Serial.available() > 0) {
          while (Serial.available() > 0) {
               inSerial[i]=(Serial.read());
               delay(10);
               i++;
          }
 
          inSerial[i]='\0';
          if(!strcmp(inSerial,"/END")) {
               Serial.println("_");
               inSerial[0]=0x1a;
               inSerial[1]='\0';
               gsm.SimpleWriteln(inSerial);
          }
          //Send a saved AT command using serial port.
          if(!strcmp(inSerial,"TEST")) {
               Serial.println("SIGNAL QUALITY");
               gsm.SimpleWriteln("AT+CSQ");
          }
          //Read last message saved.
          if(!strcmp(inSerial,"MSG")) {
               Serial.println(msg);
          } else {
               Serial.println(inSerial);
               gsm.SimpleWriteln(inSerial);
          }
          inSerial[0]='\0';
     }
}
 
void serialswread()
{
     gsm.SimpleRead();
}
pasha
Offline
Зарегистрирован: 15.10.2014
DB:RECVD CMD
ATT: CONNECT OK
RIC: 
OK
 
ATT: OK
RIC: 
CONNECT OK
 
DB:OK TCP
ATT: >
RIC: 
DB:>
ATT: SEND OK
RIC: 
SEND OK
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 31
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-AspNetMvc-Version: 2.0
X-Powe
DB:SENT
Starting read..
Waiting for Data.............................................
CLOSED
 
Done..
 
Number of data received:
10
 
Data received:
 
pasha
Offline
Зарегистрирован: 15.10.2014

Хотя мы видим что Content-Length: 31 показывает что 31 символ есть в возврате.

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

А если этот запрос в браузере выполнить?

 

pasha
Offline
Зарегистрирован: 15.10.2014

В том-то и дело, что в Браузер (IE) покажет нужное значение в окне.

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

покажет или показывает?

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

И вообще сравните Ваш скетч с примером http://www.open-electronics.org/the-gsmgprs-gps-shield-some-http-connect...