U8GLIB и русская кодировка

Jacks_d
Offline
Зарегистрирован: 31.12.2011

Давно не писал дорогие софорумцы!

Суть такая, осваивал новый ЖК дисплей с вкусными размерами корпуса, но не на подтвержденном контролере. Гугление и помощь от создателя библиотеки U8GLIB помогли его запустить и заставить нормально работать.

На вопрос о кирилице, он ответил что у него небыло ни одного фидбека, что наводит на всякие мысли...

Вот ссылка на тикет от меня https://code.google.com/p/u8glib/issues/detail?id=202 который закончился появлением новой версии библиотеки.

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

Jacks_d
Offline
Зарегистрирован: 31.12.2011

Цетирую:

Project Member #11 olikr...@gmail.com

ok, thanks you so far. I will wait if someone contacts me.

В общем разработчик ждет когда кто-то с ним свяжется.

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Я могу добавлять свои шрифты в эту библиотеку. По умолчанию все не ANSI сивмолы кодюруются двухбайтным юникодом. Библиотека его не понимает. Но понимает любые однобайтные кодировки. есть программа для перевода шрифтов .bdf в код C

Также есть редактор шрифтов FontForge который понимает BDF. В нем я переконвертировал шрифты в ISO8859-5. Подправил код среды IDE Arduino и добавил выбор кодировки которую я хочу на выходе. Вобщем ценой 10 строк кода на яве и перекомпиляции среды я достиг желаемого: Пишу на русском, показывает на русском. Пинать бедных разработчиков не мой профиль. Но работы с юникодом в библитеке явно не хватает. Может написать?

 

buka
buka аватар
Offline
Зарегистрирован: 07.06.2012

Кириллица была добавлена по моей просьбе еще полтора года назад.

Да  и инструмент для добавления шрифтов он еще прошлым летом выложил.

Jacks_d
Offline
Зарегистрирован: 31.12.2011

Почиму сразу пинать, просто к ниму никто не обращался по этой проблеме. Я понимаю что вы решили проблему, но так не сможет сделать простой пользователь, например для меня это космос:) Возможно он сможет решить проблему просто, он про нее до этого не знал. Ведь для вас было по силам перебрать исходники Arduino, а для разработчика написать библиотеку на большое количество контралеров. Да и думаю вы будите не одни в решении этой проблемы, кто то еще может подключиться!

Jacks_d
Offline
Зарегистрирован: 31.12.2011

buka пишет:

Да  и инструмент для добавления шрифтов он еще прошлым летом выложил.

И как им пользоваться?

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

вот тут

и тут немножко

Расписал все для домохозяек...

buka
buka аватар
Offline
Зарегистрирован: 07.06.2012

Хорошо написано. Только я делал как то проще, без перекодировки. Надо посмотреть, может исходники остались.

Jacks_d
Offline
Зарегистрирован: 31.12.2011

