Sophisticated GUI for Your Embedded Platform
Embedded GUI technology that enables you to create platform-independent and high-performance graphical user interfaces (GUI), even on resource constrained microcontrollers.
Human Machine Interfaces and embedded GUIs have gone thru a transformation driven by the popularity of smartphone devices and their look & feel. Consumers are expecting to see products with larger screen, touch GUIs, and easy user interface experience. Emprog in partnering with Embedded Wizard is now providing a high end GUI for embedded MCUs, a GUI technology designed specifically for limited resource microcontrollers.
• Comfortable IDE with drag & drop graphical assets
• Visual programming with WYSIWYG and instant prototyping of UI look and feel
• Simple programming model includes object-oriented programming support, generating ANSI C
• Platform independent implementation of GUI logic
• Ready-to-use widgets, effects (rotation, scaling & perspective transformation each with high- and low-quality), animations, layout functions, etc.
• Agnostic to different input mechanisms: (Multi-)Touch, hard-buttons via GPIO, voice control, …
• No (RT)OS (i.e. tasks, semaphores, etc.) is required, GUIs can run on bare metal UNICODE based
• Supporting various color depths/formats: RGBA8888, RGB888, RGBA4444, RGB565, Index8, LumA44
• Optional support of external TrueType Font Rendering Engine (e.g. FreeType)
GUI for Embedded Constraints: Flexible GUI adaptation based on resource constraints MCUs allowing shift between Flash/RAM to optimize usage of resources; and shift between CPU vs. memory consumption for rendering.
Software Architecture and Patterns: Project related architecture with selection of the appropriate patterns, you can select your preferred model: MVP, MVC. MVVM, Observers
High-performance UIs on low-end platforms: Minimize the time between user interaction and graphical response. Add animations to show state changes. Select optimal animations based on the hardware and use case
Localization, Internationalization, Globalization: Country-specific formatting (Date, Currency, Measurement units. Fonts and Translation / Preparation.
Skinning / Theming: Multiple product lines / brands; Different feature sets; Compile time skinning to reduce ROM footprint; Runtime skinning to allow dynamic skin switch
GUI Simulation: Make the GUI development more effective; Test the GUI even before you get the hardware; Create demo modes for presentations and trade shows; Create GUIs dedicated for training
Multi-Display GUIs: Control different displays simultaneously, e.g.: Device with a normal touch screen + a small info screen; Device with touch screen + HDMI connection; Device with screen + remote control with screen
Impress Your Customers with a Sophisticated GUI for Your Device!
Embedded Wizard lets you create GUIs that easily adopt the User Experience of smartphones with astonishingly fast animations, gorgeous graphics and smart effects
Integrated Development Environment
With Embedded Wizard Studio’s fully integrated IDE, developing graphical user interfaces for embedded devices is easy. Sophisticated utilities, like the object browser and the ‘element inspector’, provide you with an easy overview of the application structure and give you quick access to its members. You will find everything you need in one familiar place.
1. WYSIWYG (What You See Is What You Get) Editor
Create GUI applications by clicking, dragging, and connecting visual with logical components using the mouse. Benefit from instant WYSIWYG and evaluate your GUI’s appearance at every step of the design process. Even target constraints, like limited color range, can be displayed in the IDE.
Due to Embedded Wizard’s consistently graphical approach, even non-visual elements such as methods, variables, and classes, are represented as individual and distinct icons. This helps you to stay in the world of GUIs and supports you with a smooth development workflow.
2. Mosaic Class Library
Ready-to-use components in the Mosaic Class Library simplify the programming process of Embedded Wizard.
3. Programming Language “Chora”
Enjoy fast development and easy-to-maintain code thanks to Embedded Wizard’s programming language, Chora. It is fully object-oriented, platform independent, highly stable, and easy to learn and the integrated Garbage Collector takes care of the used memory. Moreover, Chora is enriched with features specifically for User Interfaces (e.g. colors, fonts, forms, themes, styles, languages, UI patterns such as MVC, MVP, MVVM, and others).
With Embedded Wizard’s instant Prototyper you can verify step-by-step your GUI’s design, behavior, and usability. All this directly within the IDE with no need to program the target device.
The integrated debugger enables the step-by-step execution of ‘Chora’ statements, the setting of breakpoints and inspection of all variables, objects, and the call-stack.
By highlighting only the visible areas to be updated, you can already identify possible bottlenecks during your development phase.
To document the structure of your GUI application, Embedded Wizard can automatically create Microsoft HTML help files (chm), which are especially helpful when transferring your project to colleagues, customers or third parties for maintenance and modifications. This documentation of your GUI describes components, shows their inheritance and lists their members. Developers also have the option to enter additional descriptions that are available for every member of the project.
Embedded Wizard Studio supports multiple platforms within one GUI project. In conjunction with corresponding Platform Packages, you can port and run the same GUI on different platforms – without having to re-program the entire user interface again from scratch.
Multiple Skins & Layouts
Embedded Wizard Studio facilitates the handling of different themes, layouts, screen resolutions, and color schemes within one GUI project. Variations of an HMI can be determined at compile-time or switched during runtime
Abstraction Layer and Runtime Environment
To execute the created GUI application on an embedded system, an abstraction layer is used to close the gap between the generated GUI application and the dedicated environment (e.g. accessing the visible framebuffer, memory, and timer ticks). These items are included in Embedded Wizard’s Platform Package. In addition to this, the Platform Package contains Embedded Wizard’s runtime environment, which is essential in order to run the generated UIs smoothly on a dedicated platform.
Chora’s compiler (the so-called Code Generator) evaluates the GUI application, the Chora source code and the developed components and translates them into a programming language supported by the compiler for the target system, e.g. ANSI-C. The modular Code Generator is loaded into the Embedded Wizard environment during the code generation and can also be invoked as a stand-alone utility within your automated build environment.
Optimized Code Generation Process
Within an Embedded Wizard GUI project, you are able to easily define, during the code generation process, which exact character set should be used later on. Hence, only the required character set is transferred and this reduces the overall memory footprint. Of course, it is also possible to use a dedicated font rendering engine on the embedded system if many characters (e.g. Chinese) should be rendered during runtime.
Only Updating Dirty Areas
It is often not useful to update the entire surface if only small areas of the screen have to be updated, as this has an impact on the rendering time. Embedded Wizard default behavior is to update only those areas that have been modified since the last update cycle.
Only Drawing Visible Elements
By taking advantage of a queue-based processing engine, only the resulting visible parts are finally drawn. This means that invisible areas are not updated, and this increases the frames per second significantly.
Adaptive Palettes for Index8 Color Formats
If you intend to use our Index8 Platform Package in order to significantly reduce memory consumption, this does not mean that you will get a bad-looking GUI on your screen: With Embedded Wizard you have the possibility to generate your customized color look-up table (CLUT) depending on your dedicated HMI project. With this you will get a true color-looking result – but with a total of just 256 different colors.
Support of Any Color Format
RGBA8888 (32bit), RGB565A8 (24bit), RGB888 (24bit), RGBA4444 (16bit), RGB565 (16bit), Index8 (8bit), LumA44 (4bit grayscale), E-ink and E-paper (grayscale, monochrome)
Mosaic Class Library
Mosaic was designed with a focus on the UI requirements of display devices, specifically in multimedia, camera, industrial, home, and medical devices. Mosaic simplifies the programming model of Embedded Wizard.
All components and widgets can easily be copied, modified, and extended in order to achieve any desired look and behavior.
• Analog displays
• Scroll lists with ‘friction’ (as known e.g. from the iPhone)
• Virtual keyboards
User Input Events
Embedded Wizard makes handling of gestures and multi-touch events very easy: Just place the desired gesture of the touchable object and connect it to a piece of code to be executed.
• Single- and multi-touch
• Remote control
• Hardware button
• Any custom events
Animations and 3D Effects
Embedded Wizard Studio supports GUI developers in realizing GUI concepts with rich effects and 3D appearance for embedded platforms. The creation and modification of 3D effects is seamlessly integrated into the familiar workflow, so that no dedicated 3D tool know-how or OpenGL programming skills are required
Multi Language Support
Develop multilingual applications, which can adapt text, graphics, fonts, and even layout for each language. Thanks to UNICODE support, GUI applications can combine Greek, Cyrillic, Japanese, Chinese, and other notations within a single text. Whenever the current user language is switched, all dependencies are evaluated and displayed automatically.
A powerful infrastructure to implement multi-screen GUI applications more convenient and to handle the transitions between them. With this concept the GUI components intended to represent the individual screens are designated as Dialogs. During the course of interaction, you can present, dismiss and switch between the dialogs. Thus implementing even demanding requirements, like a complex menu, is an easy ride.
Your HMI Project on Any Platform, Any Device and Any Operating System – or Even on Bare Metal
Embedded Wizard allows you to develop HMIs platform-independently. To port your GUI project to your dedicated environment, the platform-specific code is generated with the help of a so-called Platform Package. All target-specific aspects, such as the CPU architecture, operating system, and color format of the screen, are managed here. The Platform Package also includes the Chora compiler, which generates the code that will be executed on the target platform – in most cases ANSI-C.
* Embedded Wizard is a trade mark of TARA Systems GMBH, Gmunder Str. 53 81379 Munich Germany