Use Cases and Qt Tools

The safe UI contains safe indicators that are displayed on the screen. The indicators can be safe text, safe picture (single color icon), or safe image. The safe indicators are always working even if the main UI fails to operate correctly. This topis describes the main Qt Safe Renderer use cases for safe UI and related Qt tools.

Use Cases

The three main Qt Safe Renderer use cases are as follows:

  1. You use the QML Language to define the safe UI and you do not have the main UI at all. By using the related Qt and Qt Safe Renderer toolchains, you deploy the safe UI into one of the reference target environments. This is the simplest Qt Safe Renderer use case.
  2. A more common use case is that you have a separate main UI parallel to the safe UI. The QML language is used to define both the safe UI and main UI. By using the related Qt and Qt Safe Renderer toolchains, you can deploy UIs into one of the reference target environments.
  3. Whether you have defined just the safe UI or both the safe UI and main UI with QML, you can deploy them via Qt and Qt Safe Renderer toolchains to your custom environment, that is, environment that is not covered by the reference Qt Safe Renderer implementations. You need to make some adaptation to the reference implementation for the custom environment. There are two possible customizations:
    • The target environment is using real-time operating system (RTOS) that is already covered by the reference implementation but the target environment for the safe UI has different display chipset. Some adaptation for the display chipset interface is needed in the predefined adaptation points in the Qt Safe Renderer runtime software.
    • The target environment is using some other RTOS (or perhaps just bare metal) that is not covered by the reference implementation. Some adaptation for the RTOS is needed in the predefined adaptation points in the Qt Safe Renderer runtime software.

For more detailed information, see the Qt Safe Renderer architecture documentation. You find the document under <Qt Safe Renderer installation directory>/Docs/QtSafeRenderer-<version>/ after you have installed Qt Safe Renderer to your host platform.

Qt Tools in UI Design

You can use Qt Creator and Qt Design Studio to create and develop the safe UI.

Qt Creator provides a cross-platform, complete integrated development environment (IDE) for application developers to create applications for multiple desktop and embedded targets.

With Qt Design Studio, you can design your safe UI layout that contains safe texts, safe pictures, and safe images. The Qt Quick UI Forms (.ui.qml files) created with Qt Design Studio are also supported in Qt Creator and you can include them to your safe UI project.

You can easily design a UI that contains both safety-critical and non-safety information. After you have created the very first draft of the UI and built a Qt Quick project including your UI, you can deploy it right away to your target device via Qt Creator. Thus the Qt tools enable quick UI prototyping on a real hardware environment. In the target, Qt Safe Renderer takes care of rendering the safety-critical UI elements.

When the developed Qt Quick UI forms are integrated into the safety-critical system, the Qt Safe Renderer messaging interface defines how non-safe parts of the system can communicate with safety-critical items on runtime. For example, it is possible to change the position of the safe elements.

Confidence in the Use of Software Tools

The ISO 26262:2018-8 clause 11 addresses the confidence in the use of software tools. Below is the tool qualification, validation aspects, and evaluation support information summary.

Regarding the above use cases, the following methods are used to minimize the risks of the malfunction when using the Qt Safe Renderer toolchain and runtime software components. For more information about the development flow description, see Developing UI with Qt Safe Renderer.

  • When a user creates a UI with Qt Creator and the QML language, Qt Creator automatically detects possible errors in the QML code and UI element definitions.
  • When a user builds the safe UI by using Qt Safe Renderer toolchain, the layout tool detects possible errors in the UI safe elements QML code. The error message is given, and compilation fails if:
    • Size information is missing.
    • Safe elements are outside UI canvas boundaries.
    • The source (image) file does not exist.
    • A warning is given if the optional ‘objectname’ property is missing (needed only for the safe element move during the runtime).

    The Qt Safe Renderer toolchain error and warning messages are shown in the Qt Creator's issues tab, or the standard output if compilation is initiated from the command prompt.

  • When a user starts the Qt Safe Renderer runtime, the generated layout data is loaded and validated. Both the bitmaps and the layout data contain a cyclic redundancy check (CRC) that detects any changes to the data. If a discrepancy is found, an exception is thrown. The runtime also throws exceptions for other errors it encounters such as missing files or filesystem errors. The application developer needs to handle these exceptions. For more information about the exceptions, see Integrating Qt Safe Renderer.

Based on the above, and other details in the safety manual, and the installation content (design and verification documentation and source code), the tool vendor has classified the Qt Safe Renderer as follows:

  • The tool impact class is TI2.
  • The tool error detection class is TD3.
  • Based on these classes the tool confidence level is TCL3.

For more information, see Supported Development Environment.

Available under certain Qt licenses.
Find out more.