UTFT -русификация ПРОПОРЦИОНАЛЬНЫМ шрифтом

pavel_bbb
Offline
Зарегистрирован: 27.01.2014

Были проблемы с использованием библиотеки Адафруита.

Сейчас я использую данный способ вывода русских символов. http://adatum.ru/podklyuchenie-displeya-240x320-2-2-tft-spi-ili9340-k-ar...

Для данного способа существуют конверторы шрифтов или каждый шрифт самому создавать?

 

pavel_bbb
Offline
Зарегистрирован: 27.01.2014

Я честно так и не понял каким кнвертором по ссылке выше, добавили русские символы. Неужели вручную из рисовали.

 

b707
Offline
Зарегистрирован: 26.05.2017

pavel_bbb пишет:

Сейчас я использую данный способ вывода русских символов. http://adatum.ru/podklyuchenie-displeya-240x320-2-2-tft-spi-ili9340-k-ar...

Для данного способа существуют конверторы шрифтов или каждый шрифт самому создавать?

 

Павел, мы видимо друг друга не поняли. В посте #47 Вы писали, что пишете конвертер из TTF в формат UTFT_DLB и почти его закончили. Мне это очень интересно, потому что я тоже занимался прикручиванием TTF фонтов к другой библиотеке.

Но в вашем ответе выше нет ничего ни про фонты TTF ни про библиотеку UTFT_DLB

 

pavel_bbb
Offline
Зарегистрирован: 27.01.2014

Нет, я написал, что использовал обичный UTFT изменил в нем к примеру букву B латинскую на Б русскую. и писал влатинице. Потом нашел руссификатор к этой библиотеке, но максимальные символы 16*16. Хотел бы сейчас побольше символы, к примеру 24*24 или 32*32. Пока не дошел как правильно строить эти таблицы и задавать первые строки размеров. Есть таблица эксель которую тут выкладывали для редактирования символов, но там 16*16.

Поэтому я спрашивал, может кто уже делал для себя шрифт большой под эту библиотеку. Я бы отблагодарил материально, потому что не могу сейчас найти времени на ковыряние этой темы.

b707
Offline
Зарегистрирован: 26.05.2017

pavel_bbb пишет:

Поэтому я спрашивал, может кто уже делал для себя шрифт большой под эту библиотеку. Я бы отблагодарил материально, потому что не могу сейчас найти времени на ковыряние этой темы.

Чисто технически сделать шрифт UTFT из шрифта Адафруит проблемы не составляет. Но нюансов там много. Например, конвертер фонтов Адафруит не позволяет получить фонт точно заданного размера - задается только высота, да и та не вполне точно. Скажем, вы хотели фонт 24х24, а на выходе может получится 24х22, 24х26 или даже 23х20. Во-вторых, полученный фонт надо где-то тестировать, значит надо собирать макет с подходящим экраном и библиотекой UTFT

Все это приводит к тому. что создание фонта - вроде простое само по себе дело - для исполнителя выливается в приличную работу. Я бы не взялся за это меньше чем за 2500-3000 руб. Сомневаюсь, что такая цена за один только фонт будет вам интересна.

Если захотите сделать сами - рад буду помочь любым советом.

DrHamlet
Offline
Зарегистрирован: 13.04.2019

b707 пишет:

я и имел в виду UTFT_DLB. Просто у Адафруита уже есть программа, которая из любого TTF шрифта делает их фонт. А форматы фонтов Адафруит и UTFT_DLB. очень похожи, там буквально один-два байта поменять надо.

А вы что, начали писать конвертер TTF с чистого листа? интересно было бы посмотреть, если код не секретный

