Benutzerschnittstellen-Software Einmal entwickelt – dreifach genutzt

Benutzerschnittstellen-Software
Einmal entwickelt – dreifach genutzt

Die Ansprüche der Anwender an die Benutzerschnittstellen typischer Embedded-System-Anwendungen steigen beständig. Eine einfache Frontplattenschnittstelle mit LCD, Tasten oder Touchscreen reicht längst nicht mehr aus. Auch Fernzugriffsschnittstellen für PC und Smartphone gehören inzwischen zum Standard-Funktionsumfang. Für Entwickler ist diese Vielfalt eine echte Herausforderung.
Für den Benutzerschnittstellenentwickler typischer Embedded-System-Anwendungen ergeben sich – neben dem beständig steigenden Funktionsumfang und die dadurch wachsende Komplexität – inzwischen noch weitere Herausforderungen: Die Benutzerschnittstellen-Software moderner Embedded Systeme muss gleichzeitig mehrere völlig verschiedene grafische Benutzeroberflächen bedienen. Die­se werden gegenwärtig mit Hilfe unterschiedlicher Technologien implementiert. Insgesamt lassen sich drei eigenständige HMI-Schnittstellen (User Interfaces = UIs) identifizieren.

Lokale Benutzerschnittstelle (Frontplatten-UI)

Die lokale Benutzerschnittstelle (Frontplatten-UI) besteht in der Regel aus einem grafikfähigen LCD mit Touchscreen und/oder einigen Frontplattentasten (z.B. vier Navigations- und eine OK-Taste). Praktisch alle Neuentwicklungen basieren inzwischen auf Farb-LCDs mit Auflösungen zwischen QVGA (320×240 Dots) und WXGA mit beispielsweise 1280×768 Bildschirmpunkten. In Einzelfällen werden auch noch höhere Auflösungen genutzt. Als Touchscreen-Technologie kommen zurzeit überwiegend analoge resistive und einfache kapazitive Verfahren zum Einsatz. Zukünftig ist ein verstärkter Einsatz der Multi-Touch-Technologie (also Touchscreens, die Mehrfachberührungen erkennen können) mit entsprechender Gestenerkennung zu erwarten.

LAN-Fernsteuerschnittstelle

Die LAN-Fernsteuerschnittstelle ermöglicht den Zugriff per Webbrowser auf einen eingebetteten Webserver. Ein solcher HTTP-Server (Wal) bietet über statische und dynamische Webseiten eine leistungsfähige Konfigurations- und Visualisierungsschnittstelle mit sehr hohem Bedienkomfort. Derartige Webschnittstellen sind inzwischen in zahlreichen Embedded Systemen mit einer IP-fähigen LAN-Schnittstelle zu finden. Sie sind in der Regel für die Benutzung durch Schreibtisch-PC- bzw. Notebook-Webbrowser – also für recht hohe Bildschirmauflösungen – und relativ schnelle LAN-Verbindungen vorbereitet. Teilweise werden sogar Video- bzw. animierte Bildsequenzen eingebunden, um z.B. eine hochwertige Bedienungsanleitung zu realisieren.

Smartphone-Fernsteuerschnittstelle

Die Smartphone-Fernsteuerschnittstelle ist eine recht neue UI-Kategorie. In erster Linie fällt die so genannte iPhone App unter diese UI-Kategorie. Damit ist eine Spezialanwendung für ein Smartphone gemeint, die über LCD und Bedienelemente (beispielsweise den Multi-Touch-fähigen Touchscreen) eines Apple iPhone den Fernzugriff auf ein Embedded System ermöglicht. Die IP-basierte Verbindung zwischen Smartphone und Embedded System erfolgt entweder über einen lokalen WLAN-Access-Point oder per Internet über die GSM/GPRS- bzw. UMTS/HSPA-Smartphone-Mobilfunkschnittstelle.

Entwickeln in drei Welten

