dzz: Dizzy の冬 (Default)
[personal profile] dzz
Научил iMON-овский VFD кириллице!



Оказалось, все необходимые символы (увы, только верхний регистр) в знакогенераторе есть. Псеводкириллица образуется сочетанием чисто кириллических знаков (БГДЖЗИЙЛПУФЦЧШЩЪЫЭЮЯ) и аналогичных по начертанию латинских (ABEKMHOHCTXb). Осталось теперь научить LCDProc и/или прикладной софт трансляции на лету.

Если кому интересно, вот таблица десятичных кодов кириллических символов дисплея iMON VFD:

Б - 128
Г - 146
Д - 129
Ё - 203
Ж - 130
З - 131
И - 132
Й - 133
Л - 134
П - 135
У - 136
Ф - 216
Ц - 137
Ч - 138
Ш - 139
Щ - 140
Ъ - 141
Ы - 142
Э - 143
Ю - 172
Я - 173

Ещё там есть туча диакритики, греческий алфавит, нотки-скобочки, © и ®

Date: 2011-04-04 05:49 pm (UTC)
From: [identity profile] al ex (from livejournal.com)
Есть soundgraph imon pad ip\vfd; Mythbuntu 10.04 (mythtv 0.23); XBMC 10; LCDproc 0.5.4.
Во всех программах дисплей работает, НО везде вместо русских букв - ?????, что не радует.
В инете крайне мало информации на эту тему. Нашел решение только под VDR, но мене это не подходит. У Вас тоже непонятно где и что ковырять. Не могли бы поподробней?

Date: 2011-04-04 07:03 pm (UTC)
From: [identity profile] dzz.livejournal.com
Да не вопрос :)

Сама кодировка приведена в этом посте.
Далее был написан патчик к LCDproc, позволяющий переводить русский кусок UТF-8 в это безобразие. По-хорошему, нужно было ещё заставить оболочку mythbuntu писать русский текст на LCD в UTF-8, но до этого руки не дошли.

Патч берётся здесь: https://sourceforge.net/projects/imon-vfd-cyr/files/

Date: 2011-04-06 08:37 pm (UTC)
From: [identity profile] al ex (from livejournal.com)
Что-то у меня ничего не выходит. И с Вашим патчем собирал и 0.5.4 пробовал изменять - сплошные ??? вместо русского. Я на страничке в sourceforge.net подробнее написал, что делал.

Date: 2011-04-06 08:52 pm (UTC)
From: [identity profile] dzz.livejournal.com
Странно. Должно работать с любым юникодным выводом. В LCDproc кириллица точно unicod-ом уходит?

Попробуйте проверить корректность кодовой таблицы следующим образом:

#!/usr/bin/python
# -*- coding: utf-8 -*-

from freevo import pylcd

myline=u'<   И каждый вечер, в час назначенный (иль это только снится мне?) девичий стан, шелками схваченный, в квадратном движется окне  > <  спокойно ночи, всё будет хорошо >'

def lcd_write(strix):
    x=pylcd.client()
    x.connect()
    x.screen_add('s1')
    print x.widget_add('s1','w1','scroller')
    
    x.widget_set('s1','w1', u'1 2 16 2 m 2 "%s"' % strix)
    raw_input()
    
lcd_write(myline)

Date: 2011-04-06 08:55 pm (UTC)
From: [identity profile] dzz.livejournal.com
Заодно можно проверить корректность используемой таблицы знакогенератора:

#!/usr/bin/python
# -*- coding: utf-8 -*-

from freevo import pylcd

myline=u'<   И каждый вечер, в час назначенный (иль это только снится мне?) девичий стан, шелками схваченный, в квадратном движется окне  > <  спокойно ночи, всё будет хорошо >'

