#c #arduino
#c #arduino
Вопрос:
Я пытаюсь сохранить IP-адрес во внешней строке. Значение моего IP-адреса находится в .cpp, но затем я хочу сохранить его в своем файле .h. Я сохраняю ее как строку, так как хочу сделать ее ссылкой. (http:// «ip-адрес» /)
Мой файл .h
extern std::string ipadd1 = "";
Мой файл .cpp
if (connectWifi("", "") == WL_CONNECTED) {
DEBUG_WM(F("IP Address:"));
DEBUG_WM(WiFi.localIP());
ipadd1 = String(WiFi.localIP());
//connected
return true;
}
Комментарии:
1. Итак, в чем вопрос?
2. как вы ее конвертируете?
3. Вы должны отметить
WiFi.localIP().toString().c_str();
как принятый ответ.
Ответ №1:
Преобразуйте IPAddress
в String
, затем получите const char *
и преобразуйте это в std::string
.
ipadd1 = WiFi.localIP().toString().c_str();
Комментарии:
1.
ipadd1 = std::string(WiFi.localIP().toString().c_str())
Работает? Обратите внимание, что есть разница междуstd::string
иString
.2. @KamilCuk можете ли вы обновить свой ответ выше, чтобы отразить это? Возможно, стоит предоставить оба примера, один для char * и один для std::string .
Ответ №2:
5-минутный поиск дал мне описание функции WiFi.localIP (), оттуда я знал, что она возвращает IPAddress
объект. Следуяforum.arduino.cc Тема: Как управлять переменными IPAddress / преобразовать в строку вы можете использовать следующую функцию для преобразования ее в строку:
// author apicquot from https://forum.arduino.cc/index.php?topic=228884.0
String IpAddress2String(const IPAddressamp; ipAddress)
{
return String(ipAddress[0]) String(".")
String(ipAddress[1]) String(".")
String(ipAddress[2]) String(".")
String(ipAddress[3]);
}
IPAddress
может обрабатываться просто как массив из 4 int
сек.
Комментарии:
1. Как назначить переменной tho?
Ответ №3:
Если мы хотим записать Wifi.localIP()
в oled(SSD1306)
или последовательный, просто напишите WiFi.localIP().toString()
. Вот так:
Serial.print("Connected, IP address: ");
Serial.print(WiFi.localIP().toString());
display.clear();
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_10);
display.drawString(0, 0, " WiFi is Connected." );
display.drawString(0, 10, " IP address: " WiFi.localIP().toString() );
Ответ №4:
Работа с Heltec … другие ответы просто не работают для меня. Я использовал это:
IPAddress ipa = WiFi.localIP();
uint8_t IP_array[4]= {ipa[0],ipa[1],ipa[2],ipa[3]};
String strIP=
String(IP_array[0]) "."
String(IP_array[1]) "."
String(IP_array[2]) "."
String(IP_array[3]);