Embedded Wizard

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Embedded Wizard
DeveloperTARA Systems GmbH
Initial release2003
Stable release
V13 / November 29, 2023; 2 years ago (2023-11-29)
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inC++
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemWindows, Linux using Wine
    Available inEnglish
    LicenseEmbedded Wizard - EULA
    WebsiteEmbedded Wizard

    Embedded Wizard is a graphical user interface tool developed and distributed by TARA Systems GmbH for creating graphical user interface (GUI) applications mainly for embedded systems, including microcontroller and microprocessor units. It provides a WYSIWYG front-end for editing graphics, effects and logic of the user interface and generates source code for particular target hardware. Embedded Wizard is independent of a specific graphics hardware, color format or input mechanism. It supports object oriented programming and does not require a Real-time operating system/Operating system, allowing GUIs to run on bare metal.[1]

    Embedded Wizard is mainly used to develop GUI applications for products in the area of industrial automation, consumer electronics, home appliances, medical industry, automotive industry and products equipped with a graphics display with or without a touch screen.

    History

    [edit | edit source]

    The first version of Embedded Wizard was released in 2003 by TARA Systems GmbH, an embedded software development company located in Munich, Germany. It was intended as a successor of previous GUI tools from TARA Systems GmbH, like M2-Builder. In contrast to former tools, Embedded Wizard enabled platform-independent development, introduced its own programming language Chora, and was designed to support object oriented programming and resource-constrained devices, such as microcontroller. Since the first version, the tool has been extended with new features like an integrated debugger, a memory footprint analysis of RAM and flash consumption or support for effects and animations with a 3D perception and vector graphics.

    Embedded Wizard was designed and developed by Paul Banach and Manfred Schweyer.

    Embedded Wizard IDE
    Embedded Wizard Platform Package Architecture

    Architecture

    [edit | edit source]

    Embedded Wizard consists of the Embedded Wizard Studio, a WYSIWYG IDE for creating and prototyping the user interface application, and a hardware abstraction layer, called Platform Packages, which are available for various embedded chipsets, operating systems and color formats.

    Each platform package contains a dedicated code generator and resource converter for bitmaps and TrueType fonts, which are adapted to a specific chipset, and - if available - operating system.

    Another platform package can be licensed, which generates JavaScript/WebGL source code instead of ANSI C.[2]

    Workflow

    [edit | edit source]

    Following the approach of object-oriented programming, each Embedded Wizard project consists of classes which implement a certain part of the design and/or functionality. The class library of Embedded Wizard, called Mosaic, is part of every project and provides the basic functionality for visual objects, focus handling, layouting, event handling and more.

    To create a graphical user interface, Embedded Wizard provides basic functions like rectangles, gradients, lines, (multiline) text boxes, import of bitmaps and TrueType fonts, but also GUI widgets like menus, scrollbars, buttons, and sliders.[3] Besides the visual objects, developers can create methods, properties, variables, and enums to implement a certain behavior, using Embedded Wizard's own programming language Chora.[4] Embedded Wizard follows the approach of visual programming. All logical elements, like methods, properties or variables are represented in the IDE as visual bricks. This enables developers, for example, to assign a variable as a parameter for a method by drag-and-drop.

    The members of the class library can be flexibly extended by developers according to their needs. The available Knowledge Base[5] accompanied by video tutorials and open community forum Ask Embedded Wizard[6] help the developer to get familiar with the technology.

    Embedded Wizard supports rapid prototyping and testing of the user interface. A debugger for the Chora code is integrated as well. During code generation, the Chora code is transformed into ANSI C code or JavaScript for a specific chipset, using the appropriate Platform Package. The generated C code needs to be compiled and linked with the runtime environment (RTE) and graphics engine (GE) of the platform package.[7]

    Availability

    [edit | edit source]

    The Embedded Wizard Studio is distributed by TARA Systems GmbH or its distributors as a per-developer license. The license consists of two parts: The Embedded Wizard Studio (i.e. the IDE), to develop graphical user interfaces (GUIs) on your Windows PC, and the Embedded Wizard Platform Package, which acts as an abstraction layer to the used embedded system, graphical subsystem and (RT)OS (if any).[8]

    Platform Packages are available for more than 70 various chipsets (as of 2024).[9] Embedded Wizard is a selected solution by many semiconductor manufacturers for their chipsets. A complete list of all supported chipsets and operating systems can be found on Supported Platforms

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]