12/14/2010

Qt framework for QNX: Not just a pretty interface

Before we go any further, let's get the pronunciation thing out of the way. Strictly speaking, Qt is pronounced "cute." But guess what: The minute you start saying things like "That device has 'cute' user interface" is the same minute people start looking at you funny. Hence, the pronunciation of choice has become, not surprisingly, "kyoo tee".

If you're new to Qt, the Qt community portal has a good, albeit prolix definition:

"Qt is a comprehensive C++ application development framework that includes a class library and tools for cross-platform development and internationalization. The intuitive Qt API and tools are consistent across all supported platforms, enabling platform-independent application development and deployment."

The definition on the Qt Development Frameworks website gets to the point a little quicker:

"Qt is a cross-platform application and UI framework. Using Qt, you can write web-enabled applications once and deploy them across desktop, mobile, and embedded operating systems without rewriting the source code."

This "write once, deploy across" feature is a key reason why many QNX customers, particularly those in the medical and industrial automation industries, show interest in Qt. Mind you, it's not the only reason. Qt's rich cross-platform C++ class library, running on the QNX Neutrino RTOS, also allows device makers to:
  • build advanced user interfaces from a rich set of standard and customizable GUI components
  • visualize data in 3D with a tight integration with OpenGL
  • increase designer & developer collaboration with Qt Quick, a complete UI creation kit
  • choose a license to fit project requirements
  • take advantage of the Qt ecosystem
  • leverage the reliability and real-time performance of the QNX Neutrino RTOS

From port to completed port
Qt Software, a Nokia subsidiary, first ported Qt to the QNX Neutrino RTOS in July 2009. QNX Software Systems plans to complete this port and quickly move up to latest release of Qt, v4.7. From what I understand, the new port will initially support ARM and Atom processors on Beagle boards and Kontron boards, respectively. Support for additional platforms will depend on customer interest.

Look ma, no C++
Qt 4.7 introduces a new feature, Qt Quick, that enhances Qt's capabilities and allows anyone familiar with scripting languages to create UIs and apps. With Qt Quick, you don't need to know C++. Instead, you can use QML, a JavaScript-based declarative language, to design your "UI centric" applications.

According to the Qt website, if you have experience with JavaScript, HTML, or CSS, you have the skills to learn QML. Practically speaking, this ease of access means that user-interface designers can work hand-in-hand with software developers to create animated, touch-enabled UIs.

A matter of choice
The QNX Neutrino RTOS already supports a choice of UI technologies, including Adobe Flash, OpenGL ES, and the QNX Photon microGUI. Support for Qt will add to this choice. In future posts, I will track the progress of Qt for the QNX Neutrino RTOS and provide some insight as to how it integrates with existing QNX graphics technologies and frameworks.

Until then, here's a video published to celebrate the initial port to QNX Neutrino back in 2009:

12/06/2010

QNX drives digital instrument cluster for Jaguar XJ

You know what I like best about digital instrument clusters? Their dynamic reconfigurability. Shift into drive, for example, and the cluster displays a tachometer. Shift into reverse, and the cluster replaces the tachometer with video output from a backup camera. I mean, how cool is that?

This isn't just science fiction. Some production cars already provide this type of functionality, including the Jaguar XJ and Land Rover Range Rover. Here, for example, are some photos from a Jaguar XJ, which made an appearance at the recent QNX Automotive Summit in Stuttgart. The cluster, as you may have already guessed, runs on the QNX Neutrino RTOS:











Recently, QNX Software Systems equipped a Corvette with a digital cluster to show off some of its latest software technologies. To see photos of the cluster in action, click here.

POSTSCRIPT: Originally, this post referred to the vehicle in question as a Jaguar XJ5. Fortunately, an astute (and Jaguar-savvy) reader pointed out that the last XJ5 probably shipped in the early 1980s. Consequently, I've edited the text to reflect the correct name: XJ.
 

12/05/2010

I passed the buck...

... or did the buck pass me? It's all a matter of perspective, I guess. In any case, this buck and I passed by each other in the woods yesterday, and I managed to squeeze off a few frames before he moved on. Here's one of them:


Click to magnify.

Photo tip: With their impressive antlers, white-tailed bucks evoke regality. To keep them looking regal, I often change my perspective by getting on my knees and shooting them from below their eye level. This gives the effect of looking up at them, much as you would a king on a throne.

Disney artists used much the same technique when drawing images of Bambi's father. For example:



Because in art, as in life, perspective is everything. :-)