QNX® Software Systems provides a comprehensive offering for quickly developing visually compelling and high-performing embedded graphics applications. It is based on the concept of a universal application platform, which supports the best human-machine interface (HMI) technologies of today, and is easily expandable to include new technologies.
The ability to mix and match applications from multiple languages and environments is enabled by QNXís composition manager, letting native C/C++, HTML and other third party environments such as Elektrobit Guide, Crank Storyboard and QT all share screen real estate. Currently, QNX Software Systemís HMI technology stack includes support for:
- Native OpenGL ES applications
- Native 2D applications
- Video playback
- An application store
- Graphical composition of multiple applications through the composition manager
QNX HMI technology is available on a wide range of embedded silicon, including ARM, PowerPC, SH-4, and x86. Other notable features include:
- Application framework with lifecycle management for easy creation of standalone embedded applications
- Optimization for low system overhead and optimal memory usage
Universal application platform
QNX HMI technology supports multiple HMI technologies with the same platform, giving developers the most choice in selecting the right technology, and ensures that future developments can be straightforwardly incorporated.
Because all QNX HMI technologies are built upon the QNX® Neutrino® RTOS, they automatically take advantage of the platform's field-proven reliability.
QNX Software Systemsí support for HTML5 allows development teams to move directly from graphical prototype to final product without HMI re-coding, and to test entire HMIs on desktops, then run the same content on embedded targets without re-engineering.
Broad talent pool
With the ability to use varied HMI technologies, embedded developers can leverage industry-standard HMI code and a strong developer community, sample code, libraries, toolkits, and training materials.
Interface to native code
Application store technology
QNX Software Systemsí application store technology allows developers to create systems that give the end customer flexibility to extend their products.
HTML5 applications are inherently multi-platform: HTML5 applications developed using QNX HMI technology can be played in any other HTML5 environment, and most existing applications will run using the HTML5 engine without modification.
The QNX® HMI technology offers the best of both worlds — the rapid development and high-end graphics capabilities and the performance of native code.
The application framework adds the following capabilities to the Adobe Flash engine:
- Application lifecycle management
- Application data persistence
- Status bars, navigation bars, icon badging, wall paper
- Screen layout and resizing management
- Specialized widgets like scroll lists, soft keyboards, and dialogs
- Interfaces to underlying HMI and OS services
- Extensions for accessing native code
HTML5 embodies Web 2.0: it extends normal static HTML support with all the tools necessary to build dynamic full-fledged applications within a web page. QNX uses an up-to-date port of Webkit which supports many of the currently proposed HTML5 features.
The Composition manager provided with the QNX Neutrino RTOS allows developers to merge the output of multiple windows and processes (Flash, native code applications, browsers) on to a single display ó even with lower cost graphics controllers that donít support hardware layering.
This Composition Manager supports hardware display layers and software-emulated display layers, and enables the easy creation of transparency holes in video and flash content.
The QNX composition manager provides support for applications to control the composition of subprocess windows, such as a surrounding HMI window that controls a contained browser or 3D virtualization application. Various transforms can be applied to the subprocess windows, including moving, scaling up/down, rotating, and transparency effects.
QNX Software Systems supports video codec playback, which is important for playing back canned video files, multimedia, streaming IP video feeds, and DVDs.
Video formats supported include MPEG-4, MPEG-2, H.264, H.263, DVD-V navigator.
These stacks provide pre-integrated technologies that allow full-featured systems to be put together readily.
The QNX CAR Application Platform builds on QNX HMI technology to add automotive infotainment features, like the Virtual Mechanic, Google local search, voice recognition, climate control, audio system control, and dealer appointment scheduling. The same technology in QNX CAR also enables the LTE Connected CAR that QNX built with Alcatel-Lucent as part of ng Connect.
The QNX Smart Energy Reference Design shows how to create a smart-looking home energy panel that can give homeowners complete control of their home and its energy use, using home area networks, Zigbee sensors, and streaming IP video along with a connection to the Internet and the utility company.
QNX Software Systems is always considering additional vertical stack customizations to expand the range of HMI solutions into other markets. The most recent developments will always be found on Foundry27.com.
QNX provides two fundamental methods for accessing native code.
Persistent Publish/Subscribe (PPS)
PPS has the following characteristics:
- Object attributes— PPS publishes objects which are composed of multiple attributes, which can be independently updated.
- Delta mode— Changes to PPS objects can be received in full (the subscriber gets all writes to an object) or by deltas (the subscriber only gets notified when attributes change value).
- Multiple publishers to the same object— Multiple publishers can publish to the same PPS object, and each publisher can own a different set of attributes of the object. In a multimedia system, for instance, one component may be the source of a time::value attribute, while the HMI may be the source of a duration::value attribute.
- Multiple subscribers— PPS clients can subscribe to multiple objects and PPS objects can have multiple subscribers. When a publisher changes an object, all clients subscribed to that object are informed of the change.
- Push and pull— By default, QNX PPS functions as a push publishing system. But it also allows a subscriber to pull data from a publisher, so that publishing occurs on demand.
- Reliable storage— PPS objects can be persisted on an attribute by attribute basis.
QNX provides methods for HMI environments to load and directly call into user provided C/C++ shared objects. You define an interface class in the scripting language, and provide an implementation of that class in C or C++. Calls from the scripting engine will then be bridged into native C/C++ code, allowing access to hardware resources, threading, OS primitives, OS services, and middleware components.
QNX HMI technologies are continuously evolving, and form the basis for the QNX CAR 2 application platform.
See also: QNX CAR project.