Introducing Zinzala

First published: April 21, 2003 *** Last update: August 30, 2004 hexaZen

Abstract

This white paper introduces a new sophisticated Software Development Kit (SDK) for QNX. This kit offers labor-saving technologies to help develop solutions for embedded or desktop markets.

With a simple demonstration, we will show how the Zinzala SDK can help increase development productivity and application flexibility when time-to-market matters.

Intended audience

This paper is intended for developers who have knowledge of C++ and who are familiar with Graphical User Interface (GUI) concepts. Specific QNX or Photon knowledge is not required.

Contents

1. What is Zinzala ?

Zinzala is a Software Development Kit designed to take full advantage of modern computers and operating systems, such as QNX. It offers:

The SDK gives the opportunity to build complex applications using a high-level language for desktop and embedded targets, which are supported by the QNX Momentics. Zinzala provides:

Zinzala is composed of several libraries split into two Kits: Cincinella and Farfalla. Some of the libraries are important to all applications, while others are only used by applications that are concerned with specific topics. For instance, the GUI library would only be used by applications which require an user interface. Each library is a dynamically linked library (DLL) resident on the user's machine and applications link to it when it's launched.

2. A simple application as an example

If you are a runner, you may want to know how many calories you have burned after a run. There are several web sites which provide a way for calculating this. Here, we are going to implement a QNX calorie-burned calculator using Zinzala.

From the Internet, we can find the following simple formula:

calories = distance * weight * 1.036

Where the distance is in Kilometers and the weight is in Kilograms.

The user inputs the following information :

We will allow the user to select between Miles and Kilometers for their distance and between Pounds and Kilograms for their weight.

In the sections which follow, we will take a step-by-step approach to arrive at the following application:

phalorie - calories burned calculator

3. Rapid Development with zSDK

The proposed C++ framework provides the developer with a significant amount of ready-to-use classes. When specific needs arise, some classes may need to be specialized.

When developing with Zinzala SDK, the developer is required to use a cApplication object or an instantiation of a class derived from it. This class establishes an application as an identifiable entity (ie. it needs to be named). This entity can cooperate and communicate with the outside world (local or distant applications). This class also handles the connection with the Photon server on QNX.

The code below shows the skeleton of our Zinzala application:

01 // Create the application 02 cApplication lMyApp("hexaZen/phalorieburn",0); 03 04 // Check that the application is initialized correctly 05 if(lMyApp.IsValid()) 06 { 07 // Start the application 08 lMyApp.Run(); 09 10 // do some stuff 11 12 // Wait for the end of the app 13 lMyApp.WaitEnd(); 14 } 15 else 16 fprintf(stderr,"Failed to init the application");

Print version

All content © 2004-2007, hexaZen - Vancouver BC, Canada