Merci beaucoup,
J'ai changé un peu mon coce, car j'avais fait trop compliquéet j'ai refait plus simple.
Mais ton exemple me sera fort utile et je prendrai le temps de le lire en entier.
Par contre je deviens fou et je crois qe j'ai des gros probleme a comprendre l'allocation des tailles pour un char.
Quand je tape 'send' dans mon terminal,
Serial.println(coords); affiche bien ca
lo=608.482777&la=4613.163541&al=459.471680&ti=20130715215238&ve=0.000000
Ce qui me rend fou, c'est quand je decommente ceci
Serial.println(strlen(coords));
mon programme plante.
Et j'ai pourtant change, comme tu l'a suggéré plus haut ceci
char coords[150];
mais ca ne vas pas mieux
J'ai refait mon code aisni:
// Ceci est aussi déclaré plus haut
char lon[15];
char lat[15];
char alt[15];
char time[14];
char vel[15];
char msg1[5];
char msg2[5];
char lo[]="lo=";
char la[]="&la=";
char al[]="&al=";
char ti[]="&ti=";
char ve[]="&ve=";
char en[]="\0";
// SEND DATA
if(!strcmp(inSerial,"send")){
#ifdef DEBUG
Serial.println(F(""));
Serial.println(F("SENDING COORDS TO THE REMOTE SERVER"));
Serial.println(F("---------------------------------------"));
#endif
#ifdef DEBUG
stat=gps.getStat();
if(stat==1){
Serial.println(F("NOT FIXED"));
}else if(stat==0){
Serial.println(F("GPS OFF"));
}else if(stat==2){
Serial.println(F("2D FIXED"));
}else if(stat==3){
Serial.println(F("3D FIXED"));
}
delay(5000);
#endif
//Get data from GPS
/*
memset(&lon, 0 , sizeof(lon));
memset(&lat, 0 , sizeof(lat));
memset(&alt, 0 , sizeof(alt));
memset(&time, 0 , sizeof(time));
memset(&vel, 0 , sizeof(vel));
*/
gps.getPar(lon,lat,alt,time,vel);
//char coords[150];
char coords[97];
//memset(&coords, 0 , sizeof(coords));
strcpy(coords,lo); //3
//strncat(coords,lon,15); //18
strcat(coords,lon);
strcat(coords,la); //22
//strncat(coords,lat,15); //37
strcat(coords,lat);
strcat(coords,al); //41
//strncat(coords,alt,15); //56
strcat(coords,alt);
strcat(coords,ti); //60
strncat(coords,time,14); //74
//strcat(coords,time);
strcat(coords,ve); //78
//strncat(coords,vel,15); //93
strcat(coords,vel);
strcat(coords,en); //95
Serial.println(coords);
// Serial.println(strlen(coords));
/*
inet.httpPOST(host, port_post, path_post, coords, "Result", 50);
*/
delay(10000);
enterCommand();
}
Pourquoi ca plante??? =(