Каталог

Панели событий, вывода, Display/Program.s, строка состояния

2.14 Панель пользовательского кода событий

Раздел User Event Code не преследует цели обучения принципам программирования событий. Он в простой и понятной форме освещает различные типы событий, обладающие возможностью добавления пользовательского кода.

По-умолчанию расположенное под панелью дизайнерского холста, окно Event является полем инструмента создания скриптов внутрипрограммного реагирования Nextion на происходящие события, возникающие в приложении на основе взаимодействия пользователя с экранными объектами. Подавляющее большинство компонентов в редакторе Nextion Editor оснащены функциями обработки для нескольких возможных событий, таких как: момент касания экрана (Touch Press Event), момент отпускания экрана (Touch Release Event). Некоторые компоненты наделены событием перемещения - движением пальца без отрыва от экрана (Touch Move), или моментом завершения воспроизведения (Play Completed Event). Результат выполнения кода может распространяться на любой компонент в пределах текущей страницы Page. Пользовательский код событий всегда выполняется локально, не имеет глобального дейтсвия.

Событие касания (Touch Press Event) включает элемент графического интерфейса флажок (чекбокс) Send Component ID. Когда флажок для события установлен, через последовательный порт в момент физического касания возвращается пакет данных, состоящих из hex-заголовка 0x65, идентификатора .id вызвавшего событие компонента, с его логическим статусом. Например, в пакете возвращаемых данных 65 00 05 01 FF FF FF первый значимый байт 65h указывает на произошедшее событие Touch, значение 00h говорит о порядковом номере страницы проекта (не путать ни с именем страницы, ни с идентификатором страницы .id), значение 05h - идентификатор компонента .id=5 в составе текущей страницы, и значение 01h - логический признак действия касания. Выполнение пользовательского кода события может быть вызвано либо физическим касанием сенсора экрана Nextion, либо командной инструкцией "click".

Событие отпускания (Touch Release Event) имеет аналогичную функцию с устанавливаемой/снимаемой галочкой Send Component ID. В получаемом пакете последовательных данных 65 00 04 00 FF FF FF на момент отпускания содержится информация о том, что первый значимый байт 65h - это произошедшее событие Touch, 00h - порядковый номер страницы проекта (не путать ни с именем страницы, ни с идентификатором страницы .id), 04 - идентификатор компонента .id=4 в составе текущей страницы, и значение 00h - логический признак действия отпускания. Выполнение пользовательского кода события может быть вызвано либо физическим отпусканием сенсора экрана Nextion, либо командной инструкцией "click".

Возвращаемые в последовательный порт данные 0x65h функции Send Componentd ID не генерируются командой "click". Возникновение ответного события 0х65 возможно лишь для физических действий конечного пользователя, взаимодействующего с сенсором экрана Nextion. Если необходимо, пользователь может обратиться к командной инструкции "printh", способной симулировать пакет возвращаемых данных 0х65, и виртуально, и на аппаратном уровне.

Компонент "Страница (Page)" содержит оба события касания Touch Press Event и отпускания Touch Release Event. Кроме того, в панеле Event компонента Страница присутствуют поля для обработки событий:

  • прединициализации (Preinitialize Event), запускающего выполнение пользовательского кода перед загрузкой текущей страницы HMI-проекта, и содержащихся на ней компонентов;
  • постинициализации (Postinitialize Event), запускающего выполнение пользовательского кода после загрузки страницы, и всех её компонентов;
  • ухода со страницы (Page Exit Event), запускающего на завершающем этапе перед изменением страницы выполнение пользовательского кода.

Примечание. Глобальные значения .sta сохраняются, а локальные значения .sta возвращаются в своё исходное состояние.

Примечание. Обработка событий пред- и постинициализации для компонента страница Page не выполняется, если Nextion выходит из спящего режима. Компоненты всего лишь визуально обновляются для отрисовки видимой области экрана на момент входа в состояние сна. События пред- и постинициализации запускаемы при входе на страницу. Когда при выходе из спящего режима требуются события инициализации страницы, пользователь может обратиться к специально разработанной системной переменной wup.

Компонент "Ползунок (Slider)" обладает событиями касания и отпускания, а также дополнен ещё одним полезным событием "Перемещение без отрыва от экрана (Toch Move)". Пользовательское событие выполняется каждый раз, когда ползунок принимает новые значения, вызванные сдвигом ползунка в любую сторону. У события "Перемещение без отрыва от экрана (Toch Move)" намеренно отсутствует функция возвращения данных идентификаторов 0х65h через последовательную связь. Сделано это для исключения непредвиденного переполнения обработчика сигналов последовательной шины.

У компонента "Таймер (Timer или счётчик)" есть обработка всего одного события, основанного на работе с временными отрезками (Timer Event). Поскольку Таймер является невизуальным компонентом, его нормальное функционирование построено на программной обработке различных событий. Для получения более подробной информации, следует обратится к описанию компонента Таймер (Timer) на странице Базовые компоненты GUI для всех дисплеев Nextion.

