Hello
merci pour ta réponse. J'ai du mal a te suivre.
Oui en effet, il y a 26 caractere entre les "&xxx="
Pour les lat lon, ..., il y a un maximum de 15 caracteres, mais dans mon cas il y en a 10
J'ai change le code ainsi
// A savoir que:
char coords[46];
#define COORDSSIZ 15
char lon[COORDSSIZ];
char lat[COORDSSIZ];
char alt[COORDSSIZ];
char time[20];
char vel[COORDSSIZ];
void getGPSCoords(){
#ifdef DEBUG
stat=gps.getStat();
if(stat==1){
Serial.println("NOT FIXED");
}else if(stat==0){
Serial.println("GPS OFF");
}else if(stat==2){
Serial.println("2D FIXED");
}else if(stat==3){
Serial.println("3D FIXED");
}
delay(5000);
#endif
//Get data from GPS
gps.getPar(lon,lat,alt,time,vel);
Serial.println(lon);
Serial.println(lat);
Serial.println(alt);
Serial.println(time);
Serial.println(vel);
strcpy(coords,"long=");
strncat(coords,lon,COORDSSIZ); //21
strcat(coords,"&lat="); //25
strncat(coords,lat,COORDSSIZ);//40
strcat(coords,"&alti="); //46
/*
strncat(coords,alt,COORDSSIZ); //61
strcat(coords,"&t="); //64
strncat(coords,time,20); //84
strcat(coords,"&vel="); //89
strncat(coords,vel,COORDSSIZ); //114
*/
#ifdef DEBUG
Serial.print(F("Coords : "));
Serial.println(coords);
#endif
}
A savoir que la fonction gps.getPar(lon,lat,alt,time,vel);
fourni les valeurs pour :
lon : 608.487270
lat : 4613.154144
alt : 449.156219
time : 20130714172921.000
vel : 0.000000
Mais que veux tu dire par
A chaque concaténation on gagne le terminateur de chaîne
Es-ce que le terminateur de chaine est le "\0"
Parce que la en effet, j'ai pas pensé à ca, et pour être franc je ne sais pas comment modifier mes variable/script.
Je pensais que de donner une valeur à une variable char, le \0 est automatique.
Pourrais-tu m'éclairecir, la dessus?
Il y a une autre chose intéressante que j'ai constaté hier soir.
Dans le code que j'ai collé, ci-dessus, il y a un commentaire qui rend une partie de strcat non fonctionnel.
Ma variable coords affiche ce que je veux
Coords : long=608.487270&lat=4613.154144&alti=
Mais du moment quze je décommente cette partie, il plante.
Donc ca plante à partir de
strcat(coords,"&alti="); //46
Bien entendu, quand je décommente cette partie, j'augmente la valeur de
char coords[46];
comme par exemple
char coords[114];