ну да, начал писать конвертер с чистого листа. код, конечно, не секретный, но показывать его не хотелось бы, тк не хочу позориться им, очень уж там все топорно и наскоряк.
сначала я шрифты эти рисовал заполняя матрицу в экселе, переводил в байт-код. потом мне это надоело, я накидал быдлокод, который из ттф шрифта брал нужные мне символы нужного мне размера, определял пустые области и закрашенные. соответственно, код выводил в матрицу 0 и 1. а далее уже не составляла труда эту матрицу перебрать в байт-код и скормить UTFT_DLB. но и это мне надоело. был на больняке, куча свободного времени. я захотел, чтобы все было автоматом, тк стало лениво ковыряться в экселе. в итоге программа уже отдает шрифт, но в нем есть косяки, которые я уже не успел отловить. на этом пока все встало, тк грядет лето, продолжаю стройку дома.

Вот пример того, что выдает программа (пару символов, чтобы не захламлять). Я не использую Arduino IDE, работаю в VSCode.
verdana24.h
 

#if defined(__AVR__)
	#include <avr/pgmspace.h>
	#define fontdatatype uint8_t
#elif defined(__PIC32MX__)
	#define PROGMEM
	#define fontdatatype const unsigned char
#elif defined(__arm__)
	#define PROGMEM
	#define fontdatatype const unsigned char
#endif

	const fontdatatype verdana24[] PROGMEM = {
		// font header
		0x00, // characters width - 0x00 - proportional
		0x18, // font height
		0x00, // first character - reserved to 0x00
		0x00, // number of characters - reserved to 0x00


		// 'Б'
		0x81, // ascsi code
		0x01, // adjusted Y offset
		0x12, // width
		0x18, // height
		0x00, // X offset
		0x12, // width + margin (px)
		0xFF,0xFF,0x3F,0xFF,0xCF,0xFF,0xF3,0x80,0x00,0xE0,0x00,0x38,0x00,0x0E,0x00,0x03,
		0x80,0x00,0xE0,0x00,0x3F,0xFE,0x0F,0xFF,0xE3,0xFF,0xFC,0xE0,0x0F,0xB8,0x00,0xEE,
		0x00,0x3B,0x80,0x0F,0xE0,0x03,0xF8,0x00,0xFE,0x00,0x3B,0x80,0x1E,0xE0,0x0F,0x3F,
		0xFF,0xCF,0xFF,0xE3,0xFF,0xC0,

		// 'В'
		0x82, // ascsi code
		0x01, // adjusted Y offset
		0x12, // width
		0x18, // height
		0x00, // X offset
		0x12, // width + margin (px)
		0xFF,0xF0,0x3F,0xFF,0x0F,0xFF,0xE3,0x80,0x78,0xE0,0x0F,0x38,0x03,0xCE,0x00,0xF3,
		0x80,0x38,0xE0,0x0E,0x38,0x07,0x0F,0xFF,0x83,0xFF,0xF8,0xFF,0xFF,0x38,0x03,0xEE,
		0x00,0x3B,0x80,0x0F,0xE0,0x03,0xF8,0x00,0xFE,0x00,0x3B,0x80,0x1E,0xE0,0x0F,0xBF,
		0xFF,0xCF,0xFF,0xE3,0xFF,0xC0,


		// Terminator
		0xFF
	};

 

DrHamlet
Offline
Зарегистрирован: 13.04.2019

b707 пишет:

Павел, мы видимо друг друга не поняли. В посте #47 Вы писали, что пишете конвертер из TTF в формат UTFT_DLB и почти его закончили. Мне это очень интересно, потому что я тоже занимался прикручиванием TTF фонтов к другой библиотеке.

Но в вашем ответе выше нет ничего ни про фонты TTF ни про библиотеку UTFT_DLB

Вы, видимо, перепутали сообщения ))

Сообщите, в чем у вас сложность с ттф? просто, мы отходим от темы. нам бы тогда как-то вне данной темы состыковаться, да обсудить все это. или вместе поработать. хоть времени свободного нет, но вечерами по часу могу выделить, чтобы у меня возобновился интерес к тому, что я забросил в долгий ящик

b707
Offline
Зарегистрирован: 26.05.2017

DrHamlet  и pavel_bbb - огромные извинения, перепутал ваши сообщения.