Применимо к серии Nextion Intelligent Компоненты "Область анимации (Gmov)", "Аудио (Audio)", и "Видео (Video)" дополнены обработчиками событий "Завершения воспроизведения (Play Completed Event)". В целом название говорит само за себя — выполнение пользовательского кода происходит по окончании одиночного проигрывания, или каждый раз в момент завершения у многократно повторяемого (зацикленного) воспроизведения.

Возвращаемые данные Nextion всегда выводятся после завершения выполнения соответствующих команд и инструкций.

На HMI-проект наложено жёсткое ограничение в совокупном количестве атрибутов и кода пользователя, равное 65534.

2.15 Панель вывода

Панель "Вывод (Output)" отображает детализированную информацию процесса сборки для выбранного процедуры Компиляции (Compile), Отладки (Debug), или Выгрузки (Upload) TFT файла по последовательной шине. Вначале каждой процедуры редактором выполняется предварительная компиляция с целью поиска и последующим устранением пользователем возможных ошибок при сборке из HMI-проекта конечного файла TFT для выбранной модели Nextion-устройства. В первых 4 строках панели вывода перечисляются:

  • Общий размер доступной памяти устройства
  • Размер памяти ОЗУ, выделяемой для глобальных функций
  • Статистика подсчёта занимаемого flash-пространства ресурсами графических изображений
  • Статистика подсчёта занимаемого flash-пространства ресурсами Zi-шрифтов

Применимо к серии Nextion Intelligent Для серии Intelligent: строки с информацией о занимаемой памяти отображаются для всех существующих в HMI-проекте ресурсов Gmov, Video, Audio. Данные количественного резервирования flash-памяти приводятся для каждой группы.

Процесс сборки проходит сквозь HMI-проект последовательно, от страницы к странице. После успешной сборки каждой страницы, на экране отображается статистика выделяемой для неё памяти в виде формулы: Глобальные данные (Global) + Локальные данные (Local) = Общая сумма (Total). Например, Page: Page0 Memory Occupied: 16+84=100. Если сборка страницы завершена неудачно, страница с ошибкой отображается последней в списке. Предупреждения подсвечиваются синим цветом. Например, объекты с нерекомендованной техникой наложения пройдут сборку и скомпилируются, но предупредят о потенциально неожиданном поведении HMI-проекта. Невыполнимые ошибки подсвечиваются красным. Страница с ошибками не пройдёт компиляцию, процесс сборки будет принудительно прерван.

Примечание. Не следует выгружать в устройство Nextion файл TFT нулевого размера.

Необходимо помнить о конструктивном различии устройств Nextion в части доступного пользователю размера встроенной flash-памяти. Конечный размер файла TFT должен быть достаточно мал, чтобы файл смог поместиться во flash-памяти экранного HMI-устройства. Характеристики выбранного устройства отображаются в строке состояния основного окна редактора Nextion Editor. А также с ними можно ознакомится в техническом листе к имеющемуся устройству Nextion.

Учитывая природу flash-памяти, может случиться так, что скомпилированный TFT файл размером меньше (например, 1677216 байт) не помещается в доступную память HMI-устройства большего размера. Nextion выдаёт ошибку о превышении размера файла (File is too big). Подобная ошибка не считается аппаратной для всего устройства в целом, по причине постепенного износа памяти от большого количества циклов перезаписи, или непредвиденных электрических (редко механических) повреждений.

2.16 Вкладки Экран / Программирование стартовой страницы

Переключение на вкладку Экран (Display) отображает в окне дизайнерский холст (Design Canvas).

Переключение на вкладку Программирование стартовой страницы (Program.s) предоставляет пользователю возможность определения глобальных переменных и написания стартового кода. Сначала записываются переменные, затем следует код, и в финале указывается номер страницы, которая будет загружена первой после включения. Любой код, следующий за командой перехода к первой загружаемой странице никогда не выполняется, поскольку возврат ни с первой, ни с какой-либо другой страницы на стартовую невозможен впринципе.

2.17 Строка состояния

Строка состояния в нижней области главного окна редактора Nextion разделена на три сегмента — текущая символьно-кодовая страница, краткая детализация выбранной модели Nextion, координаты манипулятора мышь в области дизайнерского холста. Щелчок по кодировке открывает вкладку Экран (Display) окна настроек устройства (Setting). Детализация модели Nextion отображает её базовые характеристики, такие как: размер экрана в дюймах и его графическое разрешение, фактические размеры ПЗУ (flash) и ОЗУ (SRAM) памяти, рабочую частоту вычислительного ядра процессора. Эта информация непременно окажется полезной на любом этапе разработки HMI-проекта.

footer shadow
Контакты

г. Москва, Пятницкое ш. д. 18, пав. 566

zakaz@compacttool.ru

8-495-752-55-22

compacttool logoadaptive site

accepted payment systems

Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !

© Все права защищены 2015 - 2024г https://compacttool.ru