HMI-Technologie
QNX® Software Systems bietet ein umfassendes Angebot für die effiziente Entwicklung anspruchsvoller und leistungsfähiger grafischer Anwendungen für Embedded-Systeme. Unsere Lösung basiert auf einer universellen Applikationsplattform, welche die modernsten heute verfügbaren Mensch-Maschine-Schnittstellen (engl. "HMI" für "human-machine interface") unterstützt und problemlos neue Technologien integriert.
Der QNX Composition Manager erlaubt die Kombination von Anwendungen verschiedenster Programmiersprachen und Umgebungen. So können C/C++ Programme, HTML-Dokumente oder 3rd-party Umgebungen wie Elektrobit Guide, Crank Storyboard oder QT gemeinsam auf einem Monitor dargestellt werden. Aktuell umfasst die HMI Unterstützung von QNX Software Systems folgende Technologien:
- HMTL5
- Native OpenGL ES Anwendungen
- Native 2D Anwendungen
- Videowiedergabe
- Anwendungen aus App-Stores
- Graphische Komposition unterschiedlicher Anwendungen durch den Composition Manager
Weitere wichtige Features sind:
- Application-Framework mit Lifecycle-Management zur schnellen und einfachen Anwendungserstellung für Embedded-Systeme.
- Vielfältige Schnittstellen für den Zugriff auf Native-Code Bibliotheken und Betriebssystem-Services aus der HMI-Schicht (JavaScript)
- Umfangreiche Optimierung für effiziente Speichernutzung und geringstmöglichen Overhead
Universelle Plattform
Die QNX HMI Technologie unterstützt mit einer Plattform eine Vielzahl unterschiedlicher HMI-Technologien. Entwickler können sich frei für die am besten geeignete Technologie entscheiden und somit maximale Effizienz bei zukünftigen Entwicklungen erreichen.
Zuverlässigkeit
Da die gesamte HMI Technologie auf dem QNX® Neutrino® Echtzeitbetriebssystem aufsetzt, profitiert man automatisch von der erwiesenen Zuverlässigkeit dieses Systems.
Time-to-Market
Die QNX Software Systems HTML5-Unterstützung erlaubt es Entwicklungsteams, die HMI für das endgültige Produkt direkt und ohne Neucodierung aus dem Prototypen der Oberfläche zu erstellen. Man kann die Oberfläche am Desktop testen und dann direkt und ohne weitere Anpassungen auf dem Embedded-System ausführen.
Umfangreiche Ressourcen
Durch die Vielzahl unterschiedlicher HMI-Technologien haben Entwickler den Vorteil, auf HMI- Standardimplementierungen, Codebeispiele, Bibliotheken, Lernmaterialien und eine große Entwickler-Community zurückgreifen zu können.
Native-Code Schnittstellen
Dank der QNX HMI-Technologie können Entwickler aus Programmierumgebungen für die HMI-Entwicklung, wie z.B. ActionScript oder JavaScript, direkt Aufrufe in Native-Code durchführen. Somit kann man auf Betriebssystemdienste zugreifen, gezielte Optimierungen durchführen, Multi-Threading verwenden und Native-Code Bibliotheken einsetzen.
App-Store Technologie
Mit der QNX Software Systems App-Store Technologie kann man Systeme so implementieren, dass die Endkunden ihre Produkte flexibel anpassen und erweitern können.
Cross-Plattform Komptabilität
HTML5 Anwendungen sind grundsätzlich Cross-Plattform fähig: Mit QNX HMI-Technologie entwickelte HTML5-Anwendungen können in einer beliebigen anderen HTML5-Umgebung ausgeführt werden - alle Anwendungen laufen ohne weitere Anpassung in einer HTML5-Engine.
Die QNX® HMI-Technologie bietet das Beste aus beiden Welten - einerseits kurze Entwicklungszeiten und andererseits High-End Grafik und die Leistungsfähigkeit von Native-Code Programmen.
Das Application-Framework besteht aus einer Menge von JavaScript Klassen, die auf die Funktionalität von HTML5 aufsetzen. Sie erlauben die schnelle und effiziente Entwicklung von Anwendungen mit konsistentem Verhalten durch eine Vielzahl verfügbarer Services und eine vollständige Laufzeitumgebung.
Das Application-Framework erweitert die Adobe Flash Engine um folgende Funktionalitäten:
- Application Lifecycle-Management
- Datenpersistenz für Anwendungen
- Statusbars, Navigationsleisten, Badge-Icons, Wallpapers
- Bildschirm-Layout- und Resize-Management
- Spezialisierte Widgets wie Scroll-Lists, Bildschirmtastaturen und Dialoge
- Schnittstellen zu darunter liegenden HMI- und Betriebssystemdiensten
- Erweiterungen für den Zugriff auf Native Code
HTML5 verkörpert das Web 2.0: Es erweitert die bisherigen statischen Möglichkeiten von HTML mit neuen Werkzeugen für die Entwicklung vollständiger Web-Anwendungen. QNX verwendet eine aktualisierte Webkit- Portierung, die einen Großteil der aktuell vorgeschlagenen HTML5-Features unterstützt.
Erweiterungen wie JNEXT bilden die Brücke zwischen JavaScript und der Native-Welt, damit können HTML-Anwendungen auf Ressourcen außerhalb des Browsers zugreifen. Die HTML5 Rendering Engine kann als Browser in einer Browser-Anwendung verwendet werden, oder aber in Anwendungen integriert werden, die HTML5-Inhalte darstellen müssen.
QNX unterstützt alle Features des HTML4-Standards. Von QNX neu unterstützte HTML5-Features sind u.a.:
Form
|
|
|
Elements
|
|
|
Attributes
|
|
|
Specifications
|
|
|
Der Composition Manager des QNX Neutrino Echtzeitbetriebssystems erlaubt Entwicklern, die Ausgaben unterschiedlichster Fenster und Prozesse (Flash, Native-Code Anwendungen, Browser) auf einem Bildschirm zu integrieren - auch bei weniger leistungsfähigen Grafikcontrollern, die Hardware-Layering nicht unterstützen.
Der Composition Manager unterstützt sowohl Hardware-Layer, als auch durch Software emulierte Layer und erlaubt die einfache Erzeugung von transparenten Bereichen in Videos und Flash-Inhalten.
Der QNX Composition Manager unterstützt die Kontrolle der Anordnung des Fensters eines Subprozesses, zum Beispiel eines umgebenden HMI-Fensters, welches einen darin enthaltenen Browser oder eine 3D-Visualisierung kontrolliert. Die Fenster des Subprozesses können in vielfältiger Weise verändert werden, beispielsweise durch Verschiebung, Vergrößern / Verkleinern, Rotieren und Transparenz.
QNX Software Systems unterstützt Video-Codecs für die Wiedergabe von Videodateien, Multimedia-Inhalten, IP Video-Streaming und DVDs.
Unter anderem werden folgende Videoformate unterstützt: MPEG-4, MPEG-2, H.264, H.263, DVD-V Navigator.
QNX Software Systems bietet passende Lösungen für jedes Marktsegment, wie z.B. Automotive oder Industrial. Diese Lösungen stellen weitgehend vorgefertigte Technologien zur Verfügung, die eine schnelle und einfache Entwicklung vollständiger Systeme ermöglichen.
Automotive
Die QNX CAR Application Platform basiert auf der QNX HMI Technology und bietet zusätzliche Infotainment-Features wie den Virtual Mechanic, Google Local Search, Spracherkennung, Klimaautomatik, Kontrolle des Audiosystems und einen Werkstatt-Terminplaner. Die gleiche Technologie wird auch im LTE Connected CAR verwendet, das zusammen mit Alcatel-Lucent als Teil von ng Connect realisiert wurde.
Industrial
Das QNX Smart Energy Referenzdesign zeigt, wie man eine intelligente Energiesteuerung für Eigenheime realisieren kann. Die Hauseigentümer haben durch ein lokales Netzwerk, ZigBee Sensoren, IP Videostreams und Internetanbindung, sowie einer Verbindung zur Herstellerfirma, volle Kontrolle über ihr Haus und den Energieverbrauch.
Zukunft
Bei QNX Software Systems denken wir ständig über zusätzliche Varianten unserer Branchenlösungen nach, um unsere HMI Technologie für weitere Märkte verfügbar zu machen. Mehr Informationen zu den aktuellen Entwicklungen finden Sie auf Foundry27.com.
QNX bietet zwei wesentliche Schnittstellen zu Native-Code.
Persistent Publish/Subscribe (PPS)
Persistent Publish/Subscribe ist ein asynchroner Mechanismus für Kommunikation von C/C++ Diensten mit HMI-Code oder JavaScript (HTML5). PPS-Publisher stellen für den Rest des Systems eine Schnittstelle in Form eines hierarchischen POSIX-Namespaces zur Verfügung. Schnittstellen-Komponenten für die Registrierung bei einem PPS-Service werden mit jeder HMI-Umgebung zur Verfügung gestellt.
PPS hat folgende Eigenschaften:
- Objektattribute - PPS verwendet Objekte, die mehrere Attribute besitzen und die unabhängig voneinander verändert werden können
- Delta-Modus - Änderungen an PPS Objekten können vollständig (der Subscriber wird bei allen Schreibzugriffen benachrichtigt) oder selektiv (der Subscriber wird nur benachrichtigt, wenn Attribute ihren Wert ändern) empfangen werden
- Mehrere Publisher für ein Objekt - Mehrere Publisher können auf dasselbe PPS-Objekt schreiben und dabei kann jeder Publisher eine unterschiedliche Menge von Attributen "besitzen". In einem Multimediasystem beispielsweise könnte eine Komponente die Quelle eines "time::value" Attributes sein, während die HMI die Quelle für ein "duration::value" Attribut bildet.
- Mehrere Subscriber - PPS-Clients können sich bei mehreren Objekten registrieren und jedes PPS-Objekt kann mehrere Subscriber haben. Verändert ein Publisher ein Objekt, so werden alle am Objekt registrierten Subscriber über die Änderung benachrichtigt.
- Push und Pull - Standardmäßig arbeitet das QNX PPS als "push"-System. Aber es ist auch möglich, dass ein Subscriber die Daten selbst beim Publisher abholt ("pull"). Somit kann das Publishing an den Bedarf angepasst werden.
- Zuverlässige Speicherung - Die Speicherung von PPS Objekten kann für jedes Attribut einzeln vorgenommen werden.
Native-Erweiterungen
QNX bietet die Möglichkeit, von Anwendern erstellte C/C++ Objekte in HMI-Umgebungen zu laden und direkte Aufrufe in diese Objekte auszuführen. Dazu definieren Sie zuerst eine Schnittstellenklasse in ihrer Scriptsprache und erstellen dann die implementierende Klasse in C oder C++ . Aufrufe in der Scriptsprache werden dann an den Native-Code weitergeleitet. Somit können Sie auf Hardware-Ressourcen zugreifen, Threading verwenden, Betriebssystem-Dienste nutzen und Middleware-Komponenten integrieren.
Die QNX HMI Technologien werden ständig weiterentwickelt und bilden die Basis für die QNX CAR 2 Plattform.
Siehe auch: QNX CAR project.


