2016-06-29 3 views
-3

값을 보내고 값을 데이터베이스에 삽입하려고하지만 null 값을 얻고 싶습니다.url에서 float 값을 보내는 방법, float 값을 보내는 중 null 값 가져 오기

float PHValue = Value/10; 
    float DOValue= 12.22; 
    gprsSerial.println("AT+HTTPPARA=\"URL\",\"http://itempurl.com/smartpond/AddTemprature?WaterTemperature=""+celsius+""&PHValue=""+PHValue+""&DOValue=""+DOValue+""&currentTime=06-30-2016\""); 
+0

Q. 플로트 및 문자열을 추가 할 때 얻는 이점은 무엇입니까? A. 컴파일러 오류! – stark

+0

메신저 컴파일 오류가 발생하지 않습니다. 데이터베이스에 NULL 값을 가져 오는 중이며 데이터를 이동하는 대신 해당 변수 이름을 사용합니다. 큰 따옴표 안의 문제. 동적 매개 변수가있는 API가 필요합니다. –

+0

snprintf를 사용하여 문자열에 값을 인쇄하십시오 (또는 C++ 방식으로 수행하려면 stringstream을 사용하십시오). – stark

답변

0

별도로 같은 print()를 사용하여 보낼 수 있습니다

int n_decimals = 3; 
float PHValue = Value/10; 
float DOValue= 12.22; 

gprsSerial.print("AT+HTTPPARA=\"URL\",\"http://itempurl.com/smartpond/AddTemprature?WaterTemperature="); 
gprsSerial.print(celsius, n_decimals); 
gprsSerial.print("&PHValue="); 
gprsSerial.print(PHValue, n_decimals); 
gprsSerial.print("&DOValue="); 
gprsSerial.print(DOValue, n_decimals); 
gprsSerial.println("&currentTime=06-30-2016\""); 

n_decimals 사용하면 인쇄 할 소수 자릿수를.

또는 @stark이 코멘트에 말하는 것처럼 당신이 당신의 AT 명령을 생성하는 snprintf를 사용할 수 있습니다

char command[256]; 
float PHValue = Value/10; 
float DOValue= 12.22; 

snprintf(command, sizeof(command), "AT+HTTPPARA=\"URL\",\"" 
      "http://itempurl.com/smartpond/AddTemprature?" 
      "WaterTemperature=%f&PHValue=%f&DOValue=%f" 
      "&currentTime=06-30-2016\"", celsius, PHValue, DOValue); 
gprsSerial.println(command); 

참고 : 나는 확실하지 않았다 당신이 따옴표 사이를 이동하려면 URL의 값을 원하는 경우, 그래서 나는 그들을 떠나지 않았다.