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.

system (runtime skinning) by either the (secondary-) vendor or the<br />

customer (personalization).<br />

There are different ways to apply a skin depending on when it will<br />

be applied as well as who is the one who will be applying the<br />

skin. These are discussed below:<br />

5.3.1 Reconfiguring <strong>and</strong> changing resource files<br />

The simplest way to perform skinning is to exchange the resources<br />

of the existing software such as images, fonts <strong>and</strong> configuration<br />

files. In this approach the source code of the HMI is not changed<br />

(Figure 5). The skin is applied by copying the contained resource<br />

files to a designated location in the file system, possibly<br />

overwriting the previous ones. Such a process can be easily<br />

automated.<br />

Figure 5: Reconfiguring <strong>and</strong> changing resource files<br />

This approach is used by desktop-applications such as the<br />

Windows Media Player or the Winamp Player. It is also used by<br />

certain mobile phone manufacturers. This type of skinning can be<br />

done even after the deployment of the base software, because it<br />

does not require recompiling the software. Such skins have a<br />

simple structure <strong>and</strong> don’t require a lot of knowledge about the<br />

functional principles of the base software. Therefore, they can be<br />

created by customers, too.<br />

However, this approach requires that all skinnable elements exist<br />

in the HMI already. They also have to be implemented in such a<br />

way that all skin-specific information is read from external<br />

resources. This can lead to additional implementation efforts in<br />

the base software. As reading <strong>and</strong> evaluating resources happens at<br />

runtime, performance drawbacks can be expected compared to a<br />

conventional implementation. Therefore, this approach is typically<br />

limited to images <strong>and</strong> fonts.<br />

5.3.2 HMIs interpreted at runtime<br />

Some frameworks interpret HMI-models at runtime [10]. In such<br />

a case, skinning can either modify the interpreted models or the<br />

interpreter. If the rules that control the interpretation are<br />

modifiable [1,8,5], skinning can also be done by adapting these<br />

rules (Figure 6).<br />

Modifying the interpreter rules allows for a simple h<strong>and</strong>ling of<br />

skins since there is no need to maintain different interpreter<br />

software or modified versions of the large HMI-models.<br />

Skinning by modifying the interpreter or its rules leads to a<br />

different rendering of the original HMI models. It also alters the<br />

rendering of all other compatible HMI-models. Therefore, it can<br />

be used to achieve a specific look-<strong>and</strong>-feel for HMI-models<br />

unknown at development time, e.g., HMIs of dynamic services<br />

[8]. However, this technique requires expert knowledge <strong>and</strong><br />

therefore cannot be done by customers.<br />

Figure 6: HMIs interpreted at runtime<br />

In the case that a more specific adaptation is to be made, it is more<br />

reasonable to modify the interpreted HMI models directly instead<br />

of modifying the interpreter or its rules that affects the entire<br />

HMI. Initial models should not be changed since they are to be<br />

used in different vehicles, so skin-specific information can also be<br />

provided in a separate skin-model, which will override its<br />

counterparts from the HMI base model.<br />

Maximum flexibility can be achieved when the interpreter, its<br />

rules, as well as the HMI-models are all adapted within the<br />

skinning process.<br />

5.3.3 Automatically generated HMIs<br />

Adapting the initial HMI-models or providing skin-specific<br />

information in additional models can also be done if they are not<br />

interpreted at runtime but are used to generate code. Just like<br />

modifying the interpreter or its rule set, such a code generator <strong>and</strong><br />

its generation rules can also be adapted (Figure 7).<br />

Figure 7: Automatically generated HMIs<br />

Taking the skin-specific information into account during code<br />

generation, this approach reduces the number of decisions that<br />

have to be made at runtime. This allows for high runtime<br />

performance which in turn can reduce hardware costs. Such<br />

savings are especially significant when skinning is applied in<br />

order to use the same infotainment system for several br<strong>and</strong>s <strong>and</strong><br />

models. On the other h<strong>and</strong> extensive software has to be generated<br />

<strong>and</strong> compiled for each variant which leads to long turnaround<br />

times.<br />

5.3.4 Exchanging the HMI-software<br />

The previous chapter described how skinning can be implemented<br />

by modifying the code generator <strong>and</strong> the models it works on. As a<br />

result a different HMI-software is generated for each variant. The<br />

corresponding adaptations of the code can also be done manually<br />

if no model-driven development methods are applied

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

Saved successfully!

Ooh no, something went wrong!