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

Создаем свой блок. Вопросы, помощь знатоков.
Ответить
Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

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

#1

Сообщение Phazz » 11.10.2020{, 07:17}

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

Отправлено спустя 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&)'
Вложения
Name_host.flp
(17.7 КБ) 40 скачиваний

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#2

Сообщение aidar_i » 11.10.2020{, 10:46}

Преобразуйте на чар

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

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

#3

Сообщение Phazz » 11.10.2020{, 15:24}

aidar_i,
А можно пример увидеть как это делается? Если не трудно

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#4

Сообщение aidar_i » 11.10.2020{, 20:37}

Любой мой блок возьмите, дисплеи, например, где вход строка есть.
Там в декларации пишите новую переменную, например, 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);

Ответить

Вернуться в «Разработка пользовательских блоков»