General Information
The following are the frequently asked questions regarding Workshop4 IDE general information.
What are the Installation Requirements of Workshop4?
Workshop4 is a Windows Only product. It is compatible with Windows XP to Windows 10 (Windows 7 or higher is recommended). Note that some older OS's such as Windows ME and Vista have not been tested for some time due to availability, however should still work.
It is possible to run Workshop4 under a virtual machine on Linux or Mac, however it is not officially supported. It is up to the user to set this up. Many customers have had success running Workshop4 under a VM, but is not something we can support officially.
Where can I find a 4XE and 4FN file?
When you compile a 4DGL Source code a 4XE or 4FN file is generated (depending on whether you have the "Main" function in the 4DGL Source code or not) at the same file location where the 4DGL Source Code exists.
What are the benefits of acquiring the PRO version?
The Workshop4 IDE PRO version offers additional features in addition to the ones already available in the free version.
Workshop4 IDE PRO version adds the following features on top of the free version features:
- ViSi Genie Magic: allows users to add custom code on top of their ViSi Genie projects.
- Smart Widgets: allows users to design widgets based on minimal widget parts.
- User Inherent Widgets: allows users to add code-based widgets.
How can I transfer License from an old computer to a new one?
Download and install the latest Workshop4 IDE from the link below into the new PC.
- Use the email address and the password use from the old PC.
- Click the License Pro button, which will prompt a confirmation message to allow the transfer.
- Click Yes to proceed.
- Once done, you can remove the Workshop4 IDE from the old PC.
Where can I find your libraries?
We have a number of libraries written for popular platforms, such as Arduino and Raspberry Pi, to interface with our 4D Display modules using Workshop4 environments such as Serial (SPE) and ViSi-Genie.
These are available from our Workshop4 Product Page on our website, or directly from our Github page.
What are the GCI and DAT files?
These files are the graphical resources compiled by Workshop4 based on the project. These contain the raw graphics and starting offsets required by the display modules' PmmC to render the designed graphics. These files are required to be copied to the microSD card at least once by agreeing to the IDE to perform the copy.
What is the format of a GCI file?
The GCI file is simply a collection of images and videos required by a project.
An Image (single frame widget) is formatted as:
-
a 6-byte header as 3-words:
- word1 - Width: horizontal size of the image
- word2 - Height: vertical size of the image
- word3 :
- byte5 - colour_mode: 16dec = 65K colour mode / 16-bit colours / 2 bytes per pixel
- byte6 - zero
-
raw pixel data as drawn from left to right and going down:
- Pixel11 to Pixel1W
- Pixel21 to Pixel2W
- ...
- PixelH1 to PixelHW
A Video (multi-frame widget) is formated as:
-
a 8-byte header as 4-words:
- word1 - Width: horizontal size of the image
- word2 - Height: vertical size of the image
- word3:
- byte5 - colour_mode: 16dec = 65K colour mode / 16-bit colours / 2 bytes per pixel
- byte6 - frame delay (non-zero)
- word4: Frames: number of frames
-
raw pixel data as drawn from left to right, going down from first to last frame:
- Pixel111 to Pixel11W
- Pixel121 to Pixel12W
- ...
- Pixel1H1 to Pixel1HW
- Pixel211 to Pixel21W
- Pixel221 to Pixel22W
- ...
- Pixel2H1 to Pixel2HW
- ...
- PixelF11 to PixelF1W
- PixelF21 to PixelF2W
- ...
- PixelFH1 to PixelFHW
Which image file formats are supported by the Workshop4?
The following image file formats are currently supported:
- jpg/jpeg
- bmp
- gif
- ico
- wmf
- png
- tif
- tiff
- emf
- wmf
Workshop4 then converts these formats into a format which is compatible with the display module selected.
Display modules cannot open these file formats directly.
Which video file formats are supported by Workshop4?
The following video file formats are currently supported:
- gif
- wmv
- avi
- vob
- mpg
Workshop4 then converts these formats into a format compatible with the selected display module.
Display modules cannot open these file formats directly.
What colours are available for use with the graphics functions?
An assortment of colours is available that range from 0x0000 to 0xFFFF. A full listing of named colours can be found in the 4DGL_16bitColours.fnc file, which is located in the installation directory of Workshop4. This file can be added to any project by simply inheriting the file:
#inherit "4DGL_16bitColours.fnc"
Right-click on the file and click 'Open file at Cursor' to open the inherited file in a new tab and view the list of predefined colours.
Does 4DGL support 32-bit integer types?
No, it doesn't. 4DGL only support 16-bit variables. However, by utilizing a 2-element array which results to a 32-bit space, some processors can support 32-bit unsigned long values. These processors utilizes internal functions to store unsigned long values and perform operations.
Does 4DGL support 8-bit variable types?
No, it doesn't. 4DGL only supports 16-bit variables. Obviously, 8-bit values have no problem being stored in a 16-bit variable.
Does 4DGL support floating point variable types?
No, it doesn't. 4DGL only support 16-bit variables. However, by utilizing a 2-element array which results to a 32-bit space, some processors can support 32-bit floats. These processors utilizes internal functions to store floating point values and perform operations.
How can I share my projects?
It is recommended to use the Zip Project option when sharing projects to another person.
This ensures that all files required by the project is included when you send it.
This option can be accessed by going to File -> Zip Project while the project is opened and active in Workshop4.
What are the requirements for a host controller?
When using ViSi Genie or Serial (SPE) and turning the display into a slave device / secondary device, the host controller requires to have:
- 1 UART peripheral - provides ViSi Genie and Serial (SPE) communication between the host and the display
- 1 digital output pin - controls the reset pin of the display module
Keep in mind that the display pins are 3.3V with most of the pins being 5V tolerant. Please refer to the datasheets for more information.
I got 'FileTransfer failed' error when uploading my project, what can I do?
If you are using any of the following programming adaptors:
- uUSB-PA5-II
- gen4-PA
- 4D-UPA
This is caused by an issue with the Windows 10 driver of the USB-to-UART chip. This can easily be solved by using Windows 7/8/8.1 driver that you can find here.
If you are using older 4D programming adaptors, this forum thread might help.
Do your display modules support transparency?
4D Graphics processors does not support transparency.
However, using Workshp4, you can add transparent images on your user interface using widgets like UserImages. Workshop4 will build these images on top of the background color or image used in the Form. This allows the image to still appear transparent in the actual application.
I would like to add your display to my ongoing project. Any recommendations?
If you already have an existing project, ViSi Genie might be the best for you.
This allows you to design a user interface and control it using your main/host controller without the need to program the display.
However, keep in mind that ViSi Genie have some limitations since it was designed to follow the most common behavior expected for each widget.
If you want or need a custom behavior, you can add custom code with ViSi Genie Magic which is available for the PRO version of the IDE. Keep in mind that you need a good understanding of program flow and 4DGL to efficiently utilize ViSi Genie Magic.
If you need full control of the display, you can use Designer or ViSi.
What is a host controller?
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 are designed to work with a host controller with a custom protocol.
Host controllers can be useful if there is a system which has a lot of GPIO or external device interaction, so it can be dedicated to handling those devices, and pass 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 basically, 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.
What is the default Serial (UART) baud rate used by 4D Systems core display modules?
The primary UART of 4D Systems core display modules (COM0) uses 115200 baud by default.
For graphics processors with more than one COM port, except for Pixxi44, the default baud rate of the alternative ports is 9600 baud.
For Pixxi44, COM1 needs to be initialized with an initial baudrate.