Интерфейс ТВ-приставки на чипсете ALI

Заказчик

Компания-разработчик цифровых ТВ-приставок (STB) для приема спутникового, кабельного, наземного или интернет-вещания. Высокая конкуренция на рынке STB требовала от производителя сократить время выхода на рынок с предельно дешевым устройством.

Задача

Клиент предоставил нам готовую ТВ-приставку с развитым пользовательским интерфейсом, позволяющим настроить спутниковую антенну, провести сканирование видеопотоков, отредактировать список телеканалов, просмотреть EPG, задать действия по таймеру и многое другое.



 

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

Платформа

STB для приема спутниковых телеканалов (DVB-S) построена на чипсете ALI M3329 c MIPS-ядром. В устройстве используется операционная система TDS2. Программное обеспечение приставки не задокументировано.

Решение

Из-за отсутствия проектной документации на ПО для выработки эффективного решения потребовался анализ исходного кода (reverse engineering) и логики построения пользовательского интерфейса (UI).

1. Концепция

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

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

2. Программное обеспечение

В качестве среды разработки использовался Cygwin и компилятор GCC 3.0.4 (mips-t2-elf).

В ходе выполнения проекта было разработано программное обеспечение, которое решает поставленную задачу. Функционально решение выглядит так:

  1. ПО под ОС MS Windows позволяет заказчику изменять параметры, влияющие на внешний вид и глобальные настройки
  2. Все параметры сохраняются в виде XML-файла
  3. Корректность заданных значений проверяется XSL-валидатором
  4. SL-трансформатор, вызов которого встроен в makefile проекта, генерирует из XML несколько заголовочных файлов (*.h)
  5. Заголовочные файлы используются для сборки бинарных модулей STB с измененным пользовательским интерфейсом
  6. Весь процесс проверки, генерации и сборки автоматизирован



 


 

Преимущества

Задача решена оптимальным образом, проект выполнен в сжатые сроки и с минимальными затратами.