DrHamlet - я почему спросил - вытащить символ из TTF непростая задача - и она уже выполнена в Адафруитовском конвертере. Поэтому я бы, наверно, не стал писать свой конвертер из TTF с нуля, а собрал бы простенький скрипт для конверсии из фонтов Адафруит, благо их формат очень похож на UTFT_DLB

Но если Вы пошли этим путем - честь и уважуха :) На код не претендую, но что за косяки Вы имеете в виду? приведенный вами пример шрифта выглядит практически готовым. Мог бы помочь в допиливании.

b707
Offline
Зарегистрирован: 26.05.2017

DrHamlet пишет:

Вы, видимо, перепутали сообщения ))

да, уже написал :)

Цитата:
Сообщите, в чем у вас сложность с ттф?

у меня нет никаких сложностей с TTF:)

просто интресует эта тема...  мне недавно пришлось работать с разными фонтами в моем проекте, который можно условно назвать "Unicode фонты для матриц DMD" - http://arduino.ru/forum/proekty/dmdstm32-versiya-biblioteki-dmd-dlya-stm32duino

про фонты - сообщения #2 и #5 темы

DrHamlet
Offline
Зарегистрирован: 13.04.2019

На самом деле все оказывается проще. я подглядел за линуксоидами и нашел либу, которая используется для отрисовки шрифтов в оупнсоурсном софте. Называется FreeType2. Собрать ее под винду не составило труда. к проге кладется дллка freetype. вот через эту либу я и тяну данные из TTF, которые уже не составит труда обработать.

b707 пишет:

Мог бы помочь в допиливании.

думаю, было бы полезно. какакая есть альтернативная этому форуму связь с вами?

pavel_bbb
Offline
Зарегистрирован: 27.01.2014

нашел решение!

https://forum.arduino.cc/index.php?topic=447956.0

Просто взял свой русский шрифт 16*16 в редакторе изменил на 24*24

сохранил для UTFT cslassik и все. никакие UTFT_DLB не понадобились.

Большое спасибо всем кто помог.

DrHamlet
Offline
Зарегистрирован: 13.04.2019

так DLB - это пропорциональный шрифт. для классического UTFT есть какая-то экселевская приблуда, чтобы шрифты генерировать

b707
Offline
Зарегистрирован: 26.05.2017

pavel_bbb пишет:

нашел решение!

https://forum.arduino.cc/index.php?topic=447956.0

Просто взял свой русский шрифт 16*16 в редакторе изменил на 24*24

сохранил для UTFT cslassik и все. никакие UTFT_DLB не понадобились.

По ссылке - шикарный инструмент. Давно надо было написать "глобальный" конвертер шрифтов. они по сути все очень похожи.

Интересно, автор, кто-нибудь из местных? - судя по ссылке на наш форум в заглавном сообщении

pavel_bbb
Offline
Зарегистрирован: 27.01.2014

DrHamlet пишет:

так DLB - это пропорциональный шрифт. для классического UTFT есть какая-то экселевская приблуда, чтобы шрифты генерировать

наверное это и есть та самая приблуда.

pavel_bbb
Offline
Зарегистрирован: 27.01.2014

Теперь осталось разобраться как например стандартные виндовс шрифты туда засунуть. Буду разбираться

 

sadman41
Offline
Зарегистрирован: 19.10.2016

b707 пишет:

 местных? - судя по ссылке на наш форум в заглавном сообщении

http://arduino.ru/forum/proekty/binfontstool-redaktor-shriftov-adafruitgfx-utft-na-ms-excel

b707
Offline
Зарегистрирован: 26.05.2017

pavel_bbb пишет:

Теперь осталось разобраться как например стандартные виндовс шрифты туда засунуть. Буду разбираться

 

отписал в ветке Den Syo

Jr.Bush
Offline
Зарегистрирован: 06.04.2020

Я только что потратил день, что бы переписать библиотеку с Adafruit под utft что бы проще было подключить кирилицу.

