Qt Safe Renderer Software Components
The Qt Safe Renderer installation contains the certified Qt Safe Renderer runtime component and tools that enable the runtime component related work on a host platform. The following diagram provides a high-level overview of Qt Safe Renderer software components:
The commercial customers of Qt Safe Renderer have access to the module architecture and design documentation. These documents provide more detailed information about the Qt Safe Renderer structure and architecture. After you have installed Qt Safe Renderer to your host platform, you find the documents under <Qt installation directory>/Docs/QtSafeRenderer-<version>/.
The certified Qt Safe Renderer runtime component is the Qt Safe Renderer application binary that runs on the target device. The runtime component consists of all the content inside the
SafeRenderer namespace. See Qt Safe Renderer C++ Classes for detailed information about the SafeRenderer namespace.
The Qt Safe Renderer runtime component is designed to be integrated into a system that has separate processes for safety-critical and non-safety functionality. The Qt Safe Renderer runtime ensures graphical rendering of safety-critical information by partitioning the related functionality into an independent subsystem that is run on its own process. For more information about how to integrate the Qt Safe Renderer runtime component into your system, see Integrating Qt Safe Renderer.
Qt Safe Renderer renders safety-critical UI elements on the target device screen on basis of a safe layout data that is provided to it. All the safety-critical elements are rendered as raw bitmaps. Qt Safe Renderer assumes that the target device provides a way to set up the graphics overlays as the screen will have separate graphics planes for safety-critical and non-safe content. As the plane that contains the safety-critical UI elements is the topmost graphics layer, it is always visible regardless of the graphics drawn on other graphics planes.
Even if Qt Safe Renderer is responsible for rendering the safety-critical UI elements, the non-safe main UI may request a certain position for the elements. However, these requests are purely advisory and Qt Safe Renderer may ignore them in case of a sanity check failure.
Qt Safe Renderer provides a seamless integration with the Qt toolchain: Qt Creator and Qt Design Studio. For developing the safety-critical parts of the UI, Qt Safe Renderer provides new tools called Qt Safe Layout Tool, Qt Safe Resource Compiler Tool, and Qt Safe Config Tool.
By using Qt Design Studio, you can test the look and feel of your UI on the host platform even if the UI is actually targeted for an embedded platform.
The executable generated for the host platform includes both safety-critical and non-safe UI elements. However, when you build an executable for your target device, the executable contains the non-safe UI elements and only placeholders for the safety-critical UI elements. The safety-critical layout data is not part of the executable that resides on the target device. Instead, Qt Safe Renderer is fully responsible for rendering the safety-critical UI elements and the main UI renders everything else.
Qt Safe Renderer contains Qt Safe Layout Tool that generates properly formatted layout data for Qt Safe Renderer. The tool generates the layout data that stores the bitmaps for the safety-critical UI elements in an ARGB32 format. The generated data contains all the information Qt Safe Renderer needs for rendering safety-critical UI elements. Users of Qt Safe Renderer are not allowed to change manually the content of the generated safe layout data. Qt Safe Renderer validates the layout data against a checksum that is included in the layout data.
Your UI can contain both safety-critical and non-safety UI elements. When you create a UI with Qt Design Studio, you can use any QML types supported by the tool to construct non-safety parts of the UI. To create safety-critical parts of the UI, you must use the safe QML types provided by Qt Safe Renderer. Qt Safe Layout Tool generates the safe layout data only for safe QML types provided by Qt Safe Renderer.
For detailed information, see Using Qt Safe Layout Tool.
The safety-critical UI elements can use resources defined in a resource collection file (.qrc) file. The resource collection file is useful if you need to embed safety-critical data assets into your application but you don't have a file system or you don't want to use the file system. With Qt Safe Resource Compiler Tool, you can generate MISRA compliant data structures.
For detailed information, see Using Qt Safe Resource Compiler Tool.
In Output Verification, the reference CRC (cyclic redundancy check) value for comparison is calculated in Qt Safe Layout Tool. Qt Safe Config Tool post-processes the safe data asset and generates the C structure from the data. The C structure contains the expected CRC values of items in all possible states.
Qt Safe Config Tool uses the Qt Safe Renderer library to parse and validate the safe data. It is also possible to generate an XML structure of the CRC data. You can use the XML data for debugging or integrating Qt Safe Renderer into the existing monitor solutions.
For detailed information, see Using Qt Safe Config Tool.
Available under certain Qt licenses.
Find out more.