For dynamic graphics in industries such as avionics, code generator tools have been employed. These work by taking a graphical specification of the HMI and, optionally, its logical behavior created by a developer using tools and generating source code to implement the HMI. This code is integrated through a compilation and linking process into an embedded system, and may also be retargeted to desktop training and prototyping systems. An advantage of code generators is that they are often designed to work within a known software architecture or application framework, easing the design burden on the developer, who may use the code generator to customize the design for his application.When used for HMIs, code generators most often generate code that is conformant to a graphics API, such as OpenGL. This is done so the generated code can take advantage of hardware-accelerated graphics drivers. Unfortunately, directly generating graphics driver calls does not support open architecture, because graphics drivers are too close to the hardware and are not standardized. A more robust solution would support usage of an HMI in an efficient manner, but without binding the HMI to a particular hardware implementation.
For user-interface elements, including commonly used widgets, dialog boxes, and menus, a more common approach is to use a GUI builder tool to create the display; the tool creates a resource file that can be loaded at runtime by a UI system. Developing HMIs using this approach is typically faster than code generation, but tends to limit the developer to a very narrow widget set, which is good for standardization but poor for allowing freedom of development. Also, this approach does not allow for optimization. This approach also depends heavily on the existence of an underlying UI system, such as X/Motif, Microsoft Windows, or ARINC 661 CDS for avionics.
Subscribe today to receive the INSIDER, a FREE e-mail newsletter from Embedded Technology featuring exclusive previews of upcoming articles, late breaking NASA and industry news, hot products and design ideas, links to online resources, and much more.