GyverPortal

aidar_i

✩✩✩✩✩✩✩
1 Май 2021
64
8
Как пользоваться функцией HINT?
Такой код не работает
C++:
#include <WiFi.h>
#include <GyverPortal.h>
GyverPortal portal;
String hint;
String btn;
bool hintF;
IPAddress local_IP(192,168,1,200);
IPAddress gateway(192,168,1,1);
IPAddress subnet(255, 255, 255, 0);
void setup()
{
    WiFi.mode(WIFI_STA);
    WiFi.begin("MTS", "9870375201");
    WiFi.config(local_IP, gateway, subnet);
   // portal.enableAuth("login", "password");
    portal.attachBuild(build);
    portal.attach(action);
    portal.start();
}
void build()
{
    GP.BUILD_BEGIN();
    GP.THEME(GP_DARK);
       GP.HINT("hint", "Намек");
    GP.BUTTON("btn", "Hint");
    BUILD_END();
}
void loop()
{
  portal.tick();
}
void action()
{
 if (hintF && portal.update("hint"))
    {
        hintF = 0;
        portal.answer(1);
    }
    if (portal.click("btn")) hintF = 1;
 }
 

gorlanovmax

✩✩✩✩✩✩✩
26 Окт 2022
69
6
@aidar_i,

Есть же стандартные примеры.
У вас ошибка в коде. Идентификаторы должны быть одинаковыми.
Т.е. если HINT вы делаете для кнопки, то идентификатор у HINT должен быть такой же как у кнопки
C++:
GP.HINT("bnt", "Намек"); //id, текст
GP.BUTTON("btn", "Hint", "bnt");  //имя, текст, id
 
Изменено:

gorlanovmax

✩✩✩✩✩✩✩
26 Окт 2022
69
6
В 3.3. на esp32 перестало работать OTA
Возможно что-то меняли в форматах?
Файл выбирается, но далее тишина
 

aidar_i

✩✩✩✩✩✩✩
1 Май 2021
64
8
Избыточное цитирование, см. Правила. Отредактируй или сообщение будет удалено
@aidar_i,

Есть же стандартные примеры.
У вас ошибка в коде. Идентификаторы должны быть одинаковыми.
Т.е. если HINT вы делаете для кнопки, то идентификатор у HINT должен быть такой же как у кнопки
C++:
GP.HINT("bnt", "Намек");
GP.BUTTON("btn", "Hint");
Примера точно нет, это новая функция, я делал аналогично примерам, те работают нормально, В коде , наверное, есть не ошибка, а неправильно делаю.
На счет указанной Вами ошибки, Вы не правы, я сделал как нужно там(аналогично примерам с другими функциями).
 

gorlanovmax

✩✩✩✩✩✩✩
26 Окт 2022
69
6
@aidar_i,

Я исправил код, вы наверное до этого посмотрели.
У кнопки есть id, это третье поле. Вот оно должно быть таким же как первое поле в HINT
 

aidar_i

✩✩✩✩✩✩✩
1 Май 2021
64
8
Да, сейчас увидел, но не работает так, но другие фукции типа Alert работают.
Похоже он работает по другому.
 
Изменено:

gorlanovmax

✩✩✩✩✩✩✩
26 Окт 2022
69
6
@aidar_i,

да сейчас проверил.
в результирующей странице id кнопки не добавляется.
видимо недоработка
 

AlexGyver

★★★★★★✩
Команда форума
30 Июл 2018
359
573
@Kurya,
Ни один пример не компилируется с новой версией
'class fs::File' has no member named 'path'
Обновить ядро, встроенная библиотека FS устарела

@gorlanovmax,
Что-то с обработкой пути, по которому пытаемся получить список файлов
В ошибке написано 'class fs::File' has no member named 'path' - то есть в библиотеке FS не хватает метода. Значит библиотека устарела

@aidar_i,
Как пользоваться функцией HINT?
См. доку
GP.HINT(имя, текст); // всплывающая подсказка с текстом "текст" для элемента "имя". Вызывать после добавления компонента
То есть
C++:
GP.КОМПОНЕНТ("имя");
GP.HINT("имя", "текст");
Имя должно совпадать (подсказка ДЛЯ компонента с этим именем)
НО. Баг подтверждаю, с кнопками не работает, потому что у кнопок не передаётся атрибут id, исправлю возможно в мини-обновлении.

