Ayuda con sprintf


hola leyendo este hilo http://forum.arduino.cc/index.php?topic=277153.0 me e encontrado que  si utilizo lo que ustedes han expuesto trabaja bien pero solo con una variable, pero la segunda se pierde, me explico mejor tengo un gps que toma la latitud y longitud ambos como flotantes, la idea es enviar un sms con los dos valores través de sprintf obviamente en un solo mensaje pero no logro crear el empaque para enviarlos, alguna idea, desde ya muchas gracias adjunto el codigo.

float latitude,longitude;

gps.f_get_position(&latitude, &longitude);
gps.stats(&chars, &sentences, &failed_checksum);

char* buffn="";
char* buff="";
  dtostrf(longitude,10,6,buff);
  dtostrf(latitude,10,6,buffn);
  concatenada
   sprintf (string,"latitud: %d|longitud: %d| con s ", buffn,buff);
   serial.println(string);

aspecto aproximado que hubiera tenido tu post si hubieras leído detenidamente las normas.
hola leyendo este hilo http://forum.arduino.cc/index.php?topic=277153.0 me e encontrado que  si utilizo lo que ustedes han expuesto trabaja bien pero solo con una variable, pero la segunda se pierde, me explico mejor tengo un gps que toma la latitud y longitud ambos como flotantes, la idea es enviar un sms con los dos valores través de sprintf obviamente en un solo mensaje pero no logro crear el empaque para enviarlos, alguna idea, desde ya muchas gracias adjunto el codigo.

code: [select]
float latitude,longitude;

gps.f_get_position(&latitude, &longitude);
gps.stats(&chars, &sentences, &failed_checksum);

char* buffn="";
char* buff="";
  dtostrf(longitude,10,6,buff);
  dtostrf(latitude,10,6,buffn);
  concatenada
   sprintf (string,"latitud: %d|longitud: %d| con s ", buffn,buff);
   serial.println(string);

por favor, echa un vistazo las normas del foro, y aprende manejar un poco los distintos iconos del editor para que tus post tengan un aspecto más adecuado. gracias.

y ahora paso responderte lo que creo que visto.
en primer lugar, los buffers buffn y buff son cadenas vacías, con lo que cuando hagas el dtostrf e intente almacenar algo en ellos, se van desbordar, con consecuencias imprevisibles.
define ambos, bien metiendo entre sus comillas un número de caracteres suficientes para lo que vas enviar, o bien en la forma char buffn[20]; (reservaría 20 caracteres).
y luego, en el sprintf, creo que en lugar de %d deberías poner %s, pues los parámetros son cadenas.
prueba y comentas.
saludos.




Arduino Forum > International > Español > Software (Moderators: surbyte, Hector_A) > Ayuda con sprintf


arduino

Comments

Popular posts from this blog

Valutazione Template - Joomla! Forum - community, help and support

SD Datastring Convention

First use of Arduino Uno : avrdude error on Blink uploading