Open GyverLibs opened 1 year ago
я закомментировал всё чего нет в 2.7.4 и релизнул
ESP32 SDK v4.4.4 После обновления Portal на 3.6.0 и 3.6.1, при наступлении события click в котором вызываю portal.copyInt, происходит перезагрузка ESP. На 3.5.2 всё работает. Eсть warning при компиляции:
! In file included from lib/GyverPortal/src/GyverPortal.h:57, from lib/GyverPortal/src/GyverPortal.cpp:1: lib/GyverPortal/src/portal.h: In member function 'virtual const String& GyverPortal::arg(const String&)': lib/GyverPortal/src/portal.h:568:28: warning: returning reference to temporary [-Wreturn-local-addr] return server.arg(n); ^ lib/GyverPortal/src/portal.h: In member function 'virtual const String& GyverPortal::arg()': lib/GyverPortal/src/portal.h:571:28: warning: returning reference to temporary [-Wreturn-local-addr] return server.arg(0); ^ lib/GyverPortal/src/portal.h: In member function 'virtual const String& GyverPortal::argName()': lib/GyverPortal/src/portal.h:574:32: warning: returning reference to temporary [-Wreturn-local-addr] return server.argName(0); !
Я догадывался что тут могут быть проблемы.. но блин у меня не выдает ошибок и работает нормально, почему
Попробуй в файле parsers.h убрать амперсанды
и в файле portal вот тут
Спасибо! теперь всё работает, ошибок нет
плохо) надо разобраться будет
Если функция пустая можно её к нулю прировнять, я в кучи библах видел такое и сам делал. Это должно решить проблему
void func() = 0;
Если функция пустая можно её к нулю прировнять, я в кучи библах видел такое и сам делал. Это должно решить проблему `void func() = 0;
virtual const String& arg(const String& n) = 0;
virtual const String& arg() = 0;
virtual const String& argName() = 0;
Если имелось в виду так, то всё теже проблемы, единственно что пропадает предупреждение <определение функции не найдено>
Проблема в том что эти функции используються в класе, а эти функции не реализованы. Вот оно и жалуеться.
@DenysChuhlib эм, нет. Читай про наследование классов
Это должно решить проблему `void func() = 0;
Всё ещё нет. Проблема тут в том, что ядро esp32 снова несовместимо с esp8266 в критическом месте. Индусы не договорились....
Обновился на новую, теперь всё хорошо)
@GyverLibs возможно ли на лету менять gmt в GyverNTP? Через форму отправляю значение на запись в EEPROM и после вызываю
ntp.end();
ntp.setGMT(gmt);
ntp.begin();
но реакции нет, время не меняется. если перезагрузить esp, то все меняется.
должен без проблем меняться, gmt участвует только непосредственно в расчётх при опросах времени типа second() minute(), во время опроса времени его нет
в GP.SYSTEM_INFO();
возможно добавить строку для информации о EEPROM?
какой информации?
занято/свободно что-то подобное
эм, у стандартной либы епрома нет такого понятия как занято/свободно... 🤦♂️🤦♂️
Обнаружил баг c функцией системной информации "GP.SYSTEM_INFO()", а точнее в Uptime. Счётчик работает до 23:59:59, а потом обнуляется и по кругу... То есть вначале не добавляется цифра с количеством отработанных дней.
Библиотека GyverPortal версии: 3.6.3 Взят голый пример "systemInfo" + добавил туда простой кастомный Uptime, который выводится в "GP.LABEL()" в самом верху примера.
Работа ESP до наступления суток:
После суток:
ну не то чтобы баг, этого просто не написано) сделаю
Алекс, а вот если бы в портале была бы возможность запуститься в режиме точки доступа и потом выбрать сеть к которой подключиться - это бы была бомба)))
Вот пример https://github.com/Hieromon/AutoConnect
GyverPortal это веб-интерфейс, он никаким образом не должен запускать wifi и какие то манипуляции с ним делать. Сконфигурировать своё устройство в режиме AP - в портале есть пример, как получить и хранить данные
Да, вэб-интерфейс, но согласись что он заточен под IoT устройства И wi-fi менеджер был бы там очень кстати
Я считаю что достаточно примера как это сделать средствами портала. К тому же логины/пароли нужно где то хранить, делать это за юзера тоже не очень красиво
Да, вэб-интерфейс, но согласись что он заточен под IoT устройства И wi-fi менеджер был бы там очень кстати
У Алекса Гайвера есть вполне удобная и лёгкая библиотека WiFi менеджера "SimplePortal", воспользуйся ей. Единственно, что в той библиотеке не хватает, это автоматического поиска сетей и подстановку их в поле ввода SSID.
Очень хотелось бы видеть асинхронный web сервер и web сокеты для обмена данными между браузером и ESP32. По реализации неплохой пример есть здесь https://randomnerdtutorials.com/esp32-websocket-server-arduino/
@Oleg-Perevyshin думаю этого не будет, т.к. async либ нет в менеджере библиотек, а GP рассчитан на новичков
Ну хотя бы web сокет поднять, гораздо удобнее данные гонять туда-сюда, чем постоянно через запросы или обновление страницы.
сокет планируется, но даже примерно неизвестно когда, может не в этом году
@GyverLibs есть возможность в M_BOX
задавать свой class?
Нужен для работы скрипта, в данный момент блок нужный inliner
Обращаюсь к нему так $('.inliner:last')
находит верно, но далее работа с ним некорректная)
Писал своим кодом через GP.SEND(html)
все работает как надо)
Есть возможность делать только то, что указано в документации. Все остальное - через кастом компоненты
и в добавок, как парсить такой ответ?)
select: 0 number: 2 select: 1 number: 2 и т.д.
Есть возможность делать только то, что указано в документации.
это то понятно, добавить в реализацию движка?
как парсить такой ответ
Ну как придумал протокол, так и парсить. Если не парсится - придумай другой
добавить в реализацию движка?
Ничего не понимаю
Ничего не понимаю
ROADMAP
Ну как придумал протокол, так и парсить. Если не парсится - придумай другой
это я переделал прошлый вариант, со стрингами
Таааак, здравствуйте молодые люди. И тут эта дичь со списками байтов в стрингах?!?
Зачем городить СТРОКОВЫЙ конфиг при наличии веб интерфейса с кучей возможностей для настройки и выбора?
https://playcode.io/1320297 через кастом работает, а если собрать компонентами движка и вложить в box, то клонирование то работает, а вот управление только родительским боксом, меняя спиннер в других боксах, изменения затрагивают первый) удалить можно только один раз и после добавления и удаления не работают.
ROADMAP
что ROADMAP?....
и удаления не работают
все нестандартные задачи решаются кастомным html+js. Непонятные никому ненужные конструкции в библиотеку добавляться не будут
что ROADMAP?....
самое первое сообщение этой темы, план на будущее. будет добавлена возможность добавления свои классы в боксы?
Непонятные никому ненужные конструкции в библиотеку добавляться не будут
этого не просил, просто вопрос был по замене класса, и всего то
добавления свои классы в боксы?
категорически не понимаю нежелания сделать свой кастомный компонент
категорически не понимаю нежелания сделать свой кастомный компонент
над этим я уже думал... просто много вопросов возникло по сопутствующим вещям... ладно, подумаем позже... благодарю)
а что думать, просто взять реализацию из builder.h, обозвать MY_BOX т добавить в него что угодно дополнительно
Да, я помню как это делается, делал для первых версий движка новые фишки... Непонимание было где хранить, сейчас сообразил, прямо в прошивке. Блин, как же время улетает быстро, пора отдыхать, засиделся... На следующей неделе посоображаю, будет много времени)
UPD: Доделал, что хотел) но все равно пришел, с формой и байтами в стрингах)
просто как в примере customcomponents, положить файлик рядом со своим скетчем
Сделал чёт такое)
в wiki объекты надо поправить, например в number не принимает уже мин и макс
в вики тоже не принимает
@GyverLibs Как правильно написать такой код чтобы работал? Скрипт написан на JQuery. Алерты использую для отладки...
if (ui.click("status")) {
if (ui.getBool("status")) {
GP.SEND("<script>alert('Включено');</script>");
} else {
GP.SEND("<script>alert('Выключено');</script>");
}
}
если делать кастомный код, то он не работает, т.к. уже висит onClick от портала. а вот как правильно использовать возможности портала, что-то не сообразить)
Никак
т.е. кастомные скрипты не реализовать по клику? хотел сделать по выключенному чекбоксу скрытие ненужных блоков, вот пример https://playcode.io/1369159
Реализуй что угодно, но без SEND. SEND работает ТОЛЬКО внутри функции билдера, когда страница ЗАГРУЖАЕТСЯ или когда со страницы запрошен RELOAD
про SEND то понятно, мне непонятно как реализовать?
в примере используется обработчик от JQuery, в портале в коде есть
<input type='checkbox' name='status' id='status' checked onclick='GP_click(this)'>
вот они и конфликтуют походу
v3.7
ROADMAP
curl -vF firmware=@firmware.bin http://x.x.x.х/GP_OTAupload