FLProg
Вход на сайт
Логин:
Пароль:
Поиск
Мы в VK
...
Архив записей
Статистика

Онлайн всего: 9
Гостей: 7
Пользователей: 2
MartinNop, VladYar
Понедельник, 27.03.2017, 03:40
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Главная » 2017 » Январь » 10 » Выход урока по работе с Nextion HMI Enhanced
09:55
Выход урока по работе с Nextion HMI Enhanced
Выложил на Geektimes урок по работе с панелью Nextion HMI Enhanced  (https://geektimes.ru/company/flprog/blog/284406/). На этот раз я сосредоточился на программировании самой панели. Это конечно идёт в разрез с главной идеологией проекта FLProg – «Программирование без кода», но в случае с панелью  Nextion HMI придётся отойти от этого принципа. Панель имеет свои, большие вычислительные мощности, и неразумно было бы их не использовать, перекладывая вычисления которые можно сделать на ней, на хрупкие плечи ардуинки.
Я постарался максимально закомментировать код для панели, и дать объяснения всем используемым  командам, и действиям. Если что-то не понятно – пишите комментарии к посту, постараюсь объяснить.
Ну и конечно со временем этот пост переедет в учебный центр сайта, и вопросы можно будет  задавать там.
 
Просмотров: 1054 | Добавил: support | Рейтинг: 0.0/0
Всего комментариев: 5
avatar
0
1
Как раз делаю проект на базе nextion hmi. И есть одна проблема, которая не позволяет использовать FL Prog "в чистом виде" для создания ёмкой программы. Допустим у меня 10 экранов в дисплее.  И есть код, который должен выполняться ТОЛЬКО в момент активности конкретного экрана, и есть код, который должен выполняться в любой момент времени. FL Prog  как он есть не позволяет "зонировать" код с привязкой к конкретному экрану (условию) и в результате получается условно 1000 строк кода которые ардуина пытается переварить в каждом цикле, что приводит к чудовищным тормозам.  
Чтобы избежать этих тормозов, ввожу переменную с номером текущего экрана, открываю IDE, добавляю Switch case в зависимости от номера экрана, компилирую поочередно платы и копирую код в соответствующий case. Получается жлаемый результат, однако методом кибернапильника. Может есть какое то более простое решение?
avatar
0
2
Ну вообще то у меня запросы и отправка данных на панель для локальных объектов идёт только в том случае, если активени экран на котором они установленны. Для этого в начале каждого цикла я запрашиваю нномер текущего экрана. Ну а для глобальных экранов элементов - сразу по запросу.
avatar
0
3
Однако помимо отправки данных существует еще большое количество строк компилированного кода, которые совсем не требуется обрабатывать пусть даже и в холостую. В случае с switch case я просто пропускаю все остальные блоки кода, находящиеся в неактивных case-ах, в результате объем обрабатываемого кода в цикле сокращается условно с 1000 строк до 100.
avatar
1
4
Ну ладно, как говорится сами напросились))))))
Сейчас займусь (пока пару дней есть). В свойствах платы появится настройка условия выполнения платы, возможно циклическое выполнение, но это я ещё не продумал.
avatar
0
5
(◕‿◕) ♡
avatar
FLProg © 2017
Яндекс.Метрика