Automotive User Interfaces and Interactive Vehicular Applications
Automotive User Interfaces and Interactive Vehicular Applications
Automotive User Interfaces and Interactive Vehicular Applications
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Libraries containing multiple Controller-Widgets can serve as a<br />
modular system. These libraries need to be offered in both, the<br />
tool used for graphical HMI-development as well as the one for<br />
behavior modeling. To integrate both of these into a single<br />
toolchain, they need to share information about types <strong>and</strong><br />
instances of Controller-Widgets. This can be achieved by enabling<br />
the behavior modeling tool to query the available widget instances<br />
from the graphical HMI-development tool. The behavior<br />
modeling tool also needs to be notified when a set of widget<br />
instances was changed. It uses this information to make their<br />
properties available for data binding. That way, design <strong>and</strong><br />
behavior are loosely coupled in terms of functionality <strong>and</strong><br />
development workflow. Thus, Controller-Widget libraries enable<br />
seamlessly integrated toolchains for design, behavior <strong>and</strong> the<br />
integration of these major HMI development aspects.<br />
6. EXAMPLE: CGI-STUDIO<br />
CGI-Studio is a tool suite from Fujitsu Semiconductor Embedded<br />
Solutions Austria GmbH (FEAT) that enables the hardwareindependent<br />
development of 2D, 3D, <strong>and</strong> hybrid 2D/3D HMIs<br />
based on Controller-Widgets. CGI-Studio focuses on graphical<br />
development aspects <strong>and</strong> currently consists of the following<br />
components:<br />
- Scene Composer: a tool for authoring graphical HMIs<br />
- CGI Player: a run-time environment for HMI application<br />
development, simulation, validation on host <strong>and</strong> target<br />
environments<br />
- CGI Analyzer: a tool for design optimization regarding<br />
memory consumption <strong>and</strong> performance on target systems.<br />
More tools are currently in development <strong>and</strong> there are plans for<br />
more as well, such as a tool for translating HMI into different<br />
languages. CGI-Studio contains the 2D <strong>and</strong> 3D rendering engine<br />
C<strong>and</strong>era that is designed for automotive target platforms based on<br />
OpenGL ES 2.0. Moreover, additional components are available<br />
such as the CGI Widget Library.<br />
Graphical designs including 3D models, animations, textures,<br />
materials, fonts, images, <strong>and</strong> scene-graphs can be imported to<br />
CGI-Studio Scene Composer using FBX or other image <strong>and</strong> font<br />
formats. The imported assets can be used to model complex<br />
screens while adapting them for the rendering technology of the<br />
target. Scene Composer also supports importing <strong>and</strong> creating<br />
OpenGL shader programs <strong>and</strong> applying OpenGL ES 2.0 specific<br />
effects. Animations can be imported <strong>and</strong> modified or created from<br />
scratch. These animations can be assigned to multiple graphical<br />
elements. Iterative workflows are supported by enabling repeated<br />
Figure 5 – Workflow <strong>and</strong> Roles using Controller Widgets<br />
imports of updated designs without losing previous modification<br />
to them performed in Scene Composer. By this means Scene<br />
Composer addresses the role “Technical Artist” by providing for<br />
its common tasks.<br />
The widgets in CGI-Studio are based on the Controller-Widget<br />
concept. These widgets need to be programmed manually because<br />
on this level of detail the usage of compilable code has proven to<br />
be beneficial in the past. Of course, the widgets can also be<br />
implemented using different techniques, such as model driven<br />
development <strong>and</strong> code generation. Once a generic Controller-<br />
Widget library is available no coding is required to model the<br />
HMI.<br />
CGI Player is an out-of-the-box HMI run-time environment that<br />
can be integrated into state of the art IDEs (e.g. Microsoft Visual<br />
Studio). The aim of this tool is to support the development of<br />
CGI-Studio widgets <strong>and</strong> the HMI application layer. During the<br />
widget development the CGI Player can be launched from the IDE<br />
which enables short edit-compile-debug cycles. The widgets are<br />
built on the API of the platform-independent C<strong>and</strong>era Graphic<br />
Engine. This engine is designed for the target system but is also<br />
used in CGI Player to simulate the HMI on a host environment.<br />
Hence there is no porting effort or a need for multiple<br />
implementations of the widgets. Instead, following the concept of<br />
a single source, the same widgets can be used for both purposes.<br />
Because of tight development schedules the widgets <strong>and</strong> the<br />
graphical design are typically developed in parallel. That is why<br />
CGI-Studio supports the aforementioned mechanism to couple the<br />
Controller-Widgets to the graphical elements in a flexible way.<br />
The HMI models created in Scene Composer are exported as an<br />
“Asset-Library” which contains the scene graph <strong>and</strong> all its<br />
artifacts such as 3D models, animations, bitmaps, <strong>and</strong> fonts. It<br />
also contains the information about widget instances <strong>and</strong> their<br />
properties including their connection to graphical elements. CGI<br />
Player loads the Asset Library <strong>and</strong> renders the HMI using the<br />
C<strong>and</strong>era Engine. Because of the interpretative approach, no timeconsuming<br />
compilation steps are necessary which allows for very<br />
short iteration-cycles.<br />
CGI Player provides a customizable user interface to manipulate<br />
the widgets’ properties for testing purposes. The software of the<br />
HMI layer is the same with that which runs in the target system<br />
<strong>and</strong> the same APIs are available to control this HMI layer. The<br />
only difference is that in the target system the CGI Player’s user<br />
interface is replaced by the state machines of the behavior model.