Jr.Bush
Offline
Зарегистрирован: 06.04.2020

Уважаемы форумчане прошу вас немного обьяснить моменты не поддающиеся обьяснению:

Почему библиотеку MCUFRIEND, перекрывают библиотекой ADAFRUIT?

Ведь MCUFRIEND самостоятельная библиотека которая состоит из UTFTGLUE которая в свою очередь основана на UTFT и абсолютно не понятным способом понимает команды и UTFT и ADAFRUIT

 Я имею ввиду что могу например задать цвет фона как:

myGLCD.setBackColor(0x0000);

Или как myGLCD.fillScreen(0x0000); 

Еще я могу спокойно масштабировать текст командой myGLCD.setTextSize() причем в бесконечных пределах, хотя ADAFRUIT поддерживает масштабирование до 5!

Что это за магическая библиотека UTFTGLUE о которой так мало написана и которая так замечательно подключается к моему дисплею 3.5’’ без определения модели(вместо нее я установил 0) как было в одном из примеров) и дисплей работает, хотя не работает со штатной UTFT.

Почему в интернете написано что встроенная библиотека TFT это расширенная UTFT?

И прежде чем кто то надумает перейти на ADAFRUIT подумайте о проблеме бекграунда стороннего шрифта (фон не работает).

И еще один момент при попытке вывести «МЕНЮ» на дисплее я вижу «.::М.::Е.::Н.::Ю» о каких лишних байтах может идти речь?

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Jr.Bush пишет:

Почему библиотеку MCUFRIEND, перекрывают библиотекой ADAFRUIT?

...

И еще один момент при попытке вывести «МЕНЮ» на дисплее я вижу «.::М.::Е.::Н.::Ю» о каких лишних байтах может идти речь?

Что такое MCUFRIEND, я не знаю. Потому, что для экрана использую исключительно собственные библиотеки.

А то, что Вы видите на экране, скорее всего, связано с тем, что какая-то из взаимодействующих между собой библиотек не поддерживает кириллицу/utf-8.

Jr.Bush
Offline
Зарегистрирован: 06.04.2020

http://arduinoplus.ru/arduino-tft-lcd-display/

приятно и понятно написана статья, учился по ней, вот только нет смысла использовать adafruit ведь mcufriend использует команды utft.

И utft более распространена. А по поводу русификации, просто берем шрифт(скаченный или сделаный) добавляем в библиотеку обьявляем и пользуемся, разве не так? 

Jr.Bush
Offline
Зарегистрирован: 06.04.2020

Скажите, что вас подвигло написать собственную библиотеку для tft? Ведь не сложно было найти библиотеку под любой tft, а драйвер вы тоже сами писали?

b707
Offline
Зарегистрирован: 26.05.2017

Jr.Bush пишет:

нет смысла использовать adafruit ведь mcufriend использует команды utft.

откуда вы это взяли, что mcufriend использует команды utft ?

если открыть официальный гитхаб MCUFRIEND_kbv

в заголовке базового класса библиотеки вы увидите вот такую строчку:

