Так как предыдущие версии мультиблока уже в середине ветки от Евгения решил создать свою.
Если происходит конфликт с блоками то пробуйте сначала в проект добавлять их и только потом ESPUI, ну или их выносите на первую плату а на последующих блоки ESPUI.
Важно!
1. Платы, на которых установлены блоки ESPUI, в обязательном порядке должны обработаться в первом цикле после запуска контроллера.
2. При создании на странице (1й программный цикл) таких блоков как Slider, InputText, InputNumber и т.п. на блоке отображается значение по умолчанию (из параметра) и оно же появляется на выходе блока. Значение, если оно уже появилось на входе, запишется в блок и, соответственно, передастся на его выход в следующем программном цикле. Для версии 1.6 не актуально.
3. Библиотека плохо реагирует на одновременный вывод информации сразу на несколько блоков.
4. Библиотека очень чувствительна к качеству WiFi сети (сигнал, скорость), имейте в виду, чуть что - картинка виснет.
5. Если на блоке Graph ничего не отображается - подайте импульс на вход Clear Graph для его очистки.
Да и вообще Graph глючный элемент, никак его разрабы не допилят. Лучше не использовать.
Если кто знает о неиспользованных в данном блоке возможностях библиотеки ESPUI - пишите. По возможности буду дорабатывать.
1. Встроены детекторы изменения данных на входах блоков.
Обновление блока по фронту на входе Update сохранилось, каким образом обновлять данные - выбирается параметром.
По описаниям параметров все должно быть понятно.
2. Добавил автоматическую расстановку блоков по вкладкам.
Добавляются блоки в проект - оказываются на основной странице, как только добавился блок Tab все последующие блоки будут уже на этой вкладке до появления следующего блока Tab и т.д. Само собой если блок Tab будет первым последующие блоки будут на вкладке.
Возможность ручной расстановки так же сохранилась. Вариант расстановки выбирается параметром.
3. Переделал часть кода, целью было увеличение количества отображаемых блоков на странице, ранее и десятка иногда не набиралось.
Надо проверять получилось или нет.
Блок собран на подправленной библиотеке ESPUI 2.0.2 (заменен один файл, взят из ESPUI 2.0.1). Блоки Pad с такой заменой отображаются корректно.
Необходимые для работы мультиблока библиотеки уже встроены в него, ну и в архив на всякий случай положил, там же и тестовые примеры.
P.S.
Версия, конечно же, корявенькая, причина тут.
Работает только с модифицированной библиотекой ESPUI-2_0_2_mod.
Библиотека в архиве и в блоке.
Обновление блока ESPUI_1.5. Интегрирован WiFiManager. Тестировалось как на ESP8266 так и на ESP32.
Для корректной работы отключить стандартные настройки WiFi в FLProg.
Библиотеки в архиве, из блока удалены по причине избыточного веса.
Настройки WiFiManager в своей папке параметров, для сброса настроек отдельный блок.
Когда модифицировал библиотеку неудачно переименовал файлы , из за этого FLProg ругается на отсутствующую библиотеку но все работает.
Когда выйдет новый релиз библиотеки ESPUI, в которой новые функции, добавленные мной, будут добавлены на постоянку (уже есть в мастер-версии), тогда верну все имена файлов обратно и ошибка уйдет.
Для ESP32 работа проверялась с ядром версии 1.0.6. С ядром версии 2.х.х совместимость, в данный момент, отсутствует!!!
Upd 23.07.2021 Исправлена ошибка в блоке ESPUI InputText (спасибо megahamster3) , архив перезалит.
Upd 03.10.2021. Исправлена ошибка в блоке Graph (спасибо DrMario), архивы перезалиты.
Добавлено:
1. Блоки: Разделитель, Время (позволяет получить текущее время с подключенного устройства).
2. Возможность менять оформление блоков CSS стилями.
3. Отключение компонентов (не совсем понятна надобность но раз есть в библиотеке то и тут пусть будет).
4. Группировка элементов в одном блоке.
2. Если элемент имеет возможность стать контейнером для группировки элементов то у него присутствует параметр, в котором его можно назначить инициатором группы. При назначении у него появляется выход, на котором его ID.
3. Если элемент имеет возможность стать членом группы то у него присутствует параметр, в котором его можно объявить членом группы. При этом у него появляется вход, на который нужно передать ID инициатора группы.
3.1 Следует учитывать, что по порядку размещения блоков (по порядку компиляции) ВСЕГДА! должен идти сначала инициатор группы только потом ее члены (для прямых связей данное условие выполнится само, а вот если ID передавать через переменную/клемму то за этим нужно следить).
3.2 При объявлении элемента членом группы у него исчезает параметр title... , т.к. у члена группы его нет (особенность библиотеки).
6. У блока "Ввод текста" появились режимы отображения "Дата", "Время", "Цвет", "Ввод пароля".
7. Для блоков "Переключатель", "Слайдер", "Ввод числа", "Ввод текста" при включенном режиме "обновления по изменению значения на входе" значение со входа передается на выход при инициализации блока (раньше сначала передавалось "Значение при инициализации").
8. Теперь нет надобности задавать максимальное количество вкладок, вычисляется автоматически.
9. ВСЕ! блоки должны располагаться на тех платах, для которых гарантируется их работа при первом программном цикле, иначе просто не выполнится инициализация блоков.
Ну и по классике, какие то косяки убраны, какие то добавлены.
Блок из открытого проекта сохранить в папку с блоками,
Если именно такого мультиблока в библиотеке нет, то появится пункт в меню "Добавить в библиотеку".
Upd 28.09.22 Исправления выявленных ошибок/недочетов. Upd. 04.01.23 Исправлена ошибка в блоке Select (спасибо DrMario).
Upd 15.05.23 Исправлена ошибка в блоке InputText (спасибо RedSky). Дополнительно в блоке InputNumber появился параметр Step, позволяющий задать шаг изменения числа при изменении его стрелками.
Upd 06.01.24 Исправлена ошибка в блоке InputText (спасибо selihov). _
Прошу обратить внимание!
Использование в одном проекте блоков из мультиблоков разных версий НЕДОПУСТИМО!!!
Ошибки при компиляции проекта!