И что делать с этим? Уже кстати пытался по вашему пути идти но уперся в это:(

buka пишет:

Хорошо написано. Только я делал как то проще, без перекодировки. Надо посмотреть, может исходники остались.

Вот и получается как с "домастской сталью", шучу конечно, но ничего не понятно.

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

из "C:\Program Files\FontForge\bin\share\locale" удалить папку "ru". Под убунтой кстати такой проблемы не наблюдается....

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

сковертировать в код с и заменить или добавить как новый

Jacks_d
Offline
Зарегистрирован: 31.12.2011

А где взять соответствие номеров сиволов в шрифте с данными?

И как сгенерировать С-шный шрифт?

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

или я вас не понял или вы не читали по ссылкам выше. Вообще предпологается хоть какое нибудь понимание как это все работает - если его нет то только гугл!(включая все смежные темы)

 

Jacks_d
Offline
Зарегистрирован: 31.12.2011

Пришел к выводу, что лучше буду рисовать буквы битовыми картинками в шестнадцатиричной системе, чем лезть в такие дебри где костыль на костыле...

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

Jacks_d
Offline
Зарегистрирован: 31.12.2011

Обещал разобраться, разобрался, ничего в исходниках менять не нужно, просто нужно заменить в файле u8g_font_data.c  который находится в arduino-1.0.5\libraries\U8glib\utility\  открываете в блакноте (или лучше в нормальном редакторе, у меня из сборке тотал-командера звать AkelPad т.к. блокнот может накосячить при сохранении) и заменяете все что касается шрифта u8g_font_unifont_0_8, начиная с коментария и заканчивая концом массива там что написанно ниже.

/*
  Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1
  Copyright: 
  Capital A Height: 10, '1' Height: 10
  Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=32
  Font Bounding box     w=16 h=16 x= 0 y=-2
  Calculated Min Values           x= 0 y=-2 dx= 0 dy= 0
  Pure Font   ascent =10 descent=-2
  X Font      ascent =11 descent=-2
  Max Font    ascent =14 descent=-2
*/
#include "u8g.h"
const u8g_fntpgm_uint8_t u8g_font_unifont_0_8[4239] U8G_FONT_SECTION("u8g_font_unifont_0_8") = {
  0,16,16,0,254,10,1,231,3,213,32,255,254,14,254,11,
  254,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128,
  128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136,
  136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144,
  144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124,
  16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82,
  140,7,10,10,8,1,0,56,68,68,68,56,114,138,132,140,
  114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3,
  255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12,
  8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7,
  7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8,
  1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192,
  64,64,128,6,1,1,8,1,4,252,2,2,2,8,3,0,
  192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64,
  128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132,
  72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32,
  32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128,
  128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132,
  132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8,
  8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4,
  132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132,
  132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16,
  16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132,
  132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4,
  8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2,
  9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9,
  9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5,
  8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64,
  32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132,
  4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148,
  172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72,
  132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132,
  132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132,
  128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132,
  132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128,
  128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128,
  128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132,
  128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132,
  132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32,
  32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8,
  8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144,
  160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128,
  128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204,
  204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196,
  164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132,
  132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132,
  132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132,
  132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132,
  132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132,
  132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16,
  16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132,
  132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130,
  130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132,
  132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132,
  72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130,
  68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4,
  4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128,
  128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0,
  128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255,
  224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8,
  1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8,
  2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132,
  132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132,
  132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128,
  132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132,                   
  132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132,
  120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32,
  32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120,
  132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132,
  132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32,
  32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8,
  8,8,8,8,8,8,144,96,6,10,10,8,1,0,128,128,
  136,144,160,192,160,144,136,132,5,10,10,8,2,0,96,32,
  32,32,32,32,32,32,32,248,7,8,8,8,1,0,236,146,
  146,146,146,146,146,146,6,8,8,8,1,0,184,196,132,132,
  132,132,132,132,6,8,8,8,1,0,120,132,132,132,132,132,
  132,120,6,10,10,8,1,254,184,196,132,132,132,132,196,184,
  128,128,6,10,10,8,1,254,116,140,132,132,132,132,140,116,
  4,4,6,8,8,8,1,0,184,196,132,128,128,128,128,128,
  6,8,8,8,1,0,120,132,128,96,24,4,132,120,5,10,
  10,8,1,0,32,32,248,32,32,32,32,32,32,24,6,8,
  8,8,1,0,132,132,132,132,132,132,140,116,6,8,8,8,
  1,0,132,132,132,72,72,72,48,48,7,8,8,8,1,0,
  130,146,146,146,146,146,146,108,6,8,8,8,1,0,132,132,
  72,48,48,72,132,132,6,10,10,8,1,254,132,132,132,132,
  132,76,52,4,4,120,6,8,8,8,1,0,252,4,8,16,
  32,64,128,252,3,12,12,8,3,255,96,128,128,64,64,128,
  128,64,64,128,128,96,1,14,14,8,4,254,128,128,128,128,
  128,128,128,128,128,128,128,128,128,128,3,12,12,8,2,255,
  192,32,32,64,64,32,32,64,64,32,32,192,7,3,3,8,1,8,
  98,146,140,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128,
  0,115,209,202,16,75,209,202,16,115,223,128,
  0,0,1,128,0,0,1,128,0,85,85,
//р 0xa0
  6,10,10,8,1,254,	248,132,132,132,132,248,128,128,128,128,
  6,8,8,8,1,0,120,	132,128,128,128,128,132,120,
  7,8,8,8,1,0,254,	16,16,16,16,16,16,16,
  6,10,10,8,1,254,	132,132,72,72,48,48,32,32,64,192,
  
  7,10,10,8,1,255,	16,16,124,146,146,146,146,124,16,16,   
  6,8,8,8,1,0,132,	132,72,48,48,72,132,132,
  7,10,10,8,1,254,	132,132,132,132,132,132,132,254,2,2,
  6,8,8,8,1,0,132,	132,132,132,252,4,4,4,
  7,8,8,8,1,0,146,	146,146,146,146,146,146,254,
  8,10,10,8,0,254,	146,146,146,146,146,146,146,255,
  1,1,7,8,8,8,		1,0,224,32,32,60,34,34,34,60,
  6,8,8,8,1,0,		132,132,132,228,148,148,148,228,
  6,8,8,8,1,0,		128,128,128,248,132,132,132,248,
  6,8,8,8,1,0,		112,136,4,124,4,4,136,112,
  6,8,8,8,1,0,		152,164,164,228,164,164,164,152,
  6,8,8,8,1,0,		124,132,132,132,124,36,68,132,
//я 0xaf
//А
  6,10,10,8,1,0,	48,72,72,132,132,132,252,132,132,132,
  6,10,10,8,1,0,	248,128,128,128,248,132,132,132,132,248,
  6,10,10,8,1,0,	248,132,132,132,248,132,132,132,132,248,
  6,10,10,8,1,0,	252,128,128,128,128,128,128,128,128,128,
  
  8,12,12,8,0,254,	14,18,18,18,34,34,34,66,66,255,129,129,
  6,10,10,8,1,0,	252,128,128,128,248,128,128,128,128,252,
  7,10,10,8,1,0,	146,146,84,84,56,56,84,84,146,146,
  6,10,10,8,1,0,	120,132,4,4,120,8,4,4,132,120,
 
  6,10,10,8,1,0,	132,140,140,148,148,164,164,196,196,132,
  6,13,13,8,1,0,	72,48,0,132,140,140,148,148,164,164,196,196,132,
  6,10,10,8,1,0,	128,140,144,160,192,192,160,144,136,132,
  6,10,10,8,1,0,	60,36,36,36,36,36,36,68,68,132,
 
  6,10,10,8,1,0,	132,132,204,204,180,180,132,132,132,132,
  6,10,10,8,1,0,	132,132,132,132,252,132,132,132,132,132,
  6,10,10,8,1,0,	120,132,132,132,132,132,132,132,132,120,
  6,10,10,8,1,0,	252,132,132,132,132,132,132,132,132,132,
 
  6,10,10,8,1,0,	248,132,132,132,248,128,128,128,128,128,
  6,10,10,8,1,0,	120,132,132,128,128,128,128,132,132,120,
  7,10,10,8,1,0,	254,16,16,16,16,16,16,16,16,16,
  7,10,10,8,1,0,	130,130,68,68,40,40,16,16,32,96,
  
  7,11,11,8,1,0,	16,124,146,146,146,146,146,124,16,16,16,    
  6,10,10,8,1,0,	132,132,72,72,48,48,72,72,132,132,
  7,12,12,8,1,254,	132,132,132,132,132,132,132,132,132,254,2,2,
  6,10,10,8,1,0,	132,132,132,132,132,252,4,4,4,4,
 
  7,10,10,8,1,0,	146,146,146,146,146,146,146,146,146,254,
  8,12,12,8,0,254,	146,146,146,146,146,146,146,146,146,255,1,1,
  7,10,10,8,1,0,	224,32,32,32,60,34,34,34,34,60,
  6,10,10,8,1,0,	132,132,132,132,228,148,148,148,148,228,
  
  6,10,10,8,1,0,	128,128,128,128,248,132,132,132,132,248,
  6,10,10,8,1,0,	112,136,4,4,124,4,4,4,136,112,
  6,10,10,8,1,0,	152,164,164,164,228,164,164,164,164,152,
  6,10,10,8,1,0,	124,132,132,132,124,36,68,68,132,132,
 
  6,8,8,8,1,0,		120,132,4,124,132,132,140,116,
  6,12,12,8,1,0,	4,56,64,128,248,132,132,132,132,132,132,120,
  6,8,8,8,1,0,248,	132,132,248,132,132,132,248,
  6,8,8,8,1,0,252,	128,128,128,128,128,128,128,
 
  7,9,9,8,1,255,	60,36,68,68,132,132,132,254,130,
  6,8,8,8,1,0,120,	132,132,252,128,128,132,120,
  7,8,8,8,1,0,146,	146,84,56,56,84,146,146,
  6,8,8,8,1,0,120,	132,4,120,8,4,132,120,
 
  6,8,8,8,1,0,140,	140,148,148,164,164,196,196,
  6,11,11,8,1,0,	72,48,0,140,140,148,148,164,164,196,196,
  6,8,8,8,1,0,		140,144,160,192,160,144,136,132,
  6,8,8,8,1,0,		60,36,36,36,36,68,68,132,
 
  6,8,8,8,1,0,		132,204,204,180,180,132,132,132,
  6,8,8,8,1,0,		132,132,132,252,132,132,132,132,
  6,8,8,8,1,0,		120,132,132,132,132,132,132,120,
  6,8,8,8,1,0,		252,132,132,132,132,132,132,132};

Проверка этим:

 u8g.setFont(u8g_font_unifont_0_8);
 u8g.setPrintPos(0, 52);  // позиция  
 u8g.print("абвгдежзийклмноп"); 
 //абвгдежзийклмноп  рстуфхцчшщъыьэюя
 //АБВГДЕЖЗИКЛ МНОПРСТУФХ ЦЧШЩЪЫЬЭЮЯ

P.S. Скорее всего еще нарисую шрифт 5х7, этот был исправлен, кроме описанных изминений больше ничего не нужно, чтобы приминить изменения нужно сохранить файл и перезапустить Arduino IDE

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Поздравляю - вернулись к тому с чего начали. 5х8 6х10(компильнутые в кодировке ISO8859-5) они уже есть в BDF. Там русские символы не в первой кодовой странице (коды символов больше 255). С автором u8glib я общался - библиотека может работать только с символами с кодом 0...255

Jacks_d
Offline
Зарегистрирован: 31.12.2011

ну вот чего вам не нравится? шрифт работает, без переделывания BDF, без его же доп загрузки, без изменения Arduino IDE, что ж еще не так? У меня семерка х64. Шрифты не доставлял, просто пишу в IDE русский текст и он выводится, без доп плясок с бубном.

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

точно выводится?

Jacks_d
Offline
Зарегистрирован: 31.12.2011

Ну проверте!!! могу видео снять, только верните настройки в IDE, а еще лучше в голую залейте

З.Ы. там в шрифте были строки перепутаны, если смотреть в шестнаднатиричной системе.

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

просто у меня из голой не выводилось, оттого и начал всю эту возьню.....

Jacks_d
Offline
Зарегистрирован: 31.12.2011

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

Jacks_d
Offline
Зарегистрирован: 31.12.2011

Переделываю сейчас шрифт u8g_font_unifont_0_8 который по сути 16х16 в шрифт 5х7, все было хорошо до того момента как перехожу к следующему символу как только перерисовываю знак вопросы который является последним во второй строке в шестнадцатиричной таблице шрифта отрисовка почти правильная в исходнике по ссылке https://code.google.com/p/u8glib/wiki/fontgroupunifont смотреть u8g_font_unifont_0_8, до этого все нормально помогите разобраться как и что тут происходит, например непонятно назначение первых 23 значений до восклицательного знака. есть еще одно место оно подписано в коде ниже тоже после перерисовке все знаки после них сыпятся.

/*
  Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1
  Copyright: 
  Capital A Height: 10, '1' Height: 10
  Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=32
  Font Bounding box     w=16 h=16 x= 0 y=-2
  Calculated Min Values           x= 0 y=-2 dx= 0 dy= 0
  Pure Font   ascent =10 descent=-2
  X Font      ascent =11 descent=-2
  Max Font    ascent =14 descent=-2
*/

#include "u8g.h"
const u8g_fntpgm_uint8_t u8g_font_unifont_5_7[4233] U8G_FONT_SECTION("u8g_font_unifont_5_7") = {
  0,16,16,0,254,10,1,231,3,213,32,255,254,14,254,11,
  254,0,0,0,8,0,14,1,10,10,8,4,0,		
128,128,128,128,128,128,128,0,128,128,		//!
5,4,4,8,2,8,136,136,136,
  136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144,
  144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124,
  16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82,
  140,7,10,10,8,1,0,56,68,68,68,56,114,138,132,140,
  114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3,
  255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12,
  8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7,
  7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8,
  1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192,
  64,64,128,6,1,1,8,1,4,252,2,2,2,8,3,0,
  192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64,
  128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132,
  72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32,
  32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128,
  128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132,
  132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8,
  8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4,
  132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132,
  132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16,
  16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132,
  132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4,
  8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2,
  9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9,
  9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5,
  8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64,
32,16,8,16,32,64,128,

//Как только перерисовываю знак вопроса, то все символы после него сыпятся

6,10,10,8,1,0,		120,132,132,4,8,16,16,0,16,16,		//?

6,10,10,8,1,0,56,68,148,172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72,
  132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132,
  132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132,
  128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132,
  132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128,
  128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128,
  128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132,
  128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132,
  132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32,
  32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8,
  8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144,
  160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128,
  128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204,
  204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196,
  164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132,
  132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132,
  132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132,
  132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132,
  132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132,
  132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16,
  16,16,16,16,16,16,16,16,
6,10,10,8,1,0,		132,132,132,132,132,132,132,132,132,120,
7,10,10,8,1,0,		130,130,130,68,68,68,40,40,16,16,

6,10,10,8,1,0,		132,132,132,132,180,180,204,204,132,132,
6,10,10,8,1,0,		132,132,72,72,48,48,72,72,132,132,
7,10,10,8,1,0,		130,130,68,68,40,16,16,16,16,16,
6,10,10,8,1,0,		252,4,4,8,16,32,64,128,128,252,
// дальше закоментированны знаки которые идут после знака вопроса и заканчивая буквой Z.
/*
  5,8,8,6,1,0,		32,80,80,136,136,248,136,0,		//A
  5,8,8,6,1,0,		240,136,136,240,136,136,240,0,		//B
  5,8,8,6,1,0,		112,136,128,128,128,136,112,0,		//C
  5,8,8,6,1,0,		240,136,136,136,136,136,240,0,		//D
  5,8,8,6,1,0,		248,128,128,240,128,128,248,0,		//E
  5,8,8,6,1,0,		248,128,128,240,128,128,128,0,		//F
  5,8,8,6,1,0,		112,136,128,128,152,136,120,0,		//G
  5,8,8,6,1,0,		136,136,136,248,136,136,136,0,		//H
  5,8,8,6,1,0,		248,32,32,32,32,32,248,0,		//I
  5,8,8,6,1,0,		120,16,16,16,16,144,96,0,		//J
  5,8,8,6,1,0,		136,144,160,192,160,144,136,0,		//K
  5,8,8,6,1,0,		128,128,128,128,128,128,248,0,		//L
  5,8,8,6,1,0,		136,216,216,168,136,136,136,0,		//M
  5,8,8,6,1,0,		136,136,200,168,152,136,136,0,		//N
  5,8,8,6,1,0,		112,136,136,136,136,136,112,0,		//O
  5,8,8,6,1,0,		240,136,136,240,128,128,128,0,		//P
  5,8,8,6,1,0,		112,136,136,136,136,168,112,16,		//Q
  5,8,8,6,1,0,		240,136,136,240,160,144,136,0,		//R
  5,8,8,6,1,0,		112,136,128,112,8,136,112,0,		//S
  5,8,8,6,1,0,		248,32,32,32,32,32,32,0,		//T
  5,8,8,6,1,0,		136,136,136,136,136,136,112,0,		//U
  5,8,8,6,1,0,		136,136,136,80,80,32,32,0,		//V
  5,8,8,6,1,0,		136,136,168,168,168,216,80,0,		//W
  5,8,8,6,1,0,		136,136,80,32,80,136,136,0,		//X
  5,8,8,6,1,0,		136,136,80,80,32,32,32,0,		//Y
  5,8,8,6,1,0,		248,8,16,32,64,128,248,0,		//Z*/
//если знаки с этой надписи до буквы "а", отрисовать заново то они отоброжаются но после них все сыпится
3,12,12,8,4,255,224,128,128,128,128,128,128,128,128,128,128,224,
6,10,10,8,1,0,128,128,64,32,32,16,16,8,4,4,
3,12,12,8,1,255,224,32,32,32,32,32,32,32,32,32,32,224,
6,3,3,8,1,9,48,72,132,
7,1,1,8,1,255,254,
3,3,3,8,2,10,128,64,32,
  5,6,6,6,1,0,		112,8,120,136,112,0,		//a
  5,6,6,6,1,0,		128,128,240,136,240,0,		//b
  5,6,6,6,1,0,		112,136,128,136,112,0,		//c

  5,6,6,6,1,0,		8,8,120,136,120,0,		//d
  5,6,6,6,1,0,		112,136,248,128,112,0,		//e
  5,6,6,6,1,0,		32,64,224,64,64,0,		//f
  5,6,6,6,1,0,		112,136,120,8,112,0,		//g

  5,6,6,6,1,0,		128,128,240,136,136,0,		//h
  5,6,6,6,1,0,		128,0,128,128,128,0,		//i
  5,6,6,6,1,0,  	32,0,112,32,32,0,		//j
  5,6,6,6,1,0,		144,160,192,160,144,0,		//k
  
  5,6,6,6,1,0,		192,64,64,64,224,0,		//l
  5,6,6,6,1,0,		136,216,168,136,136,0,		//m
  5,6,6,6,1,0,		176,200,136,136,136,0,		//n
  5,6,6,6,1,0,		112,136,136,136,112,0,		//o

  5,6,6,6,1,0,		240,136,240,128,128,0,		//p
  5,6,6,6,1,0,		112,136,120,8,8,0,		//q
  5,6,6,6,1,0,		184,192,128,128,128,0,		//r
  5,6,6,6,1,0,		120,128,112,8,240,0,		//s
  
  5,6,6,6,1,0,		64,224,64,64,96,0,		//t
  5,6,6,6,1,0,		136,136,136,136,112,0,		//u
  5,6,6,6,1,0,		136,136,80,80,32,0,		//v
  5,6,6,6,1,0,		136,136,168,168,80,0,		//w
  
  5,6,6,6,1,0,		136,80,32,80,136,0,		//x
  5,6,6,6,1,0,		136,136,120,8,112,0,		//y
  5,6,6,6,1,0,		248,16,32,64,248,0,		//z
  3,8,8,4,1,0,		32,64,64,128,64,64,32,0,	//{
  
  1,8,8,2,1,0,		128,128,128,128,128,128,128,0,	//|
  3,8,8,4,1,0,		128,64,64,32,64,64,128,0,	//}
  7,3,3,8,1,8, 		98,146,140,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128,
			0,115,209,202,16,75,209,202,16,115,223,128,0,0,1,128,0,
			0,1,128,0,85,85,






//р 0xa0
  5,6,6,6,1,0,		240,136,240,128,128,0,		//р
  5,6,6,6,1,0,		112,136,128,136,112,0,		//с
  5,6,6,6,1,0,		248,32,32,32,32,0,			//т
  5,6,6,6,1,0,		136,136,120,8,112,0,			//у
  
  5,6,6,6,1,0,		112,168,168,112,32,0,		//ф
  5,6,6,6,1,0,		136,80,32,80,136,0,			//х
  5,6,6,6,1,0,		144,144,144,144,248,8,		//ц
  5,6,6,6,1,0,		136,136,120,8,8,0,			//ч
  
  5,6,6,6,1,0,		168,168,168,168,248,0,		//ш
  5,6,6,6,1,0,		168,168,168,168,248,8,		//щ
  5,6,6,6,1,0,		192,64,112,72,112,0,			//ъ
  5,6,6,6,1,0,		136,136,232,152,232,0,		//ы
  
  5,6,6,6,1,0,		128,128,240,136,240,0,		//ь
  5,6,6,6,1,0,		240,8,120,8,240,0,			//э
  5,6,6,6,1,0,		144,168,232,168,144,0,		//ю
  5,6,6,6,1,0,		120,136,120,72,136,0,		//я

//я 0xaf
//А
  5,8,8,6,1,0,		112,136,136,136,248,136,136,0,	//А
  5,8,8,6,1,0,		248,128,128,240,136,136,240,0,	//Б
  5,8,8,6,1,0,		240,136,136,240,136,136,240,0,	//В
  5,8,8,6,1,0,		248,136,128,128,128,128,128,0,	//Г
  
  6,8,8,7,1,0,		56,40,40,72,72,72,252,132,		//Д
  5,8,8,6,1,0,		248,128,128,240,128,128,248,0,	//Е
  5,8,8,6,1,0,		168,168,112,32,112,168,168,0,	//Ж
  5,8,8,6,1,0,		112,136,8,112,8,136,112,0,		//З 

  5,8,8,6,1,0,		136,136,136,152,168,200,136,0,	//И
  5,8,8,6,1,0,		136,136,136,152,168,200,136,0,	//И
  5,8,8,6,1,0,		136,144,160,192,160,144,136,0,	//К
  5,8,8,6,1,0,		120,40,40,40,40,168,72,0,		//Л
 
  5,8,8,6,1,0,		136,216,168,168,136,136,136,0,	//М
  5,8,8,6,1,0,		136,136,136,248,136,136,136,0,	//Н
  5,8,8,6,1,0,		112,136,136,136,136,136,112,0,	//О
  5,8,8,6,1,0,		248,136,136,136,136,136,136,0,	//П
 
  5,8,8,6,1,0,		240,136,136,240,128,128,128,0,	//Р
  5,8,8,6,1,0,		112,136,128,128,128,136,112,0,	//С
  5,8,8,6,1,0,		248,32,32,32,32,32,32,0,		//Т
  5,8,8,6,1,0,		136,136,136,120,8,136,112,0,	//У
  
  5,8,8,6,1,0,		32,112,168,168,112,32,32,0,	//Ф
  5,8,8,6,1,0,		136,136,80,32,80,136,136,0,	//Х
  5,8,8,7,1,0,		136,136,136,136,136,136,252,4,	//Ц
  5,8,8,6,1,0,		136,136,136,120,8,8,8,0,		//Ч
 
  5,8,8,6,1,0,		168,168,168,168,168,168,248,0,	//Ш
  5,8,8,7,1,0,		168,168,168,168,168,168,252,4,	//Щ
  5,8,8,6,1,0,		192,64,64,112,72,72,112,0,		//Ъ
  6,8,8,8,1,0,		130,130,130,242,138,138,242,0,	//Ы
  
  5,8,8,6,1,0,		128,128,128,240,136,136,240,0,	//Ь
  5,8,8,6,1,0,		112,136,8,56,8,136,112,0,		//Э
  6,8,8,7,1,0,		152,164,164,228,164,164,152,0,	//Ю
  5,8,8,6,1,0,		120,136,136,120,40,72,136,0,	//Я
 
  5,6,6,6,1,0,		112,8,120,136,112,0,			//а
  5,6,6,6,1,0,		120,128,240,136,112,0,		//б
  5,6,6,6,1,0,		240,136,240,136,240,0,		//в
  5,6,6,6,1,0,		248,136,128,128,128,0,		//г
 
  5,6,6,6,1,0,		120,40,72,136,248,136,		//д
  5,6,6,6,1,0,		112,136,248,128,112,0,		//е
  5,6,6,6,1,0,		168,168,112,168,168,0,		//ж
  5,6,6,6,1,0,		112,136,48,136,112,0,		//з
 
  5,6,6,6,1,0,		136,152,168,200,136,0,		//и
  5,6,6,6,1,0,		136,152,168,200,136,0,		//и
  5,6,6,6,1,0,		144,160,192,160,144,0,		//к
  5,6,6,6,1,0,		120,40,40,168,72,0,			 //л
 
  5,6,6,6,1,0,		136,216,168,136,136,0,		//м
  5,6,6,6,1,0,		136,136,248,136,136,0,		//н
  5,6,6,6,1,0,		112,136,136,136,112,0,		//о
  5,6,6,6,1,0,		248,136,136,136,136,0};		//п*/

 

Maxim Z.
Offline
Зарегистрирован: 12.01.2016

Если кому надо тут русские шрифты: http://arduino.ru/forum/programmirovanie/russkie-shrifty-dlya-biblioteki-u8glib

ZMan
ZMan аватар
Offline
Зарегистрирован: 14.08.2015

Доброго времени суток.

Я пытаюсь руссифицировать одну прошивку. Она использует собственные шрифты и простым подключением русских шрифтов дело не ограничивается. Каким образом можно совместить исходный шрифт (значки из него) с русским шрифтом? 

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

ZMan пишет:

Доброго времени суток.

Я пытаюсь руссифицировать одну прошивку. Она использует собственные шрифты и простым подключением русских шрифтов дело не ограничивается. Каким образом можно совместить исходный шрифт (значки из него) с русским шрифтом? 

поищите поиском тему о русификации дисплея OLED 0.96, автор, по-моему andriano. Там подробно рассматриваются проблемы подмены шрифтов и добавления и замены символов, юникода и тд. Не уверен, правда. что там будет для вас готовое решение, так как автор многократно высказывался (в чем я его поддерживаю) - что в отсутсвии кириллицы никакой беды не видит. Каждый программист должен знать английский...

ZMan
ZMan аватар
Offline
Зарегистрирован: 14.08.2015

b707 пишет:

поищите поиском тему о русификации дисплея OLED 0.96, автор, по-моему andriano. Там подробно рассматриваются проблемы подмены шрифтов и добавления и замены символов, юникода и тд. Не уверен, правда. что там будет для вас готовое решение, так как автор многократно высказывался (в чем я его поддерживаю) - что в отсутсвии кириллицы никакой беды не видит. Каждый программист должен знать английский...

Вопрос не в программисте а в конечном пользователе. 

А так, вопрос решен, нашел исходные BDF'ки которые использовались в том проекте.

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

b707 пишет:

поищите поиском тему о русификации дисплея OLED 0.96, автор, по-моему andriano.

Если рвсь о той теме, где я привожу библиотеку, то она называется "Кириллица на дисплее или что я нелаю не так". Но многократно приходилось отписываться и в других темах посвященных дисплеям вообще и кириллеце в частности.

Цитата:

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

Скорее, особенностям кодировки UTF-8 родной для Aeduino IDE.

Цитата:

Не уверен, правда. что там будет для вас готовое решение, так как автор многократно высказывался (в чем я его поддерживаю) - что в отсутсвии кириллицы никакой беды не видит. Каждый программист должен знать английский...

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

Но с другой стороны ZMan прав: ориентироваться нужно на пользователя.

by_ruslan
Offline
Зарегистрирован: 15.08.2015

Здравствуйте!

Подскажите пожалуйста как "прилепить" данный шрифт для дальнейшего использования?