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.
A QNX-optimized port of Adobe Flash and QNX class libraries provide applications with a powerful run-time environment. And the ability to mix and match applications from multiple languages and environments is enabled by QNX’s composition manager, letting native C/C++, Flash, and HTML applications all share screen real estate. Currently, QNX Software System’s HMI technology stack includes support for:
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.
Developers can use the renowned Adobe Creative Suite 4 environment to easily create the most stunning graphical interfaces available today.
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 Adobe Flash 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.
With the ability to use HMI technologies like Adobe Flash or HTML5, embedded developers can leverage industry-standard HMI code and a strong developer community, sample code, libraries, toolkits, and training materials.
QNX HMI technology lets developers bridge from HMI development languages like ActionScript or JavaScript into native code to allow access to OS services, specific optimizations, multi-threading, or native libraries.
QNX Software Systems’ application store technology allows developers to create systems that give the end customer flexibility to extend their products.
Adobe Flash applications are inherently multi-platform: Flash applications developed using QNX HMI technology can be played in any other Flash environment, and most existing Flash applications will run using the QNX Flash player without modification.
The QNX® HMI technology offers the best of both worlds — the rapid development and high-end graphics capabilities offered by Adobe Flash and, whenever required, the performance of native code.
Flash is probably the most powerful cross-platform HMI development tool available today. QNX supports Adobe’s latest embedded offering, Adobe Flash Lite 4, which opens up availability to the latest and greatest Flash applications and content.
QNX Software Systems has ported the Adobe Flash engine, and added a number of optimizations for best performance in embedded environments, like:
The application framework is a set of ActionScript 3 (AS3) classes that expand on the capabilities provided by Flash. It enables rapid development of consistent-behaving applications by providing a breadth of application services and a complete application runtime environment.
The application framework adds the following capabilities to the Adobe Flash engine:
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.
Extensions such as JNEXT are used to bridge the gap between JavaScript and the native world, allowing development of HTML embedded applications that can interact with resources outside the browser. The HTML5 rendering engine can be used as a browser with the browser application, or can be included into applications that require display of HTML5 content.
QNX supports all the standard HTML4 features. New HTML5 features that are supported by QNX include:
|
|
|
|
|
|
|
|
|
|
|
|
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.
Drawing simple 2D graphics is provided through several powerful APIs:
Drawing 3D objects is provided through an OpenGL ES API.
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, and Flash specific formats On2 and Sorenson.
QNX Software Systems provides stacks that are appropriate for each vertical market, such as Automotive or Industrial.
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.
The persistent publish/subscribe provides a mechanism to asynchronously connect C/C++ services to HMI code in ActionScript (Flash) or JavaScript (HTML5). PPS publishers provide an interface to the rest of the system through a hierarchical POSIX namespace. Interface components are provided in each HMI environment to allow subscription to PPS services.
PPS has the following characteristics:
QNX provides methods for HMI environments to load and directly call into user provided C/C++ shared objects. For Flash, this is provided through ActionScript Extensions (ASE); HTML5 uses JNEXT. In either environment, 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 application platform. If you want to know more about what’s on its way, or even download and try our latest milestone deliveries, please register and join the QNX CAR project on Foundry27.
See also: QNX CAR project.