@gorlanovmax,
У кнопки есть id, это третье поле. Вот оно должно быть таким же как первое поле в HINT
Нет, id у кнопки передаётся первым аргументом

@gorlanovmax,
В 3.3. на esp32 перестало работать OTA
Работает как часы, проверил несколько раз. Возможно стоит:
  • Обновить ядро
  • Сделать Erase Flash
  • Форматировать SPIFFS
И прочее что рекомендуется делать когда начинает тупить esp32
 
  • Лойс +1
Реакции: aidar_i

aidar_i

✩✩✩✩✩✩✩
1 Май 2021
64
8
Нельзя в компоненте Спиннер сделать автопрокрутку при удержании стрелок с регулировкой скорости прокрутки?
 

gorlanovmax

✩✩✩✩✩✩✩
26 Окт 2022
69
6
Избыточное цитирование, см. Правила. Отредактируй или сообщение будет удалено
Работает как часы, проверил несколько раз.
Все проверил, сама процедура обновления работает.
Но ранее, после обновления перекидывало на страницу GP_OTAUpload
На которой отображалась подпись, что обновление прошло успешно и кнопки Обновить, На главную

Теперь же на страницу перекидывает, ничего не отображается и сразу идет редирект на главную

Ядро стоит последнее 2.0.5
 
Изменено:

AlexGyver

★★★★★★✩
Команда форума
30 Июл 2018
359
573
@gorlanovmax,
перекидывало на страницу GP_OTAUpload
Мы считали что это баг и его исправили =) Сейчас если обновление инициируется с компонента ОТА апдейт - редирект идёт на эту же страницу. Если со страницы /ota_update - то остаётся там же и показывает статус
 
Изменено:

aidar_i

✩✩✩✩✩✩✩
1 Май 2021
64
8
Это каком таком штатном?
Штатный программы FLProg. Форумчанин сделал дополнительные пользовательские блоки к нему.

Мы считали что это баг и его исправили =) Сейчас если обновление инициируется с компонента ОТА апдейт - редирект идёт на эту же страницу. Если со страницы /ota_update - то остаётся там же и показывает статус
У меня страница одна, на ней динамические вкладки.
Перехода на отдельную страницу по обновлению нет.
Просто добавлены кнопки
GP.OTA_FIRMWARE()
и
GP.OTA_FILESYSTEM()

И также некорректно работает штатный пример OTACustom в библиотеке
 

SanyaNapalm

✩✩✩✩✩✩✩
13 Ноя 2022
1
0
Поддерживает ли библиотека воспроизведение звуков в браузере? Я сделал небольшой терморегулятор, хотелось бы, чтобы при превышении определенной температуры звучала сигнализация в телефоне.
 

gorlanovmax

✩✩✩✩✩✩✩
26 Окт 2022
69
6
@SanyaNapalm,
Это лучше вот сюда написать как пожелание
 
  • Лойс +1
Реакции: SanyaNapalm

AlexGyver

★★★★★★✩
Команда форума
30 Июл 2018
359
573
@gorlanovmax,
Перехода на отдельную страницу по обновлению нет.
Ещё раз:
  • Если обновление делается с компонента ОТА_.. - после обновления браузер возвращается на страницу с этой кнопкой
  • Если обновление делается на странице /ota_update - после обновления браузер остаётся на ней и показывает результат обновления
По крайней мере так задумано, может в каком нибудь китайском браузере это работает иначе

И также некорректно работает штатный пример OTACustom в библиотеке
Что значит "некорректно", можно подробности какие нибудь? Пример работает как часы на esp8266 и esp32
 

gorlanovmax

✩✩✩✩✩✩✩
26 Окт 2022
69
6
Что значит "некорректно", можно подробности какие нибудь?
Беру пример OTACustom.ino из библиотеки.
Зашиваю его в ESP
Захожу в браузер.
Нажимаю кнопку Update Firmware.
Заливаю обновление.
Обновление проходит успешно.
После обновления, страница с информацией о успешном обновлении не появляется.

Как сделать чтобы страница с информацией о успехе или что еще более важно о ошибке при обновлении выходило, при условии, что у меня реализована одна страница с динамическими вкладками?
 
Изменено:

AlexGyver

★★★★★★✩
Команда форума
30 Июл 2018
359
573
В следующем обновлении могу вынести в паблик строку со статусом ошибки, ее можно будет вывести как LABEL(portal.ota.error)