Страница 1 из 1

Блок имени ESP в сети (нужна помощь)

Добавлено: 11 окт 2020, 08:57
Phazz
Как мне вывести имя сети на вход? Если задаю имя сети через параметр, все компилируется. А вот через вход выдает ошибку. Как с этим бороться?

Отправлено спустя 1 час 39 минут 27 секунд:
Сама ошибка

Код: Выделить всё

C:\Users\Админ\AppData\Local\Temp\flprog\pr67\pr67.ino: In function 'void loop()':

pr67:60:27: error: no matching function for call to 'WiFiClass::setHostname(String&)'

In file included from C:\Users\�����\Desktop\PortableFLProg_6-3-1_Win64\ideV5\portable\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi\src/WiFi.h:32:0,

                 from C:\Users\Админ\AppData\Local\Temp\flprog\pr67\pr67.ino:2:

C:\Users\�����\Desktop\PortableFLProg_6-3-1_Win64\ideV5\portable\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi\src/WiFiSTA.h:76:10: note: candidate: bool WiFiSTAClass::setHostname(const char*)

     bool setHostname(const char * hostname);

          ^

C:\Users\�����\Desktop\PortableFLProg_6-3-1_Win64\ideV5\portable\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi\src/WiFiSTA.h:76:10: note:   no known conversion for argument 1 from 'String' to 'const char*'

Несколько библиотек найдено для "WiFi.h"
 Используется: C:\Users\Админ\Desktop\PortableFLProg_6-3-1_Win64\ideV5\portable\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi
Не используется: c:\Users\Админ\Desktop\PortableFLProg_6-3-1_Win64\ideV5\libraries\WiFi
exit status 1
no matching function for call to 'WiFiClass::setHostname(String&)'

Блок имени ESP в сети (нужна помощь)

Добавлено: 11 окт 2020, 10:46
aidar_i
Преобразуйте на чар

Блок имени ESP в сети (нужна помощь)

Добавлено: 11 окт 2020, 15:24
Phazz
[ref=#000080]aidar_i[/ref],
А можно пример увидеть как это делается? Если не трудно

Блок имени ESP в сети (нужна помощь)

Добавлено: 11 окт 2020, 20:37
aidar_i
Любой мой блок возьмите, дисплеи, например, где вход строка есть.
Там в декларации пишите новую переменную, например, char ArrHostname [30]; длину сами поставьте сколько надо.
Конвертацию ставите перед используемой функцией, в сетап или лооп,
ArrHostname это вход блока строкой
StrHostname.toCharArray(ArrHostname, StrHostname.length() +1);
ArrHostname вставляете куда надо.
Например
setHostname(ArrHostname);
Переменные можете сами обозвать как хотите.

Здесь буфер подсчитывается сама по размеру строки:
// Define
String str = "This is my string"; //Эт а строка и есть вход

// Length (with one extra character for the null terminator)
int str_len = str.length() + 1;

// Prepare the character array (the buffer)
char char_array[str_len];

// Copy it over
str.toCharArray(char_array, str_len);