Um drei verschiedene Benutzerschnittstellen zu beherrschen, nutzen die meisten Entwicklerteams zurzeit drei völlig unterschiedliche Ansätze. Das Frontplatten-UI einer Embedded-System-Anwendung wird mit Hilfe spezieller Grafikbibliotheken realisiert. Sehr verbreitet ist hier zum Beispiel Qt (früher Trolltech, heute Nokia), eine C++-Klassenbibliothek zur plattformübergreifenden Programmierung graphischer Benutzeroberflächen. Qt steht für Rechnerbaugruppen mit unterschiedlichen Betriebssystemen zur Verfügung. Alternativ kann zum Beispiel auch Java zusammen mit der Grafikbibliothek Swing eingesetzt werden. Sowohl Qt als auch Swing bieten zahlreiche vorgefertigte Bedien- und Visualisierungselemente, mit deren Hilfe die gewünschte Benutzeroberfläche erstellt wird. Dabei entstehen in der Regel sehr umfangreiche C++- oder Java-Quellcodes. Die HTML-Webseiten für den Webserver einer LAN-Fernsteuerschnittstelle entwerfen die meisten UI-Entwickler in der Regel vollständig händisch mit Hilfe eines entsprechenden Editors. Die in der IT-Welt verbreiteten Content-Management-Systeme mit vorgefertigten Templates eigenen sich auf Grund der hohen Anforderungen an die Laufzeitumgebung nicht ohne weiteres, um Webseiten für Embedded-System-Anwendungen zu entwickeln. In die manuell erstellten HTML-Seiten der LAN-Fernsteuerschnittstelle wird in vielen Fällen recht umfangreicher JavaScript-Code eingebettet, um Benutzereingaben zu prüfen oder dynamische Visualisierungselemente in eine HTML-Seite einzufügen. Die Verbindung zwischen einer HMTL-Seite und den Embedded-System-Ressourcen erfolgt in der Regel über CGI-Programmmodule (CGI = Common Gateway Interface, Schnittstelle für den Datenaustausch zwischen Webserver und der sonstigen Software eines Systems, siehe auch [Cgi]). Solche CGI-Skripte können beispielsweise Benutzereingabedaten aus einer HTML-Seite entgegennehmen, um einzelne Parameter eines Embedded System zu konfigurieren. Insgesamt besteht die LAN-Fernsteuerschnittstelle somit aus vielen einzelnen HMTL-Dateien, Bilddateien und CGI-Skripten. Vielfach kommen noch CSS-Formatierungsvorlagen (CSS = Cascading Style Sheets, siehe auch [Css]) hinzu. Smartphone-Anwendungen werden in der Regel mit Hilfe spezieller, herstellerspezifischer Entwicklungsumgebungen entworfen und realisiert. Für eine iPhone-App-Entwicklung wird z.B. der Apple iPhone SDK (Software Development Kit) benötigt. Dieser Baukasten enthält eine GUI-basierte IDE (Integrated Development Environment) und verschiedene weitere Werkzeuge. Als Programmiersprache dient ein Apple-C-Sprachderi­vat, das Objective-C genannt wird. Objective-C ist eine strikte Obermenge der Sprache C. Die Weitergabe fertiger Anwendungen muss über den Apple App Store erfolgen. Dazu wird die fertige App zusammen mit einer Beschreibung, einigen Screenshots und ein paar Icons per Internet zu Apple geschickt. Dort wird die App zunächst einmal geprüft (App Store Submission Process). Gibt es nichts zu beanstanden, erfolgt die Zulassung der App durch Apple. Diese Freigabe kann schon eine Woche oder auch länger dauern. Erst danach steht die App im App Store zur Verfügung. Die Apple-internen Richtlinien, nach denen eine App für die Zulassung im App Store überprüft wird, sind erst seit Spätsommer 2010 allgemein bekannt. Bisher blieb oft unklar, warum eine App abgelehnt wurde.

Webserver und Webbrowser auf dem gleichen System

