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?
Tags:
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.
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+
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por