iMON VFD по-русски
Oct. 18th, 2008 02:41 pmНаучил 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
Ещё там есть туча диакритики, греческий алфавит, нотки-скобочки, © и ®
Оказалось, все необходимые символы (увы, только верхний регистр) в знакогенераторе есть. Псеводкириллица образуется сочетанием чисто кириллических знаков (БГДЖЗИЙЛПУФЦЧШЩЪЫЭЮЯ) и аналогичных по начертанию латинских (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
Ещё там есть туча диакритики, греческий алфавит, нотки-скобочки, © и ®
no subject
Date: 2011-04-04 07:03 pm (UTC)Сама кодировка приведена в этом посте.
Далее был написан патчик к LCDproc, позволяющий переводить русский кусок UТF-8 в это безобразие. По-хорошему, нужно было ещё заставить оболочку mythbuntu писать русский текст на LCD в UTF-8, но до этого руки не дошли.
Патч берётся здесь: https://sourceforge.net/projects/imon-vfd-cyr/files/
no subject
Date: 2011-04-06 08:37 pm (UTC)no subject
Date: 2011-04-06 08:52 pm (UTC)Попробуйте проверить корректность кодовой таблицы следующим образом:
#!/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)no subject
Date: 2011-04-06 08:55 pm (UTC)#!/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)no subject
Date: 2011-04-06 08:57 pm (UTC)no subject
Date: 2011-04-07 12:53 pm (UTC)Вот что выдает консоль на скрипты:
------------
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.
Может в этом причина?
no subject
Date: 2011-04-07 12:56 pm (UTC)----------
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