Вышла новая версия программы FLProg с номером 7.4.0.
Я хорошо помню, что обещал Вам версию 8 с онлайн хранилищем пользовательских блоков. И более того, работа по созданию хранилища реализована, где то наполовину. Но жизнь вносит свои коррективы. По ряду причин мне пришлось свернуть с обозначенной ранее дорожной карты и плотно заняться контроллерами ESP и непосредственно их вэб интерфейсом. Поэтому и получилась не восьмёрка, а продолжение седьмой линейки программ.
С момента последнего релиза прошло достаточно много времени. Это обусловлено несколькими причинами. У меня были некоторые семейные проблемы. Потом я «условно добровольно» произвел общерекламируюмую процедуру (как говорит Антон Хардин))). Почему условно – добровольную? Потому что выбор между ширнуться и быть допущенным до работы или сдохнуть с голода без зарплаты как предлагает Медведев – это стопроцентное принуждение. Ну и напоследок через пару дней после второй дозы, как и ожидалось я на неделю слёг с ковидом. Не сказать, что тяжело перенёс, но работать был не в состоянии. Зато теперь у меня аж два QR кода, жаль, поделиться нельзя с кем ни будь))).
Ну а теперь – что нового в версии 7.4.
Как всегда исправлено некоторое количество ошибок. Все перечислять не буду, сам не помню.
Полностью переработаны потроха веб интерфейса для контроллеров ESP. Во первых изменена работа с сервером, работа с ним теперь происходит по более надежному и устойчивому алгоритму. Оптимизированно переподключение контроллера при пропадании и последующем восстановлении Wi-Fi сети. Во вторых теперь вэб интерфейс работает через AJAX. Это значит что значения, передаваемые на страницу интерфейса обновляются в реальном времени без перезагрузки страницы с заданным интервалом. Так же и изменения, введённые на странице передаются на контроллер без перезагрузки самой страницы. При использовании в интерфейсе кнопки «Сохранить» они отправляются на контроллер в момент нажатия этой кнопки, а без неё непосредственно сразу после изменения. Например, нажали на чек бокс, и в этот момент новое значение улетело в контроллер, и вызванные этим изменения в тут же отобразились на странице. То же касается и переключателя, и выпадающего списка. Значения, вводимые в поля ввода отправляются на контроллер в момент нажатия Enter, или смене фокуса.
Добавлены два новых виджета. Кнопка и цветовой индикатор. Расскажу о них поподробнее.
- Кнопка.
При нажатии на кнопку производятся определённые действия в контроллере. Они происходят мгновенно по факту нажатия, и не зависят от наличия или отсутствия на странице кнопки «Сохранить». Возможные действия при нажатии на кнопку зависят от закрепленного к ней параметра:
- Если параметр типа Boolean – возможны установка параметра в заданное значение (true или false), или инвертирование текущего значения параметра.
- Если параметр имеет цифровой тип (Integer, Float ….) – возможна установка заданного значения, или изменение значения в сторону уменьшения/увеличения на заданный шаг.
- Для параметра строчного типа возможно только установка заданного значения.
- Цветовой индикатор.
В HTML коде представляет собой блок DIV цвет фона, которого меняется в зависимости от привязанного параметра в реальном времени с заданной периодичностью. Задание цвета зависит от типа привязанного параметра.
- Для параметра типа Boolean – задается цвет для значения True и для значения False.
- Для параметра цифрового типа – значением цвета в RGB. Поэтому желательно использовать тип параметра Unsigned Long, поскольку в других типах один или два байта и задать цвет со всеми составляющими не будет возможности. Значение цвета можно посмотреть в интернете в таблице HTML цветов. Только следует учесть, что в этих таблицах шестнадцатеричное значение задается примерно в таком формате: #FFEFD5 а в программе его нужно задавать в таком: 0xFFEFD5. Десятичный формат можно брать напрямую.
- Для параметра строкового типа значение задаются в виде строки со значением цвета из стандартной таблицы HTML цветов. Причем именно в таком виде как они там указаны. Можно задавать как цифровое значение цвета (#FFEFD5) так и название цвета (RosyBrown).
Реализована возможность вставки в любое место станицы собственного HTML кода. Кроме того для всех элементов создано контекстное меню, которое облегчает работу с деревом интерфейса. Например, раньше новые виджеты вставлялись только в конец списка, и для изменения его положение необходимо было его поднимать до нужного места. Теперь с помощью контекстного меню можно вставить новый виджет или HTML код выше или ниже любого существующего виджета.
Расширены возможности по настройки виджетов.
- Появилась возможность задать текст лейблы виджета отличную от названия виджета, изменить расположение лейблы (сверху виджета, снизу, а для цветового индикатора и внутри него), или вообще отключить вывод лейблы.
- Предоставлен доступ к стилям для всех элементов виджета.
Реализована возможность изменять последовательность вывода основных блоков страницы (блок заголовка, блок меню, блок контента, блок подвала), а так же вообще отключать вывод каждого из них. На этом уровне (больших блоков) так же реализована возможность ввода собственных блоков HTML кода.
В общем, подытоживая, я постарался дать пользователям максимальную возможность создавать необходимый дизайн веб интерфейса для контроллеров ESP. Конечно, для этого необходимы знания HTML и CSS. Но в этой области сейчас очень много специалистов, да и сама по себе эта тема не сложная.
Дополнительно – реализована поддержка mDNS. Она позволяет обнаруживать устройства в локальной сети по заданному имени. Особенно это актуально когда устройство получает IP по DHCP. Это имя можно не только задавать при создании проекта, но и изменять его в процессе работы устройства. Ну, или например, собирать его, используя какой то заголовок, с добавлением, например Chip ID для создания уникального имени устройства, без изменения проекта. Для наших обеспеченных друзей имеющих железяки с яблочком на крышке проблем с mDNS нет вообще, поддержка этой системы встроена в операционные системы от Apple (и в десктопную и мобильную) по умолчанию. Для нас, обычных людей с виндой, линуксом или андроидом все немного посложнее. Для андроида я использую Service Browser, для компа пока ничего не подобрал. В общем, смотрите в сторону программ поддерживающих Apple Bonjour.
Оптимизирована работа системы авторизации – теперь авторизация происходит на уровне сессии. То есть если в предыдущей версии авторизация происходила на контроллере, и в момент, когда кто то был подключен к контроллеру с правами администратора, то и все остальные то же в этот момент заходили на него с эти ми же правами, пока последний не выйдет из авторизации, то теперь каждая сессия, даже одновременно с другими, содержит своего пользователя. Так же теперь при доступе к контроллеру с авторизацией, есть возможность ограничить количество одновременных подключений к контроллеру (по умолчанию 10).
Это, пожалуй, и все новшества новой версии программы. Возможно, я, что то сделал ещё, но в связи с большим периодом времени, и огромным количеством событий произошедших для меня, я уже всего не помню.
Ну и конечно ещё раз предупреждаю – это ПЕРВАЯ бэтка, так что возможны и ошибки и падения, так что прошу сильно не ругаться.
Вы не плонируете добавить новые микроконтроллеры ???
Большое спасибо за вашу работу !
Спасибо за Вашу работу!
думали ли сделать Captive Portal ?
Спасибо Вам огромное за Ваш труд! Здоровья Вам и Вашей семье!