HomeemlixLösungenBoard SupportApplikationenSeminareJobsNewsKontakt
Sie sind hier: Lösungen | Leistungen | Kompetenzen 

Leistungen
Kompetenzen
Prozessoren
Beratung
µClinux
Support
e2 factory
Kundenvorteile
Kundenstories

GUI-Entwicklung für Embedded Systeme

 

In einem quelloffenen Betriebssystem existieren häufig zu einem Problem mehrere Lösungen, die jeweils einer Spezialanforderung angepasst sind. So existieren auch im Bereich „Grafische Benutzeroberflächen“ mehrere benutzbare Frameworks, die sich in den Bereichen Ressourcenbedarf, Funktionsumfang, Lizenzmodell, Nutzung von Hardware-Beschleunigung, Portabilität sowie Dokumentation teils stark voneinander abgrenzen. Zu erwähnen wären hier beispielsweise nano-X (microwindows), Qt for Embedded Systems, GTK oder auch X.Org (jeweils im Folgenden kurz beschrieben).


Im Rahmen der Programmierung von grafischen Benutzeroberflächen hat emlix weitreichende Erfahrungen aus verschiedenen Kundenprojekten. Dies betrifft nicht nur die Implementierung von grafischen Benutzeroberflächen nach ergonomischen und Designvorgaben des Kunden, sondern ebenfalls Beratung bei der Auswahl eines GUI-Toolkits und dem Gestalten der Oberflächen. Gerne entwickeln und implementieren wir mit Ihnen Benutzeroberflächen für den Einsatz in Ihrem Embedded-System. Dabei können Sie von unseren Erfahrungen im Bereich Benutzerfreundlichkeit, Effizienz und grafisches Design profitieren. Auch bei der Auswahl eines Toolkits, das auf die Ressourcen Ihres Systems zugeschnitten ist, beraten wie Sie gern.


Nano-X

Das nano-X-Framework ist speziell für den Einsatz in Embedded-Systemen entwickelt worden und profitiert von seinem extrem niedrigen Speicherbedarf. Es kann als einziges GUI-Toolkit für den Einsatz in MMU-losen Systemen empfohlen werden. Die Features beinhalten:


Framebuffer Support
Support für Tastatur und Mouse/Touchscreen
Support für verschiedene Imageformate (JPEG/PNG)
Support für internationalisierte Textausgabe (UTF-8) mit skalierbaren Schriftarten (TTF)
Server-Client-Architektur mit minimalem Window-Manager
low-level C-API
Beispielprogramme

Qt für Embedded Systeme

Qt for Embedded Systems ist eine Variante des Qt Frameworks, das direkt auf dem Framebuffer operiert und somit ohne X-Server auskommt. Dabei kann trotz allem das komplette Qt-Framework benutzt werden, was beispielsweise XML-Parser, plattformunabhängige Netzwerk- und I/O-Programmierung, HTML-Rendering, Multimedia-Framework Phonon, Datenbankzugriff sowie das komplette Widget-Set von Qt beinhaltet. Die Fähigkeiten von Qt können dabei wie gewohnt durch eigene Erweiterungen ausgebaut werden. Leider empfiehlt sich der Einsatz von Qt durch den großen Funktionsumfang nur bei ausreichender Ausstattung mit persistentem Speicher und RAM. Features sind unter anderem:


Framebuffer Support
Support für Tastatur und Mouse/Touchscreen
Support für Image- und Multimedia-Formate
Support für internationalisierte Textausgabe mit skalierbaren Schriftarten (TTF)
Stand-Alone oder Client-Server-Programme
viele (auch abschaltbare) Zusatzfunktionen
C++-API, sehr gute Dokumentation, grafischer WYSIWYG GUI-Designer
plattformunabhängige Applikationsentwicklung
Möglichkeit zu Erweiterungen und Anpassungen

GTK+

GTK+ ist ein GUI-Framework, das - ähnlich wie Qt - bereits ein großes Portfolio an fertigen Widgets sowie Support für Internationalisierung enthält. GTK+ läßt sich ebenfalls direkt auf dem Framebuffer betreiben und ist damit unabhängig von einem X-Server. Mit der integrierten Entwicklungsumgebung (IDE) Anjuta und der GUI-Beschreibungssprache GLADE lassen sich GTK+-Anwendungen effizient und leicht anpassbar entwickeln. Durch die Integration eigener Styles oder Themes hat ein Entwickler volle Kontrolle über das Aussehen der GUI. Ausreichend persistenter Speicher und RAM sind jedoch auch für den Einsatz von GTK+ essenziell. Features sind unter anderem:


Framebuffer Support
Support für Tastatur und Mouse/Touchscreen
Support für Imageformate
Support für internationalisierte Textausgabe mit skalierbaren Schriftarten (TTF)
viele Zusatzfunktionen
C-API, grafischer WYSIWYG GUI-Designer
Anbindung an verschiedene Programmier- und Scriptsprachen
Möglichkeit zu Erweiterungen und Anpassungen

X.Org

X.Org ist eine moderne Implementierung des X-Window-Systems, das von UNIX-Systemen bekannt ist. Es ist unterteilt in einen Server, der die grafische Darstellung übernimmt und die Eingabegeräte verwaltet, sowie mehrere Bibliotheken, die Verbindung mit dem Server aufnehmen und eine low-level C-API zur GUI-Programmierung zur Verfügung stellen. Darauf aufbauend existieren die verschiedensten GUI-Toolkits, die eine Programmierung von grafischen Oberflächen komfortabel erlauben
Der X-Server kann mit optimierten Treibern Gebrauch von hardwarebeschleunigter Darstellung auf vielen Grafikchips verschiedener Hersteller machen. Die Beschleunigungen werden dann von GUI-Toolkits transparent zur Verfügung gestellt. Alternativ kann der X-Server aber auch ohne Hardware-Beschleunigung in den Framebuffer von Embedded-Systemen zeichnen.
X.Org benötigt die meisten Systemressourcen in den Punkten Speicherverbrauch und Rechenleistung. Es ist eher auf leistungsfähigen x86 oder PowerPC/PowerArchitecture Boards interessant, wenn Hochleistungs-Anzeigesysteme implementiert werden sollen. Zu den Features gehören:


hardwarebeschleunigte 2D/3D-Darstellung
langjährig stabile C-API
verschiedenste GUI-Toolkits
Support von Internationalisierung
Support von skalierbaren Schriften (TTF, PS, ...)
verschiedene Server-Erweiterungen