Der Webserver für die LAN-Fernsteuerschnittstelle ist bereits seit einiger Zeit fester Bestandteil sehr vieler Embedded-System-Anwen­dungen. Über diesen Server kann ohne weiteres auch eine Smart­phone-Fernsteuerschnittstelle realisiert werden. Praktisch jedes moderne Smartphone besitzt einen sehr leistungsfähigen Webbrowser mit CSS- und JavaScript-Unterstützung. Bei einem iPhone wäre dies der Safari-Browser. Mit anderen Worten: die Programmierung einer Smartphone-Benutzerschnittstelle kann ebenfalls mit Hilfe von HTML, CSS und JavaScript erfolgen. Auf die Entwicklung einer speziellen Smartphone-App und die Verbreitung über einem App Store kann dann verzichtet werden. Allerdings lassen sich für eine Smartphone-Webschnittstelle nicht die gleichen Webseiten wie für die LAN-Fernsteuerschnittstelle verwenden. Einem Schreibtisch- bzw. Notebook-PC-Webbrowser stehen deutlich größere Displays mit höheren Bildschirmauflösungen zur Verfügung als einem Smartphone-Webbrowser. Darüber hinaus wird der PC-/Notebook-Browser mit einer Maus bedient, die das sichere Anklicken filigraner Bildschirmelemente gestattet. Bei einem Smartphone dient ein Touchscreen als Mausersatz. Über diesen können größere Steuerelemente sicher bedient werden, kleinere Elemente hingegen nicht. Für den Entwickler bedeutet das, dass sowohl für die LAN- als auch für Smartphone-Fernsteuerschnittstelle separate HMTL- und CSS-Komponenten entwickelt werden müssen. Bei sorgfältiger Planung der Web-basierten Benutzeroberflächen lassen sich allerdings die meisten Unterschiede in Displaygröße und -auflösung über unterschiedliche CSS-Formatvorlagen ausgleichen.

Eingebetteter Webbrowser

Um nun auch die lokale Benutzerschnittstelle eines Embedded Systems mittels Web-basierter Komponenten zu implementieren, muss das Frontplatten-LCD durch einen eingebetteten Webbrowser angesteuert werden. Eine solche Aufgabe lässt sich mit Hilfe des WebKit-Open-Source-Projekts [WeK] realisieren. Durch dieses Entwicklungsprojekt liegt eine Quellcodebibliothek vor, über die ein hypermoderner Browser für Frontplatten-UIs in Embedded-System-Applikationen erstellt werden kann. Selbstverständlich unterstützt ein solcher WebKit-Browser CSS und JavaScript. Aus den Quellcodebausteinen lässt sich ein Touchscreen-bedienbarer Webbrowser im Kiosk-Mode erzeugen, der die gesamte LCD-Fläche als Browserfenster nutzt und über keine Menüleiste oder sonstige Bedienelemente verfügt (Abbildung 2). Für den Benutzer ist nicht erkennbar, dass er Webbrowser-basiertes Frontplatten-UI bedient. Der Bediener kann sich auch nur innerhalb der auf dem lokalen Webserver vorinstallierten HTML-Seiten bewegen und nicht mal eben einen Abstecher ins Internet unternehmen. Durch den gleichzeitigen Einsatz von Webserver und Webbrowser in einem Embedded System lassen sich dann alle drei Benutzerschnittstellen mit einer einzigen Technologie erstellen. Das vereinfacht sowohl die Entwicklung als auch die Pflege der Schnittstellensoftware.

Fazit

Praktisch jede Benutzeroberfläche für Embedded Systeme lässt sich mit HTML, CSS und JavaScript – also auf Grundlage herstellerunabhängiger Standards – realisieren. Spezielle Weberweiterungen wie Adobe Flash oder Microsoft Silverlight sind nicht unbedingt erforderlich. Durch den Verzicht auf diese proprietären RIA-Erweiterungen (RIA = Rich Internet Applikation) bleiben die erstellten Webseiten vollständig plattformunabhängig. Sie lassen sich sowohl durch den eingebetteten Webbrowser eines Frontplatten-UIs als auch durch einen Smartphone-Browser darstellen. Auch stationäre und mobile PCs mit Internet Explorer, Mozilla oder Safari können auf das gleiche Web-basierte UI zugreifen. Mit anderen Worten: Alle Benutzerschnittstellen eines Embedded Systems lassen sich auf Basis etablierter Webstandards realisieren.

Autor: Klaus-Dieter Walter, Business Development Manager, SSV GmbH

SSV Software Systems GmbH
www.ssv-embedded.de

Das könnte Sie auch Interessieren