ProgramGenerator location

You can find the Program Generator within our downloads section following the path: support > downloads and then click on "Downloads for Sales, Inventories and Security".

Once you clicked on the link, you are given two options. You can open the file or save it. You should save it and then extract its contents to a known location.

Once you have extracted the file, you should take the following steps:

  • Click on the setup file to start the installation (just go along with the options given on the screen).

  • Execute the program.


Click on "Load"

      • Previous configurations of the Program Generator will then be displyed. The extension to these configurations is '.fld' . Some configuration examples are appended to the folder containing the setup file.

Initial Screen


When declaring the variable 'document' as 1.2 or 3, the variable will be enabled for use as Index and it will have 3 separate lists.

Here you set up the screen that should appear on the terminal once the program starts. The above example produces the following screen on the terminal:


User variables

Here is defined the variables that will be used internally, to show attributes, names, and so forth. To send variables to the terminal you should send a string separated by spaces. For instance, if you wish to send a file with data to the above example, it should be done as follows:

Art1 111111111 Coca Cola 10
Art2 222222222 seven up 15
Art3 333333333 Cafe 12.5
Art4 444444444 Bola 10
Art5 555555555 Manteiga 112.3
Art6 666666666 Sprite 10
Art7 777777777 Tabaco 10
Art8 888888888 Queijo 10

To send it, you should use the program "datacollector" with the paremeters as "Load". Datacollector /Load ficheiro.txt Table1
Table1 is the table´s default name.

Header fields

Here you set up the initial data screen. In this example the data is automatically filled by the previous choice. We can take as a real world example the invoice number request.
Aqui define-se o ecran inicial de dados. Neste exemplo os dados são preenchidos automaticamente pela escolha anterior. Poderia-se usar para pedir um numero de factura etc... Variable name
  • Internal name of the variable

Variable size
  • Size of the input field. If the variable is of string format, the terminal will save the variable with that size. If the variable is numeric, it will spend 4 bytes of internal memory.

  • String
  • Numerical
  • String-Index
  • If index, this field will be used for setting the list to be used. In this example we use this field to define which document to be used
  • Numerical-Index
  • If index, this field will be used for setting the list to be used. In this example we use this field to define wich
Field Template If you are using this barcode reader, this field allows the code validation.
  • Alpha %

  • Alpha/Numeric @

  • Numeric #

  • Any ?



  • Barcode

  • RFID


Default Value

  • If there is a value, this field will be automatically filled.



  • Text appearing on the screen before the input variable.



  • Prefix size


New Line after field

  • Yes/No, indicates whether the terminal display after this field should change the line. Usually yes.


  • Let you seek a field in a table to show its description in 'Show'. To do this you must create fields with the "User variables". All variables created in the 'user' variables' will appear in ' Show '.




    Displays the description of the field found in 'Find'.




    Allows you to have invisible fields, just like in the example.

Body fields

Lets you define how you see the main screen, or where the data is. In this example we found a list of bills, the items and quantities.

The code above would generate the following terminal screen layout:

Variable name
  • Name of variable. This name will appear at the top of the screen of the terminal.
Variable size
  • Size of the field in the edit screen. In terms of memory if it is a string, an equivalent number of bytes to the size of the field will be spent. If it is a numeric field, 4 bytes will be spent.
  • String , Number of bytes = Variable Size.
  • Numeric , Number of bytes = 4.
  • Date , Not editable. Spends 4 bytes.
  • Null , it won't spend any bytes. Helps formatting the screen.

Field template
  • If it is to read the bar code reader, this field can validate the code
  • Alpha %
  • Alpha/Numeric @
  • Numeric #
  • Any ?
  • Right
  • Left

  • Barcode
  • Rfid

Allow repeated
  • Allows repetition of a field within the same list.

If repeated
  • To be used in conjunction with "Allow repeated ', which allows a field that is being repeated to perform this action. Traditional use is if a reference is repeated to add the quantity.
  • Add
  • Copy

  • Search the field's content within one of the 'user variable' tables.

Default Value
  • If there is a value, the field will be automatically filled. It may be used in conjuntion with 'find'.

  • Allows its description to show in a field. To be used with 'Find'.

Validate Show
  • If 'Yes' then only data that are on the list will be allowed to enter this field,

Auto exit field
  • Allows you to move straight to the next field whenever this one is filled

Show in header
  • Allows you to have a field that, although belonging to the 'body' which appears on all lines where the data is collected, being its input done in the same header. USA in this case is to ask for the number of the warehouse, rather than be introduced in all the readings.
Default value – Exit?
  • Allows for example to make an inventory with the amount of 1 without stopping to ask the amount.
Don't allow zero.
  • You can't input 0 in this field.
Special Condition

Allows to configure whether each field should appear on a screen or not through the value of a variable. In the above example the price is set in sales and consultation and it doesn't appear in inventory.

Extract data from field Use this screen to extract data from a field. For example if we have a bar code in which the first 3 digits are the quantity, and we want to add all the quantities of stock to the terminal.


Equivalent to the previous screen but specific to EAN128.

Memory Status

Allows the definition of which memory is to be used for inventory and which memory is to be used with the wording of references for example. By changing the value of this bar 'size_body' (System Variables) and 'Number of elements' (Properties) the user variables change automatically. You can open these windows before changing the bar to see how the values are.


System Variables

Lets you define some key variables that the generator will use to generate the program.
  • Maximum number of different headers allowed. In the example of the invoice, this would be how many bills it could have in memory.
  • In the same example would be the maximum number of lines in each bill. This number is calculated automatically, after you change the 'size_header_max'.
  • psc
  • This value must be of 128 or 512, depending on the terminal. Our XRT502 model's memory is of 512K at the moment.
allow_sub show_stat
  • Define a function key which shows some statistics of the current inventory.
  • Yes /No
  • TagIt / none
  • Allows configuring
  • 700
  • Allows the terminal to download data via modem. This sets up a sequence of dial
  • Lets it communicate by radio. In this configuration you must create an extra line in the 'initial screen' with 'Connect', thus initiating communications
  • Important: To submit the program and then to send data, you should use the datacolletor with the option '/ Radio'. The Terminial to receive the program should be in 'Radio Download', which is obtained by reset, press' del 'on boot, password 6169 and then option 8.


    • File

      • (In Advanced mode ) Rs232 SettingsCom port -- Serial Port where the terminal will be collected to.

  • Fields

    • Load Fields

      • Allows the reading of previous configurations of the Program Generator. The extension of these configurations is '.fld' . Together with the setup file there are some configuration examples.

    • Save Fields

      • Save current configurations.

      • Compiles the generated C code.

      • Puts the bin file into the x64/bin_offline folder, wich allows it later the communication to the terminal and its reconfiguration.

  • Program

    • Configure filename

      • Allow the name allocation to the C program to be created. This program must be created within the directory where the C. O is located.

    • Generate program

      • Creates a program in C in accordance to the predefined configurations.

    • Edit Program

      • Change or view the generated program.


    • Compile Program

      • Compiles...

    • Send Program

      • Send the program to the Terminal through the serial port. Note that the terminal has to be able to receive. To this must be done reset, press the 'del' while the terminal boots, password 6169 and option 7 (RS232 download).

    • Kill, compile , send Program

      • All steps in one go.