Symmetry Innovations


  QNX® HMI Technology

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:

  • HMTL5
  • 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
  • Multiple interfaces for accessing native code libraries and OS services from HMI layer (JavaScript)
  • 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.

Reliability

Because all QNX HMI technologies are built upon the QNX® Neutrino® RTOS, they automatically take advantage of the platform's field-proven reliability.

Time-to-market

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

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.

Application store technology

QNX Software Systems' application store technology allows developers to create systems that give the end customer flexibility to extend their products.

Cross-platform compatibility

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.

  • Application Framework

    The application framework is a set of JavaScript classes that expand on the capabilities provided by HTML5. 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:
    → 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

    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:

    Form

    → autocomplete
    → pattern
    → autofocus
    → multiple
    → maxlength
    → novalidate
    → keygen
    → search
    → tel
    → url
    → email
    → number
    → color

    Elements

    → section
    → nav
    → article
    → aside
    → hgroup
    → header
    → footer
    → ruby
    → embed
    → video
    → audio
    → source
    → canvas
    → inline SVG

    Attributes

    → manifest
    → charset
    → sandbox
    → contenteditable
    → draggable

    Specifications

    → Selectors API
    → Web Storage
    → Web Database
    → Web Sockets
    → Web Workers
    → Geolocation API
  • Composition

    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.

  • Video

    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.

  • Vertical stacks

    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.

    Automotive

    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.

    Industrial

    The QNX Smart Energy Reference Design shows how to create a smart-looking home energy panel that can give home owners 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.

    Futures

    QNX Software Systems is always considering additional vertical stack customizations to expand the range of HMI solutions into other markets. Contact us to know about the most recent developments.

  • Native interfaces

    QNX provides two fundamental methods for accessing native code.

    Persistent Publish/Subscribe (PPS)

    The persistent publish/subscribe provides a mechanism to asynchronously connect C/C++ services to HMI code 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:

    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.

    Native Extensions

    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.

Go to top of page