30.11.2012 Views

Automotive User Interfaces and Interactive Vehicular Applications

Automotive User Interfaces and Interactive Vehicular Applications

Automotive User Interfaces and Interactive Vehicular Applications

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!