easyGUI Graphical User Interface Tool
– creating graphical user interfaces the easy way
Graphical user interfaces for embedded systems created fast and efficiently. easyGUI supports virtually all color and monochrome displays, C compilers, and micro-controllers. easyGUI is your complete visual development system, offering an advanced screen handling system, comprehensive font system, full graphical library, and multi-lingual application support with optional Unicode mode for Asian and Middle-east languages.
easyGUI is a complete development system intended for creating the visual part of a modern display-based embedded system.
easyGUI will save precious development time, because much of the time-consuming development work on visual components are moved from traditional direct coding to an efficient visual PC application.
easyGUI is intended for pure embedded systems, meaning that the easyGUI graphical library, and all code and data produced by easyGUI are in plain C, linked to and fully controlled by your embedded application.
In traditional embedded development all coding is done directly in the C code of the target system. This approach is slow and cumbersome for graphical tasks, as a lot of trial and error is necessary before a satisfactory result is reached. easyGUI takes advantage of the PC as an excellent platform for graphical, or visual, applications. easyGUI moves the visual part of the target system programming from C coding to a visually oriented PC application.
Data in the easyGUI application are maintained in projects, where each project is set up for a specific display size, orientation, color depth, character mode (ANSI / Unicode), etc. Each easyGUI project is contained in a single file. Internally an SQL relational database is used, for maximum efficiency and security, ensuring the highest possible standard for data safety.
Any number of easyGUI projects can be created under an easyGUI license. There is no royalties, footprints or further fees per project nor per produced item.
The easyGUI application creates a number of c and h files, based on the data in the easyGUI project. These files, along with the easyGUI graphical library, the easyGUI display driver, and other target system source files, are compiled and linked into the finished target system binary file.
easyGUI has been developed from the beginning by embedded people, for embedded people, with a constant view on the usually limited resources available. Our extensive knowledge of embedded development ensures that the easyGUI library strikes an optimal balance between low memory usage, and fast display rendering.
easyGUI is based on a PC development center. All fonts, screens, translations, etc., are created and handled in the easyGUI PC application, which then generates data in the form of C files, for direct inclusion in the target system firmware source.
Designing the GUI on the PC offers substantial benefits regarding time used, as user interface development work is by nature very visually oriented. Thus easyGUI moves major parts of the user interface development work from embedded C code to the development center. This approach also makes it simple to develop PC simulator applications for early development / evaluation, marketing purposes, service people education, document writing, etc. Another major advantage of the PC simulator is that large parts of firmware development can be performed even before any hardware exists for the project.
All easyGUI packages include a full font editor, multilingual support, a large number of display drivers, display rotation, and much more. easyGUI Unicode supports 16 bit character codes, making it easy to develop firmware with e.g. Asian and Middle East languages using special, and often very large character sets. All easyGUI packages except easyGUI Monochrome support any color depth up to 24 bits per pixel.
The easyGUI library handles all aspects of the display handling, from initialization to screen rendering. Touch screens are of course supported. No pre-compiled source is used, everything is in plain C code.
Quick Facts about easyGUI:
Supports virtually all monochrome, grayscale and color display controllers
Independent of microprocessor type
Independent of kernel / OS
Supports ANSI C compiler systems
Multi-size proportional fonts
Reduces project time and resources
Start programming before your hardware is ready.
Compatible with single-task and multitask environments, with or without an RTOS.
No runtime/product licenses!
Rapid prototyping through easySIM PC simulator
Efficient use of embedded resources
Sounds interesting? Read on!
Use monochrome, grayscale and color displays with any controller
Because the easyGUI library is independent of the actual display type used you are not bound by display limitations when designing the user interface. The display is simply treated as a graphical canvas, where the individual pixels are addressable.
The GUI is internally always considered in full color, and then reduced to what the hardware in question permits, when easyGUI generates files.
Any display with graphical capabilities, i.e. where each pixel is individually addressable, can be used. That covers most LCD displays on the market today. Also other display technologies can be used, e.g. plasma, fluorescent, OLED, etc.
The connection method between display controller and microcontroller can be of any type, as the easyGUI display driver is simply adapted to the connection method in use. Microcontrollers with Build-in display controller can also be used.
easyGUI considers true two color displays (pixels either on or off) as monochrome, and all other types as color.
easyGUI Monochrome supports the full set of graphical capabilities in monochrome color, i.e. 1 bit/pixel.
easyGUI Color and easyGUI Unicode supports color depths from 1 bits/pixel through 2, 4, 5, 8, 12, 15, 16, 18 up to 24 bits/pixel (true color). Color modes can be grayscale, palette based, and direct RGB values.
Use all LCD sizes
easyGUI has no formal limit to display resolution. Any resolution in both width and height can be defined, including odd numbers. We have customers running 800×600 pixel displays.
Mount the display as you like
The display can be oriented in any of the four primary directions (normal, left, right, upside down) without any limitations on the user interface.
Use ready-made high quality proportional fonts
easyGUI comes with a broad range of fonts, from small 3×7 pixel matrix characters to big 18×30 pixel matrix characters, tailored for embedded use. easyGUI Unicode additionally contains several full Unicode fonts, with character sets for a large number of languages, like Simplified Chinese, Hiragana (Japan), Katakana (Japan), Kanji (Japan), Hangul (Korea), Thai, Farsi (Arab), Hebrew (Israel), Cyrillic (Russia), Polish and Greek.
All fonts can be shown as proportional, with fixed spacing, or specially formatted for numerical columns.
Furthermore underlining can be selected as well as free selection of foreground and background colors.
Text can be placed on any pixel location, and aligned as desired (left/center/right).
Paragraph text (multi-line text items) is also fully supported.
For code reduction easyGUI compresses all font data, and contains advanced functions for font character selection, especially important for large Unicode fonts with 10000’s of characters.
Add or edit fonts
Fonts of different sizes and shapes can be created and managed, using the flexible built-in font editor.
Each font can contain 224 characters (ANSI 8 bit character codes, easyGUI Monochrome and easyGUI Color) or 65504 characters (Unicode 16 bit character codes, easyGUI Unicode).
All character codes used in the supplied fonts adhere to the Windows and Unicode standards, making text entry though a PC a non-issue.
Icons and fonts can be created, based on imported bitmaps.
Windows fonts (TTF and OTF) can be rasterized and converted to easyGUI format.
easyGUI UNICODE additionally supports Unicode (i.e. a 16-bit character encoding) that encompasses many characters used in general text interchange throughout the world.
easyGUI UNICODE enables you to use e.g. Farsi (Arabic), Hebrew, Cyrillic, Indian, Japanese, Chinese, Korean, Thai & other Asian fonts on all graphics LCD displays, independent of the capabilities of the display controller.
Many embedded applications requires the ability to display texts in different languages. easyGUI provides full support for multi-language texts with the built-in translation tool.
In the easyGUI PC development system a Language window allows translation work to be performed, with instant visual feedback for both reference and translated languages, to ensure rapid and efficient translation work:
If external translators are used the easyTRANSLATE stand-alone utility might come handy. easyTRANSLATE does not contain any functionality not found in easyGUI, it merely allows remote translation to take place. A translation file is exported from the easyGUI project and shipped to the translator, along with the easyTRANSLATE utility. Upon completion of the translation work the translator returns the language file, which is then imported back into the easyGUI project.
The visual aspect of your user interface is developed in the easyGUI PC development center, a standard application running under Windows, which is well suited for such visual applications. The old style of development, with coding directly in the target system, is much slower, because of the trial and error approach necessary – especially if the compiling/linking process is slow this approach can be a significant burden.
The easyGUI data and library files are compiled and linked as an integral part of your target system. But what exactly are these easyGUI files? Breaking it into a little more detail explains this:
easyGUI generates a set of data files, containing setup, fonts, GUI designs, etc., which along with the easyGUI library, supplied as plain C source, and a display driver adapted to your specific display hardware, are compiled and linked into the target system application.
The easyGUI development center (the PC application) contains all data (fonts, displays, setup, translations, etc.) in a database, with one file per embedded project. These database files all have a common format, so that later upgrading from e.g. easyGUI Monochrome to easyGUI Color is a trivial process.
easySIM PC simulator
With easySIM the output on the target system display can be simulated on the PC, as a standard Windows application. All that is needed is the easySIM add-on package, and a suitable compiler. The display output produced by easySIM is 100% the same as on the target system, as it is exactly the same library used. For many purposes this is a big advantage, be it for demo, simulation, test, or other purposes.
easySIM can be employed in many levels of complexity, ranging from simple representations of the display images, up to complete emulations of the target system, including hardware simulation, depending on the purpose of the simulation.
easyGUI Unicode can handle two types of character encoding: ANSI and Unicode. Both are standards widely used in the IT world. The Unicode package is the only package able to work with the Unicode standard,the Color and Monochrome version, supports ANSI character encoding only.
ANSI as used by easyGUI covers 224 characters from code 32 to 255. The encoding is the same as used by Microsoft Windows, making text entry easy. Most Western languages are covered by this character set, as both standard characters and some special national characters are included. Each ANSI character takes up 1 byte.
The fonts included with your easyGUI package, are designed to meet most needs for fonts in any project, they are specially designed with screens in mind and comes in wide a variety of sizes.
Fonts included with easyGUI:
|Font name||Font size|
|ANSI 7 bold||7×11|
|ANSI 7 condensed||5×11|
|ANSI 11 condensed||8×17|
|ANSI 11 light||6×17|
|Unicode 7/14 bold||15×16|
Unicode fonts in easyGUI.
Unicode is a standard which includes almost all languages in the world. Each Unicode character takes up 2 bytes, the memory consumption for texts are thus double that for ANSI texts. Unicode characters are subdivided into code charts, with each chart covering a range of characters for a specific national or geographic entity. Please read more about the basics of Unicode here.
Currently the following languages are supported:
- Western languages (ANSI character set)
- Cyrillic (Russia)
- Hebrew (Israel)
- Hangul (Korea, about 12.000 characters)
- Simplified and traditional Chinese (about 20.000 characters)
- Hiragana (Japan)
- Katakana (Japan)
- Kanji (Japan)
Please note that not all our Unicode fonts are complete. If you are in need of a special character not included in a font, we offer to design it as a Special order.
Unicode sizes in easyGUI:
You will also receive our Unicode fonts in 3 different sizes:
The easyGUI font import function
If the included fonts does not meet your font needs, you have the option to make your own fonts with the import function in easyGUI. This function also makes it possible to design your own Icon fonts.
When importing Windows fonts into easyGUI (or other systems targeted at the embedded world) they must be converted from vector graphics to raster graphics. This process involves a number of pitfalls. We offer some good advice for when importing vector fonts in the easyGUI manual (Please see the “ TTF Import” chapter).
If you are in need of a different font, icon font, Unicode font or any specialty font, we offer custom made easyGUI fonts. We will make it to match your specifications to the smallest detail. Our fonts are always designed from scratch. Please contact us with your font requirements, to hear about prices and development times.
easyGUI is a standard 32 bit PC application, running under the Windows operating system. Minimum requirements and recommendations are:
A Pentium processor-based or compatible computer.
At least 256MB of RAM. 1GB RAM or more ensures faster execution of memory intensive operations.
At least 150MB of free hard disk space. Additional hard disk space will be needed for each embedded project.
Windows 7/Vista/XP/2000/8/10. The system will not work properly under Windows 95/98/ME, or earlier.
Minimum screen resolution 1024×768 pixels. Any standard PC and monitor will usually do fine, but the bigger the better. Screen resolutions of 1280×1024 pixels or higher will give substantial benefits in the user experience.