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.
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.
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.
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:
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:
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: