Pages: [1]   Go Down
Author Topic: Sprintf  (Read 719 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Je rencontre un souci en utilisant sprintf.

Voici mon code :

Code:
long lat2, lon2; 
Serial.println(lat2);
 Serial.println(lon2);
 sprintf(adresse,"AT+HTTPPARA=\"URL\",\"site.fr/val.php?id=1&lat=%d&long=%d\"",lat2,lon2);
 Serial.print(adresse);
  mySerial.println(adresse);

Et ce que j'obtiens sur mon Serial :
Code:
449205
21367
AT+HTTPPARA="URL","site.fr/val.php?id=1&lat=29753&long=7"

Je ne comprend d'où viennent ce 29753 et ce 7...

J'ai dû faire une erreur quelque part mais je la vois vraiment pas.
Logged

France
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3626
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
sprintf(adresse,"AT+HTTPPARA=\"URL\",\"site.fr/val.php?id=1&lat=%d&long=%d\"",lat2,lon2);

449205
21367
AT+HTTPPARA="URL","site.fr/val.php?id=1&lat=29753&long=7"
Quote
Je ne comprend d'où viennent ce 29753 et ce 7...


lat2 et lon2 sont définis comme des long. Il faudrait le préciser dans la ligne du sprintf

Code:
sprintf(adresse,"AT+HTTPPARA=\"URL\",\"site.fr/val.php?id=1&lat=%ld&long=%ld\"",lat2,lon2); // il faut ajouter l devant le d pour indiquer que c'est un long

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci beaucoup, c'était ça !  smiley
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Au passage tu remarqueras qu'une grande partie de ta chaine est statique smiley-wink

Seule la partie verte change :
Quote
sprintf(adresse, "AT+HTTPPARA=\"URL\",\"site.fr/val.php?id=1&lat=%ld&long=%ld\"", lat2, lon2);

Tu peut donc gagner en vitesse et en RAM en faisaint comme ceci :
Code:
Serial.print(F("AT+HTTPPARA=\"URL\",\"site.fr/val.php?id=1&lat="));
Serial.print(lat2);
Serial.print(F("&long="));
Serial.print(lon2);
Serial.println(adresse);
Plus besoin de sprintf (qui est super lourd et gourmand en ressource).
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Pages: [1]   Go Up
Jump to: