Домашняя страничка Стефурак П.Б. Yandex-пробки и другая информация на телевизоре LG lg32lh2000.
 
 
  
  
 
Промзона \ Yandex-пробки и другая информация на телевизоре LG lg32lh2000.
Модификация ПО телевизора для показа пользовательской информации.
 
Замечателен и могуч сервис Yandex-пробки.
Хорошо с помощью него смотреть, где сейчас дорожные работы и/или аварии
(пробки везде, так что на них можно и не смотреть).
Одна незадача, нужен компьютер или смартфон, а так же подключение к WEB.
Это все конечно есть, но было бы здорово видеть актуальную информацию на
экране телевизора. Нажал перед выходом из дома 2 кнопки - и все на экране!
К тому же у моего ТВ экран имеет разрешение 1366 на 768, а это пока ноутбуки
и смартфоны не обеспечивают (при размере экрана в 32").
   
Чтож, сделаем это! ;)
 
Подготовка телевизора
 
ТВ был модернизирован год назад подключением к нему USB-хаба, маленькой флешки,
USB сетевой карты и небольшим изменением ПО по материалам замечательных ребят из
OpenLGTV
и конференции
IXBT
(респек им и уважуха, +100500).
 
ТВ теперь умеет воспроизводить видео с NAS, имеет WEB сервер для настройки,
FTP, Telnet и т.д. и т.п. сервера.
Более подробно см. IXBT.
 
Yandex-пробки
 
Сначала, все выглядело очень радужно - у "пробок" есть
Static-API.
Здорово, конечно, но "максимально допустимый размер изображения карты составляет 650x450 пикселов". Но у меня-то 1366 на 768!
Не подойдет.
 
Альтернативный путь - самостоятельно формировать нужное изображение
(заходя немного дальше, скажу, что созданное решение универсально и подходит
не только для этой задачи, а может быть использовано и для других).
 
Разобравшись с JavaScript API 2.x,
пишем короткую HTML-обертку для нашей задачи (ymaptrafic.html
в архиве)
- страница представляет собой карту Тюмени на все окно браузера с включённым отображением пробок и дорожных событий.
Координаты центра карты и масштаб задаются так: center: [57.1445,65.57], zoom: 15.
 
Для получения WEB-страницы, в виде изображения, была написана специальная программа
(informer.exe в архиве).
Она делает очень простую вещь: смотрит свой файл настроек
(informer.ini в архиве)
и для каждой секции:
Создает экземпляр браузера с размерами browser_Width на browser_Height пикселей - это нужно для
правильного отображения страниц;
Если в template указан URL начинающийся с http://, то загружает
в браузер соответствующую страницу по URL. Если указан локальный файл - загружает его;
Дожидается окончания загрузки страницы браузером и отработки им всех скриптов страницы - browser_wait;
Копирует страницу в виде рисунка с координатами и размерами picture_left, picture_Top, picture_Width, picture_Height
- то есть вырезает из картинки с размерами browser_Width на browser_Height , что позволяет получить
итоговое изображение нужного размера;
Если не пуст параметр datetime_stamp_format - используя его как шаблон,
в правом верхнем углу картинки выводит соответствующий текст - в моем случае -
текущую дату и время;
Сохраняет полученную картинку в локальный файл с именем result_filename
- поддерживаемые форматы Jpeg и Png определяются по имени файла.
По завершению работы программы мы имеем в текущем каталоге картинки в
формате png с изображением Yandex-пробок и, скажем, прогноза погоды:
   
Ок, откладываем это в сторону и смотрим тяжелым внимательным взглядом на ТВ.
 
Доработка телевизора
 
Да, можно на ТВ эти картинки смотреть с сервера по сети, штатными (теперь
уже) для него средствами - Menu - USB - Фото - Диск1 - Подключенный сетевой ресурс - выбор файла - Показать.
Но это не 2 касания кнопок пульта ДУ, а все 8 в лучшем случае! Скучно.
 
Нескучный вариант родился, как говорится, внезапно.
 
В данном ТВ есть встроенная система справки (Menu - кнопка info на пульте):
   
   
А зачем она, кроме одного раза посмотреть? В общем, заменим, на более полезную информацию.
 
ПО телевизора работает по управлением богомерзкой альтернативной ОС Linux.
Копаясь по FTP и Telnet во внутреннем мире этого аппарата, я наткнулся на каталог
/mnt/lg/res/emanual/ в недрах которого, как оказалось, как раз и хранится
встроенная система справки!
   
И тут первая проблема: по FTP файлы на изменение недоступны. Ок, цепляемся
telnet'ом, смотрим откуда ноги растут у этой истории, команда mount намекает:
/dev/mtdblock5 /mnt/lg/res/emanual squashfs ro. Ага.
 
Создаем на флешке, подключенной к ТВ, папку emanual с частью иерархии
оригинальной - в ней будет жить наша новая "справочная система ТВ"
(emanual в архиве).
Разобраться с форматом тамошних XML, оставляю Вам, уважаемый читатель, на закуску :).
 
Через Web интерфейс ТВ в Autostart script прописываем:
#Отключаем монтирование оригинальной справки
umount /mnt/lg/res/emanual
#На ее место монтируем свою, альтернативную
mount /mnt/usb1/Drive1/emanual /mnt/lg/res/emanual -o rw  
Действуя таким образом, получаем доступ к /mnt/lg/res/emanual через
/mnt/usb1/Drive1/emanual, т.е. через FTP
(ftp://IP_LG_TV_в_сети/mnt/usb1/Drive1/emanual/)!
 
Возвращаемся к компьютеру
 
А дальше - все просто.
 
В sheduler ОС (старт, скажем, каждые 15 мин.) прописываем старт bat файла
(start_siqense.bat в архиве),
в котором, по сути, выполняются 2 действия:
скачиваются нужные страницы и формируются png файлы;
полученные файлы, по FTP, закидываются в emanual/eu/image/, туда,
где его ждет ТВ.
 
Итого:
   
Можно еще и XMLи менять динамически - хороший, в общем, аппарат lg32lh2000.