Пользовательский интерфейс приставки спутникового телевидения
Заказчик
Компания-разработчик устройств Set-Top Box (STB) - приставок для приема спутникового, кабельного, наземного или Internet цифрового видео-сигнала и его последующего вывода на телевизор. Высокая конкуренция на рынке STB требует от производителя минимального времени выхода на рынок с предельно дешевым устройством.
Задача
STB имеет развитый пользовательский интерфейс, позволяющий настроить спутниковую антенну, провести сканирование транслируемых потоков, отредактировать список каналов, просмотреть EPG, задать действия по таймеру и многое другое.
Задача заключалась в создании программного средства, позволяющего Заказчику с минимальными усилиями изменять внешний вид пользовательского интерфейса для быстрого создания новых моделей на базе существующей универсальной платформы. Такой подход позволяет предельно снизить стоимость разработки каждой отдельной модели STB.
Платформа
STB для приема спутниковых ТВ каналов (DVB-S) построено на чипсете ALI M3329 c MIPS ядром. В устройстве используется операционная система TDS2. Имеющееся ПО не документировано.
Решение
По причине отсутствия проектной документации на ПО, для выработки эффективного решения и его реализации потребовалось произвести анализ (reverse engineering) исходного кода и логики построения UI.
Концепция
Как правило, в случаях, когда необходимо часто изменять внешний вид UI, его не кодируют жестко, а создают некий модуль (engine), способный генерировать UI в процессе выполнения (run time) в соответствии с конфигурационным файлом. Однако в данном проекте такой подход невозможен в связи с ограниченной производительностью процессора (CPU).
В связи с этим, было принято решение о внесении всех изменений на уровне исходного кода. Для этого все параметры, влияющие на внешний вид (координаты элементов управления на экране и их стили), были вынесены в отдельные заголовочные файлы в виде макроопределений.
Программное обеспечение
В качестве среды разработки использовался Cygwin и компилятор GCC 3.0.4 (mips-t2-elf).
В ходе выполнения проекта был разработан комплекс ПО, полностью решающий поставленную задачу. Функционально, решение выглядит следующим образом:
- ПО, функционирующее под ОС MS Windows, позволяет Заказчику в удобном виде изменить параметры, влияющие на внешний вид и глобальные настройки;
- все параметры сохраняются в виде файла в формате XML;
- корректность заданных значений параметров проверяется XSL валидатором;
- XSL трансформатор, вызов которого встроен в makefile проекта, генерирует из XML файла несколько заголовочных файлов (*.h);
- заголовочные файлы используются для сборки бинарных модулей STB с измененным пользовательским интерфейсом.
- Весь процесс проверки, генерации и сборки автоматизирован.
Преимущества
Задача решена оптимальным образом, проект выполнен в сжатые сроки и с минимальными затратами, как и требовалось Заказчику. Приобретенные знания предметной области позволили продолжить взаимовыгодное сотрудничество с Заказчиком.
| Технологии |
Cygwin, XML |
| Языки программирования |
C/C++, XSL |
| Средства разработки |
GCC |
| Средства управления проектом |
Test Track Pro, SVN, MS Project, MS SharePoint |
| Трудозатраты |
80 человеко-дней |
| Срок выполнения проекта |
3 месяца |
|