Найти тему
Владимир Радченко

DWIN DGUS. Unicode и русские символы.

Оглавление

Unicode - стандарт кодирования символов, включающий в себя знаки почти всех письменных языков мира.
Дисплеи DWIN поддерживают отображение символов в формате Unicode, а так как данная кодировка включает русский язык, то она становится очень привлекательной для использования.

Прошлые статьи:

DWIN. Подготовка дисплея к работе и загрузка демо-проекта

DWIN. Знакомство с программным обеспечением DWIN Graphic Utilized Software. Hello World

DWIN. Протокол Modbus. Slave и Master режимы.

DWIN. Связываем STM32 Nucleo и дисплей.

DWIN. Элемент Real-Time Curves, чертим графики.

DWIN DGUS. Элемент Artistic Variables. Отображаем цифры иконками.

Для реализации проекта будет использован дисплей DMG80480C050_03WTC. Обладающий TN матрицей с разрешением 800х480, ёмкостной сенсорной панелью, напряжением питания 5В, интерфейсом UART TTL.

DMG80480C050_03WTC вид спереди
DMG80480C050_03WTC вид спереди
DMG80480C050_03WTC вид сзади
DMG80480C050_03WTC вид сзади

Генерация шрифта

Первым делом необходимо сгенерировать шрифт который в дальнейшем будет отображаться на дисплее. Используем для этого специализированный софт (Ссылка на GitHub).

Font Generator
Font Generator

Открыв программу необходимо ознакомиться с рабочими полями:

1 - выбор шрифта который будет преобразован;
2 - размер шрифта;
3 - выбор кодировки, выставляем UNICODE;
4 - код символа для выравнивания в области предпросмотра(Char Preview Area);
5 и 6 - поля для редактирования размеров символа, символ должен входить в черное окно в области предпросмотра;
7 - размер области для расположения символа;
8 - область кодов выделенная под шрифт в UNICODE кодировке;
9 - кнопка "Create" создать шрифт.

Кириллица располагается в диапазоне кодов UNICODE 0x0400-0x052F (Ссылка на вики), основные управляющие символы, латинские символы и цифры располагаются в диапазоне 0x0000-0x007F(Ссылка на вики) поэтому в поле 8 укажем диапазон 0x0000-0x052F, который позволит использовать как кириллицу, так и латиницу с управляющими символами. Изменим размер шрифта на 8, в поле 2, выберем букву "Щ" (так как она одна из самых больших букв в алфавите) в поле 4, для этого выставим соответствующий ей адрес 04 29. Полями 5 и 6 отредактируем расположение символа в окне. В поле 7 выставим размер окна для полученного шрифта, в данном случае 18х18 пикселей.

После того как символы были выравнены, можно приступать к созданию шрифта, для этого необходимо нажать на кнопку "Create" и сохранить шрифт.
Шрифт должен начинаться с цифры, обозначающей область памяти, в которую он будет сохранен, рассмотрим распределение памяти:

Область памяти
Область памяти

Как видно, из распределения памяти указанного выше, область 23-31 отведена для сохранения шрифтов(использовать можно любую пустую ячейку), необходимо соблюдать осторожность при генерации и следить за размером сгенерированного файла. Одна ячейка памяти занимает 256КБ, и если файл превысит данное значение, то он будет записан в следующую ячейку, перезапись ячейки 32 недопустима.

Сохраним шрифт в ячейку памяти 23, указав название 23_R_TAHOMA_18.dzk . После чего получим уведомление удачного создания шрифта.

Генерация шрифтов
Генерация шрифтов

Проведем аналогичную операцию для шрифта с размером 24,30 и 48 пикселей. Названия, полученные после генерации, должны начинаться с номера ячейки и будут выглядеть следующим образом:
24_R_TAHOMA_24.dzk;
25_R_TAHOMA_30.dzk;
26_R_TAHOMA_48.dzk.

DGUS проект

  • Создаём новый проект с одной фоновой страницей, для отображения текста. Добавим элемент "Text Display".
  • Установим начальный адрес текстового поля VP на 7000, выберем кодировку UNICODE, установим длину текстового сообщения на 200 символов.
  • Выберем ID шрифта, соответствующий ячейки памяти, в которой он размещен, первый шрифт с размером 18х18 пикселей был размещен в 23 ячейку памяти, укажем это значение.
  • Установим размер знака, он должен соответствовать сгенерированному значению, в данном случае 18.
  • В поле инициализации значения запишем строку, содержащую управляющие символы, кириллицу и латиницу:
    "!";%:?*() 1234567890 СЪЕШЬ ЕЩЁ ЭТИХ МЯГКИХ ФРАНЦУЗСКИХ БУЛОК, ДА ВЫПЕЙ ЧАЮ ЪQWERTYUIOPLKJHGFDSAZXCVBNM"
Настройка элемента
Настройка элемента

Продублируем элемент для трёх других шрифтов, не забыв изменить VP, ID и размер шрифта:

Сохраняем проект, генерируем файлы и копируем папку DWIN_SET на uSD карту и загружаем на дисплей.

Загрузка файлов
Загрузка файлов

Демонстрация

Демонстрация
Демонстрация

Заключение

В данной статье описана работа с шрифтами UNICODE, как с кириллицей, так и с латиницей. Продемонстрирован пример вывода текста с помощью разных сгенерированных шрифтов.

Ссылка на GitHub: https://github.com/VB-Radchenko/DWIN-Project/
По вопросам оптовых закупок, персональных скидок, технической поддержки и общим вопросам обращайтесь на электронную почту: Info_dwin@mail.ru

Сообщество VK https://vk.com/public208909284

Скидочный купон на 5$ для официального магазина AliExpress - DWVLPRO

#dwin #hmi #dgus #iot #diy #сенсорная панель