J'ai mis un commentaire à côte des
Serial.println(parameters);
int InetGSM::httpPOST(const char* server, int port, const char* path, const char* parameters, char* result, int resultlength)
{
Serial.println(F("Starting to send"));
Serial.println(parameters); // Ceci lo=0.000000&la=0.000000&al=0.000000&ti=20130714213229.!Û%
Serial.println(parameters); // ceci lo=0.000000&la=0.000000&al=0.000000&ti=20130714213229.
boolean connected=false;
int n_of_at=0;
char itoaBuffer[8];
int num_char;
char end_c[2];
end_c[0]=0x1a;
end_c[1]='\0';
while(n_of_at<3){
if(!connectTCP(server, port)){
#ifdef DEBUG_ON
Serial.println("DB:NOT CONN");
#endif
n_of_at++;
}
else{
connected=true;
n_of_at=3;
}
}
if(!connected){
Serial.println(F("Not connected"));
return 0;
}
Serial.println(parameters); // Ceci affiche : Ê
Serial.println(parameters); // Ceci affiche encore : Ê
gsm.SimpleWrite("POST ");
gsm.SimpleWrite(path);
gsm.SimpleWrite(" HTTP/1.1\nHost: ");
gsm.SimpleWrite(server);
gsm.SimpleWrite("\n");
gsm.SimpleWrite("User-Agent: Arduino\n");
gsm.SimpleWrite("Content-Type: application/x-www-form-urlencoded\n");
gsm.SimpleWrite("Content-Length: ");
itoa(strlen(parameters),itoaBuffer,10);
gsm.SimpleWrite(itoaBuffer);
gsm.SimpleWrite("\n\n");
gsm.SimpleWrite(parameters);
gsm.SimpleWrite("\n\n");
gsm.SimpleWrite(end_c);
Serial.println(parameters); // et Ceci affiche encore : Ê
Serial.println(parameters); / et encore Ceci affiche encore : Ê....
switch(gsm.WaitResp(10000, 10, "SEND OK")){
case RX_TMOUT_ERR:
return 0;
break;
case RX_FINISHED_STR_NOT_RECV:
return 0;
break;
}
delay(50);
#ifdef DEBUG_ON
Serial.println("DB:SENT");
#endif
int res= gsm.read(result, resultlength);
Serial.println(F("Data sent"));
//gsm.disconnectTCP();
return res;
}
Selon les commentaire que j'ai mis dans le code, pourquoi 'parameters' perds sa valeurs???? alors qu'elle devrait rester
lo=0.000000&la=0.000000&al=0.000000&ti=20130714213222.000&ve=0.000000
Es-ce que j'ai fait un truc de faux dans ma function getGPSCoords() lorsque je retourne coords (return coords;)?
J'ai entendu parler de la declarer en static ou d'utiliser malloc(), mais la je suis largué car il faut que la taille de char coords[] puisse s'adapter en fonction des tailles des positions GPS.
J'espère que vous m'avez compris et que j'ai été claire et si vous arriviez à me dépanner ca serat d'une très grande utilité!!
Milles mercis
Dite moi si vous avez besoin plsu de code!!!