maptab={
u'А':'A',
u'Б':chr(128),
u'В':'B',
u'Г':chr(146),
u'Д':chr(129),
u'Е':'E',
u'Ё':chr(203),
u'Ж':chr(130),
u'З':chr(131),
u'И':chr(132),
u'Й':chr(133),
u'К':'K',
u'Л':chr(134),
u'М':'M',
u'Н':'H',
u'О':'O',
u'П':chr(135),
u'Р':'P',
u'С':'C',
u'Т':'T',
u'У':chr(136),
u'Ф':chr(216),
u'Х':'X',
u'Ц':chr(137),
u'Ч':chr(138),
u'Ш':chr(139),
u'Щ':chr(140),
u'Ь':'b',
u'Ы':chr(142),
u'Ъ':chr(141),
u'Э':chr(143),
u'Ю':chr(172),
u'Я':chr(173),
u'а':'A',
u'б':chr(128),
u'в':'B',
u'г':chr(146),
u'д':chr(129),
u'е':'E',
u'ё':chr(203),
u'ж':chr(130),
u'з':chr(131),
u'и':chr(132),
u'й':chr(133),
u'к':'K',
u'л':chr(134),
u'м':'M',
u'н':'H',
u'о':'O',
u'п':chr(135),
u'р':'P',
u'с':'C',
u'т':'T',
u'у':chr(136),
u'ф':chr(216),
u'х':'X',
u'ц':chr(137),
u'ч':chr(138),
u'ш':chr(139),
u'щ':chr(140),
u'ь':'b',
u'ы':chr(142),
u'ъ':chr(141),
u'э':chr(143),
u'ю':chr(172),
u'я':chr(173)}

def lcd_write(strix):
    x=pylcd.client()
    x.connect()
    x.screen_add('s1')
    print x.widget_add('s1','w1','scroller')
    
    striz=""
    for i in strix:
        try: striz += maptab[i]
        except: striz += str(i)
        
    x.widget_set('s1','w1', '1 1 "%s"' % str(striz))
    raw_input()
    
lcd_write(myline)

Date: 2011-04-06 08:57 pm (UTC)
From: [identity profile] dzz.livejournal.com
Кроме питона для прогона теста нужен модуль freevo

Date: 2011-04-07 12:53 pm (UTC)
From: [identity profile] al ex (from livejournal.com)
Python установлен. Freevo установил полностью, правда не настраивал толком (квадраты вместо букв).
Вот что выдает консоль на скрипты:
------------
htpc@htpc-desktop1:~/tmp/0$ python 1.py
success

self.conn.write(widget_set s1 w1 1 2 16 2 m 2 "< И каждый вечер, в час назначенный (иль это только снится мне?) девичий стан, шелками схваченный, в квадратном движется окне > < спокойно ночи, всё будет хорошо >"+'
') failed
------------------
И висит пока enter не нажмешь. На дисплее в промежутке между ..LCDd server... и датой временно появляется окошко с мигающим сердечком.

Второй скрипт, походу, вообще не отрабатывает.
--------------------
htpc@htpc-desktop1:~/tmp/0$ python 2.py
success
--------------------
Остальное также как и на 1 скрипте.

Я, кстати, писал на sourceforge.net, что у меня при выгруженном LCDd на команды типа (echo $'/128/..' >/dev/lcd0) выводятся символы не соответствующие Вашей таблице из заметки. Например Б у вас 128, у меня 200.
Может в этом причина?

Date: 2011-04-07 12:56 pm (UTC)
From: [identity profile] al ex (from livejournal.com)
И еще. Если скриптам Брейк делать - вот что пишет:
----------
htpc@htpc-desktop1:~/tmp/0$ python 1.py
success

self.conn.write(widget_set s1 w1 1 2 16 2 m 2 "< И каждый вечер, в час назначенный (иль это только снится мне?) девичий стан, шелками схваченный, в квадратном движется окне > < спокойно ночи, всё будет хорошо >"+'
') failed
^CTraceback (most recent call last):
File "1.py", line 17, in
lcd_write(myline)
File "1.py", line 15, in lcd_write
raw_input()
KeyboardInterrupt
-----------------------
htpc@htpc-desktop1:~/tmp/0$ python 2.py
success

^CTraceback (most recent call last):
File "2.py", line 90, in
lcd_write(myline)
File "2.py", line 88, in lcd_write
raw_input()
KeyboardInterrupt

Profile

dzz: Dizzy の冬 (Default)
dzz

August 2018

S M T W T F S
   1234
567891011
1213 1415161718
1920 2122232425
262728293031 

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 28th, 2025 08:21 pm
Powered by Dreamwidth Studios