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.
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