bf CGI studio contributed article
With the advances in graphics content for display-enabled embedded
systems, efficient and easy-to-use HMI/GUI (Human Machine
Interface/Graphics User Interface) tools are becoming increasingly
important. Such tools enhance the system developer’s ability to
input a design, develop and verify the application, and rapidly
deploy it to the target system.
They help throughout the entire
process—from rapid prototyping of user interfaces all the way to
serial development of the embedded system—saving time and money.
Almost as important, the tool needs to complete these steps easily
and cost-efficiently, with a process flow that is as seamless as
Some desirable traits of an HMI tool include cost effectiveness,
seamless operation, separation of code and UI data, and system
benchmarking. A specific tool from Fujitsu, CGI Studio, provides
Tool Cost Factors
The HMI tool should allow early evaluation of HMI development. The
tool should be structured to support design reviews, even in the
early stage of the project. It should also conveniently support
changes to the project implementation (such as graphics content) in
the later stages of the project. All these factors contribute
towards making the tool cost effective.
For example, the HMI tool should give a realistic preview of the
graphics and scenes as soon as they are imported. This is
implemented within the IDE of the tool and enables the designer to
have a WYSIWYG view of the graphics. Another requirement is the
ability to run and immediately verify widgets or business logic
imported into the tool. This is only possible if the HMI tool has
the capability to simulate graphics application on the host PC.
The HMI tool should allow changing the look and feel of the graphics
without needing to recompile or rebuild the project (re-skinning).
This can be achieved by separating code and graphics data from the
beginning of the project. For example, from the outset of the
project, the graphics designer can churn out 2D and 3D graphics
using industry-standard tools such as 3D Studio Max or Maya.
Independently of the graphics design, the software engineer can work
on business logic to assign behavior to the graphic elements. The
two elements can then be imported into the tool and verified
together accordingly. If needed, the look and feel can be changed
later simply by re-importing the new graphics assets without
affecting the business logic.
The HMI tool should have the capability to be easily integrated into
the existing tool chain environment, and should be usable in all
stages of application development. This results in a seamless
process flow that brings many benefits to the table, including cost,
easy tool management, and a common knowledge basis. The people
involved in the project—the studio artists, technical artists, and
embedded engineers—can focus on their individual roles. The studio
artist can design the 2D or 3D graphics content in the
industry-standard studio tools and can then use the HMI tool for
preview. The technical artist can import that graphics content into
the HMI tool and use the graphics to create scenes using appropriate
lighting and composition. (The technical artist also focuses on the
graphics, but his work is more hardware-aware than that of the
studio artist.) Finally, the embedded engineer can add his business
logic, which will assign appropriate behavior to the graphics
elements as required by the application.
Figure 1: Different Roles in Graphics
Application Development Using HMI Tool
The tool chain should also support a flexible licensing model for
use in a variety of situations, such as tool evaluation, rapid
prototyping of a reference application, and product development. The
user's cost should be based on need.
Separation of Code and UI Data
The HMI tool needs both the UI data (e.g., graphics assets such as
bit map files, 2D/3D models, asset properties) and code that defines
the application behavior. The code embodies business logic and could
possibly be generated by a state machine tool or hand coded. In the
latter case, the tool should allow the standard programming
languages within the software community. The HMI tool should be
structured in a way that the UI data is strictly separated from the
code portion. The resulting advantage is the ease of changing the
look and feel of the graphics without touching the code or needing
to rebuild it. The old UI data in the tool output is simply replaced
with the new data without rebuilding the entire application.