Olá pessoal,

 

Estou tentando usar o método httpPOST() da lib inetGSM com o shield GPRS, já tentei de várias formas e ainda não consegui concatenar um float com um char*.

 

Preciso concatenar as variáveis latitude e longitude para criar os parametros que serão enviados para a página, devem ficar assim:

lat=-2142091.7332454&lon=-5374203.1160343

 

Mas nas vezes que tentei, a formatação retirava o que tinha depois do ponto e em outro caso, só mostrava os dois primeiros números depois do ponto...

 

Alguma outra forma de criar a variável char* data com as variáveis de posição concatenada são bem vindas.

 

Exemplo do código:

 

char msg[50];

float latitude   = -2142091.7332454;
float longitude = -5374203.1160343;

 

// essa concatenação não funciona, mas preciso algo assim
char* data = "lat=" + latitude + "&lon=" + longitude;

 

inet.httpPOST("ww.meusite.com", 80, "/save", data, msg, 50);

 

Alguma luz?

Exibições: 1564

Responder esta

Respostas a este tópico

Não da certo a concatenação porque são de tipos diferente o float do char*, para dar certo tenda converter o float em uma String ou uma sequencia de carácter.

Olá Everton,

No caso você está programando para o Arduino correto? Se for para ele, encontrei o mesmo questionamento no fórum do Arduino, e lá todos perguntam se não existe uma função "fprintf" que faça isto, e aparentemente não tem.

[Link] 

http://forum.arduino.cc/index.php/topic,44262.0.html

O que se pode fazer é inclusive uma solução que eles apontam, antes de formatar os valores você pode multiplicá-los com um valor de precisão, por exemplo se você quiser apresentar 2 casas decimais, multiplique por 100, se quiser apresentar 3 casas decimais, multiplique por 1000. E assim por diante.

Dai você usar o seu método de conversão em um array char, e depois só trabalha o array para acrescentar o ponto decimal do valor.

Para formatar os valores no array char você tem alguma dúvida? 

Indico o livro "C Completo e Total".

Espero ter ajudado.

T+

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço