|
Features
common to all packages
General
- Any 8/16/32-bit CPU; only an ANSI "C" compiler is
required.
- Any (monochrome, grayscale or color) LCD with any controller
supported (if the right driver is available).
- May work without LCD controller on smaller displays.
- Any interface supported using configuration macros.
- Display-size configurable.
- Characters and bitmaps may be written at any point on the LCD,
not just on even-numbered byte addresses.
- Routines are optimized for both size and speed.
- Compile time switches allow for different optimizations.
- For slower LCD controllers, LCD can be cached in memory, reducing
access to a minimum and resulting in very high speed.
- Clear structure.
- Virtual display support; the virtual display can be larger than
the actual display.
Modular Design
Its design is modular, consisting of different layers
in different modules. One layer - called the LCD-driver
- covers all access to the LCD. µC/GUI works with
all CPUs, since it is written in 100% ANSI-"C".
uC/GUI consists of 4 layers, which can be used individually:
Layer 4: Windows manager
Layer 3: Control library
Layer 2: Graphic library
Layer 1: LCD Driver(s)
Display drivers (Layer 1)
A display driver supports a particular family
of display controllers (typically LCD controllers) and all displays
which are connected to one or more of these controllers. The driver
is essentially generic, meaning it can be configured by modifying
the configuration file LCDConf.h. The driver itself does not need
to be modified. This file contains all configurable options for
the driver including how the hardware is accessed and how the controller(s)
are connected to the display.
Configurable options include the following:
| LCD_XSIZE |
horizontal resolution |
| LCD_YSIZE |
vertical resolution |
| LCD_XORG |
horizontal position on the logical screen |
| LCD_YORG |
vertical position on the logical screen |
| LCD_MIRROR_X |
mirrors horizontal axis if activated |
| LCD_MIRROR_Y |
mirrors vertical axis if activated |
| LCD_SWAP_XY |
swaps x/y axes |
2D Graphic library (Layer 2)
µC/GUI contains a complete 2D graphic library, which
should cover the needs of most applications. The routines
supplied with µC/GUI can be used with or without
clipping and are based on fast and efficient algorithms.
The horizontal and vertical line routines do not use the
single-dot routines in order to assure maximum speed.
All required graphic routines such as drawing points,
lines, circles are part of the software. An efficient algorithm
to draw arbitrary polygons is implemented. Bitmaps of any
size and color depth (1/2/4 or 8 bits per pixel, usually
generated by the Bitmap Converter) may be shown at any
place on the display. All functions can work in OR- XOR-
and AND mode, so visualizing in real time is no problem.
The basic drawing routines allow drawing of individual
points, horizontal and vertical lines and rectangles at
any position of the display. All available drawing modes
can be used with these routines since these routines are
called frequently in most applications, they are optimized
for speed as much as possible. Most of these routines do
not require floating point calculations; currently only
the DrawArc set of functions does.
Window Manager (Layer 4)
- Complete window management including clipping. Overwriting of
areas outside a window's client area is impossible.
- Windows can be moved and resized.
- Callback routines supported (usage optional).
- Window Manager uses minimum RAM (app. 20 bytes per window).
Optional Widgets/Dialogs (for PC look and feel) (Layer 4)
- Widgets (window objects, also known as controls) are available.
They generally operate automatically and are simple to use.
-
A dialog box (or dialog) is normally a window that appears in order to request input from the user. This widget is included in the Window Manager/Widget package which is optional.
Fonts
µC/GUI is shipped with a lot of fonts to cover most
customer's needs. The standard font package contains monospaced
and proportional fonts in different sizes, bit digit fonts,
bold, regular and magnified fonts.Basic fonts follow the ISO 8859-1 character set. The Standard libray contains
30 proportional fonts and 19 monospaced fonts.
µC/GUI support Unicode. Additional fonts and character sets can be added by using
the optional µC/FontConvert
tool.
Antialiasing

|
Antialiasing is the smoothing of lines and curves. It reduces the jagged, stair-step appearance of any line that is not exactly horizontal or vertical. µC/GUI supports different antialiasing qualities, antialiased fonts and high-resolution coordinates. It is an optional package. |
Memory device contexts available
 |
Memory device contexts allow creation of a section to output to the display in the memory of the CPU. All drawing operations can be used. When the image has been build completely, it is transferred to the display in a single operation, allowing flicker free updates even with slow CPUs or slow displays. |
Multi layer/ Multi display support
 |
More and more graphic controller manufacturer (Fujitsu/Toshiba) offer a flexible layer concept. The multiple layer/multiple display feature allows you to access more than one layer. It also allows you to use multiple displays in your embedded application. This feature is part of the basic package. You do not need additional software to use the multi layer support. Right now up to 5 layers/displays can be supported. |
Touch screen & mouse support
 |
Touch screen support for analog touch panels is available. This includes a low level dirver,which handles the analog input (from an 8 bit or better AD-converter), debouncing and calibration of the touch screen. The window manager deals with touch messages and widgets such as button objects. It takes no more than one line of code to create a button or another widget, which then automatically handles touch messages and reacts accordingly.
|
VNC Support
 |
VNC stands for "Virtual Network Computing". It is, in essence, a client server system based on a simple display protocol which allows the user to view a computing 'desk- top' environment not only on the machine where it is running, but from anywhere on the Internet and from a wide variety of machine architectures. Client and server communicate via TCP/IP. µC/GUI VNC support is available as a separate package. |
Windows simulation using Microsoft Visual C++
 |
A simulation environment under MSVC++ is available. It can be used to write and test the entire user-interface on the PC (all routines are 100% identical to your embedded application, no matter what CPU or LCD you are using). This makes debugging and development easy and convenient. Generating screen-shots of the LCD is a snap. These screenshots can then be inserted into documentation. µC/GUIView, a separate program shows the contents of the simulated LCD even during debugging. |
Touch screen simulation
The touch screen simulation is integrated into the regular µC/GUI simulation. Mouse events are used to simulate the touch screen. the
simulation can be used to write the user interface of your application
and can be send as a simple exe file to anybody for discussion, demonstration
or verification.
PC Tools
Samples
A lot of samples "C" code are provided to demonstrate µC/GUI features. They also can be used by customers in similar applications.
|