2 posts categorized "Programming"

09 November 2010

POSXML: a different approach to POS application development

The way towards a good application for your POS terminals is a long one with many obstacles.

One of the biggest obstacles is programming in C, the language is used to develop programs for POS terminals. It takes a lot of time and expertise to get the application right.

So is there a different path?

A possible answer is POSXML,  a language based on XML standards that was created by Plano Bê. (see the Wikipedia entry )

Its main advantage is that it is very intuitive and allows for easy and fast development. And you definitely don't need to be a C programming expert to develop applications.

There are over 100 commands available in POSXML. These includes support for the most common elements of the terminal (such as a keyboard, magnetic reader or touchscreen). And in case you it doesn't fit your needs 100%, you can just create your own instructions.

All these features speed up your application development. 

And on deployment POSXML has a couple of other advantages:

  • The applications that you developed in POSXML can be compiled to run on different operational systems or models. So there is no need to modify your code for each specific terminal.
  • Keeping the applications updated to their newest version is also a piece of cake. Just recompile and the WALK Platform automatically updates the applications on your terminal network.

Want to check it out for yourself?

You can get a free demo here and get started with POSXML. If you have any problems with it, we have an extensive documentation library available to help get you up to speed.

06 July 2010

4 challenges with POS application development

Creating applications for point of sale terminals and installing these across your network of terminals is a challenging task. 

This article focuses on four challenges that developers of this type of applications face: programming in C, creating different code for every type of terminal, run this code to its respective compiler and getting the application onto the POS terminal.

Programming in C

Forget Visual Basic, Java, Ruby and other programming languages. POS development is done in C. Most of time in a basic version of C without the support of the many libraries that are available to make it easier to use IO, mallocs and other functions. Understanding and coding in C requires a lot of experience.

A code example like the one below:

tableMem[y][x / 8] |= tablePixel[x % 8];

It has nothing intuitive to it. (For those interested: it is a bitwise operations with memory)

Writing a driver to control a LCD display or keyboard is difficult but still relatively simple compared with the code necessary to control smartcard readers, printers and wireless cards. 

Programming in C is hard work, it is time consuming and requires a lot of expertise. And this isn't cheap. Good programmers are hard to find and expensive.

Operational System

Every terminal has a different operating system, even different models of the same brand can have a different OS running. This means that every model requires a different version of the application.

Consider the code below, used to display a simple text:

VeriFone Verix
display_at(0, 0, "Hello World", CLR_EOL);

Verifone Nurit 
GrphText_Write(0,0,"Hello World",FONT_7X5,strlen("Hello World"),false,false);

Sagem
hmiADDisplayText(handle, 0, 0, "Hello World");

Notice how different the code is for each of the models. And this is just to perform a simple function like displaying some text. When you consider the more complex elements of a POS terminal like a printer, Ethernet card or smart card reader the code quickly gets complex.

And this process has to be repeated for every model, each requiring a different approach to the programming.

Compiler

Every application for each terminal has a different code. To compile this code and turn it into a working application you need a specific compiler for the terminal.

And this isn't a Java compiler which you can download for free of the internet. In order to get the SDK you have to be a recognized partner of the terminal vendor. And you probably have to pay for the compiler inside the SDK. And these compliers are expensive. An ARM7 compiler used to create software for VeriFone Verix for example, costs around 15.000 dollars. 

And this only compiles your application for VeriFone terminals. For Sagem terminals, you will need a different compiler.

Updating

If you have managed to code your specific application for each terminal you still have to get the application on the POS terminal.

After each compilation of your code, you have to upload the application to each of your terminals. Manually. With a network of 10 terminals this isn't problematic. But when you have 2000 terminals spread across the country it is a problem.