class MCUFRIEND_kbv : public Adafruit_GFX {

вы в курсе. что значит эта конструкция? - что класс mcufriend является потомком адафруит.

А вот как раз от UTFT я в mcufriend никаких следов что-то не вижу.

Jr.Bush
Offline
Зарегистрирован: 06.04.2020

Согласен, как вы уже поняли я плохо разбираюсь в программировании, и если не сложно скажите, зачем нужна MCUFRIEND,  зачем она подгружает, UTFTGLUE в котором как мне кажется находится переименование команд в стиле UTFT?

И которая содержит в себе все шрифты UTFT. Но там же написано, что MCUFRIEND использует шрифты GFX.

Jr.Bush
Offline
Зарегистрирован: 06.04.2020

Суть такова, что у меня был скетч под ADAFRUIT разбираясь с кириллицей столкнулся с тем что у нее нет бекграунда, капаясь в примерах UTFT получилось запустить экран заменив UTFT на UTFTGLUE при этом оставив штатные команды, а теперь оказывается что сама UTFT не поддерживает мой экран.(

b707
Offline
Зарегистрирован: 26.05.2017

если в первом приближении - MCUFRIEND - графбиблиотека низкого уровня, то есть она содержит команды инициализации и работы с конкретными дисплеями. А Адафруит содержит графические процедуры общего типа, например рислвание текста и графики. работа с символами и шрифтами.

MCUFRIEND наследует методы Адафруит, это позволяет ей использовать код Адафруит, а не писать его заново

b707
Offline
Зарегистрирован: 26.05.2017

Jr.Bush пишет:

Суть такова, что у меня был скетч под ADAFRUIT разбираясь с кириллицей столкнулся с тем что у нее нет бекграунда

бекграунд можно дописать самому, если переписать метод draw_char() из Адафруит. Однако из-за особенностей кодирования шрифтов в этой библиотеке на некоторых символах бекграунд будет давать артефакты.. Собственно, в комментариях в исходном коде библиотеки вы можете найти обьяснение авторов. почему они не стали делать бекграунд у пропорциональных шрифтов.

кроме того, самый простой метод обойтись без бекграунда - это рисовать под текстом пряиоугольник нужного цвета, тогда старый текст будет затираться и никакой бекграунд будет не нужен

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Jr.Bush пишет:

http://arduinoplus.ru/arduino-tft-lcd-display/

приятно и понятно написана статья, учился по ней, вот только нет смысла использовать adafruit ведь mcufriend использует команды utft.

А Вас не смутило, что все примеры в статье используют исключительно латиницу?

Цитата:

И utft более распространена. А по поводу русификации, просто берем шрифт(скаченный или сделаный) добавляем в библиотеку обьявляем и пользуемся, разве не так? 


А как же быть с «.::М.::Е.::Н.::Ю»?

Jr.Bush пишет:

Скажите, что вас подвигло написать собственную библиотеку для tft? Ведь не сложно было найти библиотеку под любой tft, а драйвер вы тоже сами писали?

Ну, строго говоря, я писал библиотеку не для tft, а для oled, а с tft работаю, что называется "без библиотеки", т.е. пишу только инициализацию для конкретного дисплея и необходимые мне функции, что не соответствует понятию библиотеки, т.к. не обладает универсальностью.

А причины две:

1. Компактность и скорость. В погоне за универсальностью авторы библиотек, как правило, жертвуют и тем, и другим.

2. Мне вообще не удалось найти ни одной библиотеки, которая "из коробки" работала бы с кириллицей. Что, в принципе, логично, т.к. микроконтроллер, в отличие от компьютера, предназначен не для обработки информации, а для управления устройствами.

И еще: термин "драйвер" используется в статье не совсем обычным способом и имеет смысл лишь про поддержке большого разнообразия дисплеев. Для единственного типа дисплея граница между "драйвером" и остальной частью библиотеки отсутствует.

Jr.Bush
Offline
Зарегистрирован: 06.04.2020

значит на сегоднЯшний день не существует единственного правильно решения данной задачи. 

b707
Offline
Зарегистрирован: 26.05.2017

Jr.Bush пишет:

значит на сегоднЯшний день не существует единственного правильно решения данной задачи. 


забавные вы выводы делаете...
Единственного решения для чего?
Для вывода кириллицы на дисплей есть масса разных методов. В том числе через адафруит

Jr.Bush
Offline
Зарегистрирован: 06.04.2020

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

Jr.Bush
Offline
Зарегистрирован: 06.04.2020

даже подложка в виде прямоугольника приводит к мерцанию текста так как контролер дисплея обновит весь текст, вместо нескольких пикселей и расскажите что будет отображаться чаще «прямоугольник» или текст над ним? это очень не красиво , и для экрана 3.5” это будет заметно, варианты которые существуют на данный момент это изменение кодировки в режиме работы программы, метод замены кодов на символы или тупо печатать латиницей русские буквы даже с моим уровнем знаний считается проявлением «лишь бы работало», я лично на своем экране видел русские буквы, и еще не понятные символы, которые НЕ мешали читать кириллицу. А значит существует такая возможность...

b707
Offline
Зарегистрирован: 26.05.2017

Что такое поддержка кириллицы без танцев с бубнами? Вот например библиотека, которая обсуждается в начале этой темы и требует перекодировки кириллицы из одной кодировки в другую - это "танцы" или нет?
И прежде чем отвечать - вспомните, что сама Ардуино Иде поддерживает кириллицу не полностью. Например, если писать в коде русские комментприи, то после нескольких сохранений файла они поевращаются в квпдратики

b707
Offline
Зарегистрирован: 26.05.2017

Jr.Bush пишет:

значит на сегоднЯшний день не существует единственного правильно решения данной задачи. 


сколько вам лет? Такое впечатление, что не больше 15-ти, простите
У большинства сложных проблем нет "единственного правильного решения" и это хорошо. Каждый может выбрать из нескольких вариантов то, что подходит именно ему. Проект создания библиотеки, решающей все проблемы - это утопия. Невозможно создать решение, которое устроит всех, так же как нет еды,которая нравилась бы каждому.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Jr.Bush пишет:

Хочу сказать, что у меня был опыт заказа разработанного контролера автономного шагового двигателя и когда разработчик узнал, что у меня есть необходимость в большой партии таких контролеров стоимость взлетела до небес,

Вы немного неверно расставляете акценты: это на форуме расценки ниже всякого демпинга. Причин, минимум, две: 

1. На этом никто профессионально не зарабатывает. Т.е. все имеют другие источники дохода, а Ардуино - хобби, поэтому делают "за спасибо". Но только то, что самим интересно. Т.е. если Ваша задача никого не заинтересовала,  то и делать ее никто не будет (по крайней мере, по существующим демпинговым ценам).

2. Качество изготовления в большинстве случаев - для студентов: сдать зачет и забыть. Профессиональное программирование подразумевает исходно несколько другой подход.

Цитата:

а дорогостоящий опытный образец отработал 15мин, таким образом подхожу к вопросу, сколько может стоить разработка библиотеки

Исходите из того, что при изготовлении крупной партии 50-99% ее цены составит разработка ПО. Т.е. стоимость программы, как правило, превышает изготовление аппаратной части всей партии товара. Нередко, в десятки раз.

Цитата:

... и что бы не флудить можно писать в личку.

Вы не могли бы поподробнее написать, что я для этого должен сделать?

Jr.Bush
Offline
Зарегистрирован: 06.04.2020

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

Jr.Bush
Offline
Зарегистрирован: 06.04.2020

Абсолютно любой шрифт или перекодировка или что либо, приводит к тому что нет бекграунда, как с этим бороться на примере банальных часов не говоря уже о большом объёме выводимой информации. Вот и все тупик. 

Jr.Bush
Offline
Зарегистрирован: 06.04.2020

Что пишет автор ADAFRUIT “This will unfortunately “blink” the text when erasing and redrawing, but is unavoidable. The old scheme of drawing background pixels in the same pass only creates a new set of problems.”

b707
Offline
Зарегистрирован: 26.05.2017

Jr.Bush пишет:

Абсолютно любой шрифт или перекодировка или что либо, приводит к тому что нет бекграунда, как с этим бороться на примере банальных часов не говоря уже о большом объёме выводимой информации. Вот и все тупик. 

Вовсе не любой шрифт....

"как с этим бороться"  - есть готовый способ. Обратите внимание, что проблемы с фоном есть только у пропорциональных шрифтов, а у моноширинных их нет.  Почему? - да потому что для моноширинных символов авторы библиотеки не только рисуют буквы, но и одновременно заполняют фон. Вот вам готовое решение - сделайте так же для пропорциональных шрифтов и проблема будет решена. Конечно, этот метод имеет свои сложности, и авторы об этом предупреждают - но все-таки это путь к решению.

Например. в библиотеке для светодиодных матриц, которую я поддерживаю - вывод кириллицы в формате Адафруит сделан именно так - и нет никаких проблем с фоном.

b707
Offline
Зарегистрирован: 26.05.2017

Jr.Bush пишет:

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

немного поменял ваш текст:

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

похоже?

Jr.Bush
Offline
Зарегистрирован: 06.04.2020

Всем спасибо, вопрос руссификации решен.

b707
Offline
Зарегистрирован: 26.05.2017

Jr.Bush пишет:

Всем спасибо, вопрос руссификации решен.

и как же решен, можно поинтересоваться? :)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Забит, скорее всего.

b707
Offline
Зарегистрирован: 26.05.2017

DetSimen пишет:

Забит, скорее всего.

так и есть :) Автор выложил свой код на Амперке - он целиком на латинице :)

