Странный опыт работы со строкой concat
У меня действительно плохой день с concat. Я не совсем уверен, где я сделал неправильно .. Посмотрите на мою функцию ниже.
void sim900aSendHttp(String bid, String lati, String longi) {
Serial.println("BUSID:"+bid+",LAT:"+lati+"LONG:"+longi);
String httpget = "http://uumresearch.com/bustracking/update_location.php?busid="+bid+"&latitude="+lati+"&longitude="+longi+"";
//String httpget = "http://uumresearch.com/bustracking/update_location.php?busid=KDF8860&latitude=6.533415&longitude=106.33345";
Serial.println(httpget);
serialSIM800.println("AT+HTTPPARA=\"URL\",\"" + httpget + "\"");
delay(3000);
serialSIM800.println("AT+HTTPACTION=0");
delay(8000);
}
Проблема связана с:
String httpget = "http://uumresearch.com/bustracking/update_location.php?busid="+bid+"&latitude="+lati+"&longitude="+longi+"";
где отображается только серийный монитор
http://uumresearch.com/bustracking/update_location.php?busid=KDF8860
отсутствуют переменные "lat" и "longi" в строке concat.
Подтверждено, что обе переменные доступны функции, напечатанной
Serial.println("BUSID:"+bid+",LAT:"+lati+"LONG:"+longi);
@Hanis, 👍0
Обсуждение1 ответ
+
на const char *
увеличивает указатель. только String имеет +
, перегруженный как конкатенация правого операнда (не левого). поэтому "abc" + str + "efg"
не будет работать, даже если str
является строкой. Что будет работать, так это String("abc") + str + "efg"
, но small Строки будут очень быстро фрагментировать динамическую память MCU, и скетч выйдет из строя.
Распечатайте детали непосредственно на serialSIM800
или используйте snprintf
для построения строк или попробуйте CStringBuilder из моей библиотеки StreamLib
- C++ против языка Arduino?
- avrdude ser_open() can't set com-state
- Как читать и записывать EEPROM в ESP8266
- Float печатается только 2 десятичных знака после запятой
- устаревшее преобразование из строковой константы в 'char*'
- Запрограммировать ATMega328P и использовать его без платы Arduino.
- Разница между print() и println()
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
Какую плату ардуино вы используете?, @Jot