26 08, 2023

What is a 4XE File?

2023-08-26T14:27:22+10:00Categories: , |

When you compile a 4DGL file, the compiler generates an executable file with an extension .4XE. When you download the compiled code, the 4XE file gets downloaded to the FLASH or RAM depending on the option selected in the 4D Workshop4 IDE.

When a 4XE program is saved to FLASH, the program will start whenever power is applied.

Note: If #MODE RUNFLASH is added to the start of the program, the program actually executes from FLASH memory. Otherwise, the program in FLASH is loaded into RAM before it is run. A program that is run directly from FLASH runs a little slower than a program run from RAM but has the advantage of leaving the RAM space free for running child programs.

26 08, 2023

What is a 4FN File?

2023-08-26T13:19:55+10:00Categories: , |

When you compile a 4DGL file that doesn’t have a “Main” Function, a 4FN file is generated as relocatable source code. A 4FN file can be loaded, then called from the Main program that resides in the FLASH memory of the Processor.

It works just like a function and can be discarded when no longer required, freeing up memory. You can also pass arguments to a 4FN file from the Main Program. It can return values to the “Main” Program.

You can return from a 4FN file to the Main Program at the same point where you called the 4FN file.

Note: A good example of this technique can be found in the 4DTETRIS.4DG program which can be browsed through the Samples -> Picaso Designer -> PICASO – DEMO\EXECUTABLESSOURCE

26 08, 2023

How can I use 4XE file as a child program?

2023-08-26T13:18:05+10:00Categories: , |

A secondary (CHILD) 4XE file can be saved to the microSD card and called from the Main program that resides in the FLASH. Once loaded, a child 4XE file takes full control and runs from the RAM.

When you reach “Exit” in the 4XE file code, the module goes back to the start-up routine returning control to the Main Program in FLASH, in effect restarting it.

You can pass arguments to a 4XE file from the Main Program. The 4XE File cannot return anything to the Main program.

26 08, 2023

How can I transfer License from an old computer to a new one?

2023-08-26T12:55:21+10:00Categories: , |

Download and install the latest Workshop4 IDE from the link below into the new PC.

Latest Workshop4

  1. Use the email address and the password use from the old PC.
  2. Click the License Pro button, which will prompt a confirmation message to allow the transfer.
  3. Click Yes to proceed.
  4. Once done, you can remove the Workshop4 IDE from the old PC.
26 08, 2023

I have this message ” Internet Required for Validation” message when opening Workshop4 Pro. What can I do?

2023-08-26T12:54:14+10:00Categories: , |

To validate your Workshop4 Pro license requires an internet connection.

Please ensure that your computer has internet access for validation.

Check your Antivirus or firewall settings if it’s blocking the access of Workshop4 accessing our server.


Note: Common licensing errors can be solved by simply running the latest version of Workshop4. If you are running into any issues, please try updating your Workshop4 to the latest version.

Latest Workshop4

26 08, 2023

The display shows “Error-15”. What does this mean?

2023-08-26T10:34:27+10:00Categories: , |

Error 15 or Eve Stack overflow means that either the stack size is insufficient in your program (variables and such), a recursive function fails to exit, or multiple timers are firing simultaneously.

For insufficient stack size.

You can expand the stack size by manually inserting the code below for Workshop4 Designer/ViSi and ViSi-Genie Magic

#STACK 4094 //max stack size

Using Designer/ViSi add the line at the top of your code as constant.

Using ViSi-Genie Magic add the line using Magic Code in the Constant/Global/Data Insertion

For more information about the #STACK, you can check the 4DGL Programmers Reference Manual

For recursive functions.

Check iterations, recursions or function calls that may possibly cause this. You can add like, return or return 0 as an ending argument to make sure that it terminates.

It can also happen in conditionals (especially nested ones) where you think the program might not actually reach the argument; it would still be best to add an else clause with just the return statement in it just so the memory gets freed once it exits the function.

You can find this error on Internal Functions Reference Manual > Runtime Errors.

Diablo16 Internal Functions Manual

Pixxi Internal Functions Manual

Picaso Internal Function Manual

If you are still having trouble, you can contact our technical support, who will help you check your code.

26 08, 2023

What is a host controller?

2023-08-26T10:30:51+10:00Categories: , |

A host controller is a separate programmable microcontroller (typically) designed to control the graphical user interface and process user inputs.

A host controller is typically used when the display module is configured in Serial (SPE) or ViSi Genie environments. It is also possible to create a Designer or ViSi project that is designed to work with a host controller with a custom protocol.

Host controllers can be useful if there is a system that has a lot of GPIO or external device interaction, so they can be dedicated to handling those devices and passing information to and from the display which is relevant.

Host controllers can also extend to larger devices, not just microcontrollers, but anything that has a Serial UART, which can pass information to and/or from a 4D display module.

Host controllers don’t always need to be programmable either, such as if there is an older system and a display needs to be replaced on it, as long as the old display signals can be sent over a Serial UART, then a custom protocol can be written on the 4D Display side using Designer, ViSi or even ViSi-Genie PRO, to interpret this host information and display required information on the 4D display.