Basoil
Offline
Зарегистрирован: 23.07.2020

Подниму тему.. вдруг кому еще интересно...
Делаю проект на SSD1963 7", проще конечно было взять Nextion - но этот валялся несколько лет - решил пустить в дело.

Итоговые мысли недели возни с русификацией, шрифтами, библиотеками:

1. Переделал UTFT_DLB. Вставил конвертацию UTF-ASCII прямо туда. 
2. Поправил в UTFT_DLB_Buttons определения UTouch - URTouch
3. Пропорциональные шрифты - так, как в TTF шрифтах русские символы расположены далеко, а программулина от UTFT_DLB (ttf2c_vc2003.exe) делает только до 255-го символа, то с помощью FontForge поправил TTF (просто перенес глифы на другие места). И теперь могу делать шрифты любого размера и любого начертания ( DUE имеет много памяти)

в планах - доделать UTFT для рисования сглаженных линий и UTFT_DLB для правильного размещения текста (CENTER, LEFT, RIGHT)

Но в дальнейшем лучше использовать дисплеи типа Nextion ))) там рюшечки красивее...

Используемые библиотеки:

UTFT - v2.83
URTouch - 
v2.02
UTFT_Buttons - 
v1.03
UTFT_DLB - 1.01
UTFT_DLB_Buttons - 1.0

 

 

MIK22
Offline
Зарегистрирован: 09.02.2017

UTFT попробуйте замену символов

extern uint8_t character_rus[104] = 
{
    ' ', '!', '"', '#', '$', '%', '&', '`', '(', ')',
'*', '+', ',', '-', '.', '/', '0', '1', '2', '3',
'4', '5', '6', '7', '8', '9', ':', ';', '<', '=',
'>', '?', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З',
'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С',
'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы',
'Ь', 'Э', 'Ю', 'Я', 'а', 'б', 'в', 'г', 'д', 'е',
'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п',
'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ',
'ъ', 'ы', 'ь', 'э', 'ю', 'я', '{', '|', '}', '~',
'[', ']', '^', '_'
};
extern uint8_t code_byte_lcd[104] = 
{
     32,  33,  34,  35,  36,  37,  38,  39,  40,  41,
42,  43,  44,  45,  46,  47,  48,  49,  50,  51,
52,  53,  54,  55,  56,  57,  58,  59,  60,  61,
62,  63,  64,  65,  66,  67,  68,  69,  70,  71,
72,  73,  74,  75,  76,  77,  78,  79,  80,  81,
82,  83,  84,  85,  86,  87,  88,  89,  90,  91,
92,  93,  94,  95,  96,  97,  98,  99, 100, 101,
102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
132, 133, 134, 135
};
Я давно пользуюсь.
b707
Offline
Зарегистрирован: 26.05.2017

MIK22, память-то не жалко?

массив code_byte_lcd[104] представляет из себя просто сотню последовательных чисел, а занчит легко заменяется арифметикой в одно действие