This guide contains comprehensive information about GUIX, the high-performance GUI product from Eclipse Foundation. It is intended for embedded real-time software developers familiar with basic GUI concepts, ThreadX, and the C programming language.

Organization

Guide Conventions

Italics - Typeface denotes book titles, emphasizes important words, and indicates variables.

Boldface - Typeface denotes file names, key words, and further emphasizes important words and variables.

Important
Information symbols draw attention to important or additional information that could affect performance or function.

GUIX Data Types

In addition to the custom GUIX control structure data types, there are several special data types that are used in GUIX service call interfaces. These special data types map directly to data types of the underlying C compiler. This is done to ensure portability between different C compilers. The exact implementation is inherited from ThreadX and can be found in the tx_port.h file included in the ThreadX distribution.

The following is a list of GUIX service call data types and their associated meanings:

Data type Description

UINT

Basic unsigned integer. This type is mapped to the most convenient unsigned data type.

INT

Basic signed integer. This type is mapped to the most convenient signed data type.

ULONG

Unsigned long type. This type must support 32-bit unsigned data.

VOID

Almost always equivalent to the compiler’s void type.

GX_CHAR

Most often typedefed as the compiler defined char type.

GX_BYTE

8-bit signed type.

GX_UBYTE

8-bit unsigned type.

GX_VALUE

16 or 32 bit signed type. Defined as needed for best performance on the target system.

GX_FIXED_VAL

Fixed point numeric data type.

GX_RESOURCE_ID

Unsigned long type.

GX_COLOR

Unsigned long type.

GX_STRING

Structure containing GX_CHAR *gx_string_ptr and UINT gx_string_length.

GX_POINT

Structure containing gx_point_x and gx_point_y.

GX_RECTANGLE

Structure containing gx_rectangle_left, gx_rectangle_top, gx_rectangle_right, and gx_rectangle_bottom fields.

GX_GLYPH

Structure containing glyph metrics.

GX_FONT

Structure containing font metrics.

GX_BRUSH

Structure containing brush metrics.

GX_PIXELMAP

Structure containing pixelmap metrics.

Additional data types are used within the GUIX source. They are located in either the tx_port.h or gx_port.h files.

Troubleshooting

For troubleshooting, capture the following information:

  1. A detailed description of the problem, including frequency of occurrence and whether it can be reliably reproduced.

  2. A detailed description of any changes to the application and/or GUIX that preceded the problem.

  3. The contents of the tx_version_id and _gx_version_id strings found in the _tx_port.h and gx_port.h files of your distribution. These strings will provide valuable Information regarding your run-time environment.

  4. The contents in RAM of the following ULONG variables:

    _tx_build_options _gx_system_build_options

    These variables will give information on how your ThreadX and GUIX libraries were built.

  5. The contents in RAM of the following ULONG variables:

    _gx_system_last_error _gx_system_error_count

    These variables keep track of internal system errors in GUIX. If the _gx_system_error_count is greater than one, please set a breakpoint on the function return in the _gx_system_error_process function and find the value of _gx_system_last_error at this point. This will yield the first internal GUIX system error.

  6. A trace buffer captured immediately after the problem was detected. This is accomplished by building the ThreadX and GUIX libraries with TX_ENABLE_EVENT_TRACE and calling tx_trace_enable with the trace buffer information.

  7. The GUIX Studio project you are using, if applicable, or at a minimum a small project sufficient to demonstrate the deficiency.