User interface customisation of a DVB TV receiver
Customer
Developer of set-top boxes (STB), devices that receive a satellite, cable, ground, or Internet digital video signal and subsequently direct them to the TV screen. A fierce competition on the STB marker demands the manufacturer to deliver a product with minimal time-to-market and extremely cheap hardware.
Objective
It is characteristic of an STB to have an advanced user interface that allows setting up a satellite antenna, scanning transmitted streams, editing channel lists, viewing EPG, schedule tasks, etc.
The goal was to create a software framework that would allow the customer to change the user interface with minimal efforts in order to quickly create new models on the basis of the existing universal platform. Such approach significantly reduces the development costs of each individual STB model.
Platform
An STB that receives satellite TV channels (DVB-S) utilizes the MIPS-based ALI M3329 chipset. The system runs under TDS2.
Solution
Due to absence of project software documentation, we had to analyze (using the reverse engineering principle) the source code and UI logic to elaborate an efficient solution and its implementation.
Concept
Normally, when it is often required to change the UI appearance, it is not hardcoded. Instead, a module (engine) is created that generates UI at run time according to the configuration file. However, such approach was not possible for the project due to limited CPU performance.
Therefore, it was decided to make all changes at the source code level. For this purpose, all parameters affecting the appearance (control elements coordinates on the screen and their styles) were moved into separate header files as macro definitions.
Software
Cygwin and GCC 3.0.4 (mips-t2-elf) compiler were used as development environment.
The resulting software package completely satisfied primary project objectives. The functionality of the solution is the following:
- Software running under MS Windows that allows easily changing parameters affecting GUI appearance and global settings;
- All parameters are saved into an XML file;
- Parameter values are checked by the XSL validator;
- XSL transformer whose activation is integrated into the project makefile generates several header files (*.h) from the XML file;
- Header files are used to compile and build STB binary modules with modified user interface;
- The entire check, generation, and build process is automated.
Benefits
The project was implemented within shortest terms and with minimal efforts, as required by the customer. Knowledge of the specialized area that was obtained during the project allowed maintaining mutually beneficial cooperation with the customer.
| Technologies |
Cygwin, XML |
| Programming languages |
C/C++, XSL |
| Design tools |
GCC |
| Project management tools |
Test Track Pro, SVN, MS Project, MS SharePoint |
| Efforts |
80 man-days |
| Duration |
3 months |
|